OpenGL深度テストが Window Space Coordinates ([-1,1]^3 で正規化されたデバイス座標。追加のスケーリング glViewport と glDepthRange を使用) で実行されたのは、まさに「事実」です。
私の観点からすると、これは OpenGL ライブラリの設計上の観点の 1 つです。
この OpenGL 拡張機能/OpenGL コア機能を排除するアプローチの 1 つhttps://www.opengl.org/registry/specs/ARB/depth_clamp.txtが OpenGL バージョンで利用可能な場合。
透視投影では、「ファークリッピングプレーン」について何もないことを説明したいと思います。
3.1 透視投影では、ポイント \vec{c} を投影の中心として設定し、投影が実行される平面にする必要があります。これをイメージ プレーン T としましょう: (\vec{r}-\vec{r_0},\vec{n})
3.2 投影された平面 T が投影の任意の点 \vec{r} と \vec{c} を分割するとします。それ以外の場合、\vec{r} と \vec{c} は 1 つのハーフ空間にあり、ポイント \vec{r} は破棄されます。
3.4 射影の考え方は、平面 T との交点 \vec{i} を見つけることです \vec{i}=(1-t)\vec{c}+t\vec{r}
3.5 そのまま (\vec{i}-\vec{r_0},\vec{n})=0
=>
( (1-t)\vec{c}+t\vec{r}-\vec{r_0},\vec{n})=0
=>
( \vec{c}+t(\vec{r}-\vec{c})-\vec{r_0},\vec{n})=0
3.6. 「3.5」から導出された t は「3.4」に代入でき、平面 T への射影を受け取ります。
3.7. 投影後、ポイントは平面上にあります。しかし、イメージ プレーンが OXY プレーンに平行であると仮定すると、投影後のポイントに元の「深度」を使用することを提案できます。
したがって、ジオメトリの観点からは、ファー プレーンをまったく使用しないことも可能です。[-1,1]^3 モデルを明示的に使用しないことも同様です。
psラテックス数式を正しい方法で入力する方法がわかりません.stはレンダリングされます。