問題タブ [msaa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
glsl - MSAA と頂点補間により範囲外の値が発生する
頂点シェーダーとフラグメント シェーダーでGLSLを使用しています。
頂点シェーダーhighp float
は [0,1] の範囲で a を出力します。
フラグメント シェーダーに到達すると、(三角形のエッジで) 1.1 を超える値が表示されます。
この問題は、私が...
- MSAA を無効にする
- または、GLSL補間修飾子
flat
を使用して補間を無効にします。
MSAA が有効になっている場合、クランプされた 0 から 1 の高精度浮動小数点数が 1 より大幅に大きい値としてフラグメント シェーダーに到達するのはなぜですか?
頂点シェーダー コード:
フラグメント シェーダー コード:
案の定、MSAA 4x では、これが OpenGL によって生成されたイメージです。(ウィンドウの中央にある磁石色のピクセルを観察してください。)
Not-A-Number 値を除外しました。
GL_VERSION: 3.2.0 NVIDIA 450.51.06