OpenGL の不変性とポリゴン オフセットの違いは何ですか。私は両方と混乱しています。どちらも低歳差運動の問題に関連しているためです。
1 に答える
GLES 2.0 仕様から:
[...]分散とは、異なるシェーダーで同じ式から異なる値を取得する可能性を指します。たとえば、2 つの頂点シェーダーが両方のシェーダーで同じエクスプレッションを使用して gl_Position を設定し、両方のシェーダーが実行されたときにそのエクスプレッションへの入力値が同じであるとします。
2 つのシェーダーの独立したコンパイルが原因で、2 つのシェーダーが実行されたときに gl_Position に割り当てられた値が正確に同じではない可能性があります。この例では、これがマルチパス アルゴリズムでのジオメトリの位置合わせに問題を引き起こす可能性があります。一般に、シェーダー間のこのような差異は許容されます。分散を防ぐために、変数は個別にまたはグローバル設定で不変であると宣言できます。
つまり、インバリアントは、特定のシェーダー コードがコンパイルされるときに、生成される GPU コードが毎回同じでなければならないことを実装に伝えるために、gles によって提供されるメカニズムです (プログラマー) 。
ポリゴン オフセットは、うーん、まったく関係ありません。公式の FAQ を参照してくださいhttps://www.opengl.org/archives/resources/faq/technical/polygonoffset.htm