問題タブ [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.

0 投票する
1 に答える
113 参照

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