我在 中阅读了纹理示例OpenGL 2.1
。片段着色器如下所示:
#version 120
uniform sampler2D texture;
varying vec2 texcoord;
void main(void)
{
gl_FragColor = texture2D(texture, texcoord);
}
texcoord
是从顶点着色器传递的。
使用以下 C++ 渲染代码:
void render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_id);
glUniform1i(unf_texture, 0);
}
我对一些事情感到困惑。我有一个问题:
在片段着色器中,纹理被传递一个零值(通过
glUniform1i()
)。值真的为零吗?价值是别的吗?真的
glActiveTexture()
需要通话吗?为什么我们传入一个零值
glUniform1i()
?