私は読んでいます 素晴らしいOpenGLチュートリアルをいます。それは本当に素晴らしいです、私を信頼してください。私が現在取り組んでいるトピックはZバッファです。それが何であるかを説明するだけでなく、著者は、GL_LESS、GL_ALWAYSなどのカスタム深度テストを実行できることを述べています。深度値の実際の意味(上と下ではない)も可能であることも説明しています。カスタマイズ。私はこれまで理解しました。そして、著者は信じられないようなことを言っています:
範囲zNearは、範囲zFarより大きくすることができます。そうである場合、ウィンドウ空間の値は、ビューアから最も近いまたは最も遠いものを構成するものに関して逆になります。
以前は、ウィンドウ空間のZ値0が最も近く、1が最も遠いと言われていました。ただし、クリップ空間のZ値を無効にすると、深度1はビューに最も近く、深度0は最も遠くなります。ただし、深度テストの方向を逆にしても(GL_LESSからGL_GREATERなど)、まったく同じ結果が得られます。だから、それは本当に単なる慣習です。実際、Zの符号と深度テストを反転させることは、かつて多くのゲームにとって重要なパフォーマンス最適化でした。
私が正しく理解していれば、パフォーマンスに関して、Zの符号と深度テストを反転させることは、<
比較を比較に変更することに他なりません>
。だから、私が正しく理解していて、作者が嘘をついていたり、物事を構成していなかったりした場合は、重要な最適化に変更<
する>
、多くのゲームでした。
著者は、物事を作っている私が何かを誤解していますか、それはかつての場合、確かである<
(遅かった極めてよりも、著者が言うように、) >
?
このかなり興味深い問題を明確にしてくれてありがとう!
免責事項:アルゴリズムの複雑さが最適化の主な原因であることを十分に承知しています。さらに、今日は間違いなく何の違いもないだろうと私は疑っています。これを最適化するように求めているわけではありません。私は非常に、苦痛に、おそらく法外に好奇心が強いのです。