0

GLSL を使用して基本的な立方体 (GL_QUADSサーフェスから作成) をレンダリングしています。gl_Vertexコンテンツを頂点からフラグメント シェーダーに渡したいと思います。gl_FrontColorこれに(頂点シェーダー)と(フラグメントシェーダー)を使用している場合はすべて機能しますgl_Colorが、プレーンを使用している場合は機能しませんvarying(以下のコードと画像を参照)。なんらかの理由で、変化がサーフェス全体で補間されていないようです。OpenGL でこれを引き起こす原因は何ですか?

glShadeModelに設定されてGL_SMOOTHいます - 現在、この効果を引き起こす可能性のあるものは他に考えられません。

頂点シェーダー:

#version 120

varying vec4 frontSideValue;

void main() {
   frontSideValue = gl_Vertex;
   gl_Position = transformPos;
}

フラグメント シェーダー:

#version 120

varying vec4 frontSideValue;

void main() {
   gl_FragColor = frontSideValue;
}

左: 望ましくない結果、右: 適切な補間

4

1 に答える 1