シーンからデプスバッファを収集します。ただし、カメラとシーンのオブジェクトが同じ位置にあり、カメラが回転するだけの場合、デプスバッファは異なる結果を収集します。たとえば、画面の側面に表示されるオブジェクトは、中央に表示されるオブジェクトとは異なる深度になります。これはOpenGLの機能かもしれませんが、それでも、どうすればこれを修正できますか?何を考慮に入れるべきですか?
次の関数を使用して深度を線形化します。
float linearize(float depth) {
float zNear = 0.1;
float zFar = 100.0;
return (2.0 * zNear) / (zFar + zNear - depth * (zFar - zNear));
}
大丈夫だと思われる近距離と遠距離の値を確認しました。