我已经阅读了一个纹理示例OpenGL 2.1
.片段着色器看起来像这样:
#version 120
uniform sampler2D texture;
varying vec2 texcoord;
void main(void)
{
gl_FragColor = texture2D(texture, texcoord);
}
Run Code Online (Sandbox Code Playgroud)
在texcoord
从顶点着色器传递.
使用以下C++呈现代码:
void render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_id);
glUniform1i(unf_texture, 0);
}
Run Code Online (Sandbox Code Playgroud)
我对某些事感到困惑.我有一些问题:
在片段着色器中,纹理传递零值(通过glUniform1i).价值真的是零吗?价值还有别的吗?
被glUniform1i()
调用真正需要的?
为什么我们在glUniform1i中传递零值?