我正在使用 GLSL 渲染一个基本的立方体(由GL_QUADS
表面制成)。我想将gl_Vertex
顶点中的内容传递到片段着色器中。如果我为此使用gl_FrontColor
(vertex shader) 和gl_Color
(fragment shader) 一切正常,但在使用普通模式时它不起作用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;
}