ゲーム エンジンにディファード シェーディングを追加し始めています。深度テクスチャから目の空間座標を取得する方法を理解するのに苦労しています。
私はこの投稿で2つの方法について読んで、私の理解で:
- 最初の方法は、深さをフレームバッファに保存する場合に機能
GL_DEPTH_ATTACHMENT
します。 - 2 番目の方法では、シェーダーで深さを計算し、
GL_COLOR_ATTACHMENTn
.
この 2 番目の方法の再構成は、私が必要とするものに対して複雑すぎるように思われるので、可能であれば使用したくありません。
目の座標を再構築するために、最初のメソッドは、テクスチャ座標、 depth、および aw
の1.0
aを取得し、それを逆透視行列vec4
で乗算し、結果を で割ります。w
この方法は、テクスチャに保存されている深さを変更せずに機能し、GL_DEPTH_ATTACHMENT
ライティングを実行するのに十分正確ですか?
そのままでは機能しない場合、それを機能させるために深さをどうする必要がありますか?