我不完全确定您要达到的目标,但这里有一些想法:
sampler2D
顾名思义,需要对 2D 纹理进行采样。它是一个特殊的 GLSL 变量,因此编译器0
在输入texture2D
.
除非您使用多个纹理,否则第二个参数glUniform1i
应该始终是0
(默认)。如果您只使用单个纹理,则可以跳过此调用,但最好保留它。
如果您只想传递值 0,为什么需要调用 texture2D?当然你可以做到gl_FragColor = destinationColor
。这将根据顶点着色器输出为您的片段着色gl_Position
。如果您不打算使用纹理(或者看起来如此),我不确定为什么要实现纹理。
编辑:将两个纹理正确发送到片段着色器的代码。
//glClear();
// Attach Texture 0
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, _texture0);
glUniform1i(_uSampler0, 0);
// Attach Texture 1
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, _texture1);
glUniform1i(_uSampler1, 1);
//glDrawArrays();