OpenGL错误:1282当设置均匀

5ssjco0h  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(237)

我一直在尝试学习OpenGL一段时间创建一个简单的3D游戏,但在尝试设置制服没有工作了。我用一个相当旧的mac,但我不认为这有任何关系。
这是我设定制服的密码:

Texture texture = createTexture("./res/images/atlas.png");
bindTexture(&texture, 1);
setUniform1i(&shader, "u_Texture", 1);

setUniform1i的代码为:

void setUniform1i(const Shader *shader, char *name, int i1)
{
  int loc = getUniformLocation(shader, name);
  bindShader(shader);
  glUniform1i(loc, i1);
}

这是我的片段着色器:


# version 120

uniform sampler2D u_Texture;

varying vec2 v_texCoor;

void main()
{
    vec4 texColor = texture2D(u_Texture, v_texCoor);
    gl_FragColor = texColor;
}

需要注意的一点是,我可以在顶点着色器中设置一个模型视图投影矩阵均匀,所以我不知道为什么设置另一个均匀会导致错误。

guykilcj

guykilcj1#

你的着色器绑定正确吗?我也遇到过同样的问题,但绑定时问题解决了。glUseProgram(program);

相关问题