我已经为此寻找了一段时间的答案-但我运气不佳。我要做的就是将我的正常数据传递到我的顶点着色器中。位置正确传递,但是在尝试加载着色器时收到“未找到正常属性”错误。
我的 ATTRIB 值是枚举。
我在 OpenGL ES 2.0 中为 Iphone 开发创建了一个立方体。
我的 Shader.vsh 看起来像这样:
attribute vec4 normal;
attribute vec4 position;
varying vec4 colorVarying;
uniform mat4 mvp_matrix;
void main()
{
//Trasform the vertex
gl_Position = mvp_matrix * position;
colorVarying = vec4(1.0, 1.0, 0.0, 0.0);
}
我在并条框中更新属性值的部分如下所示:
// Update attribute values.
glVertexAttribPointer(ATTRIB_VERTEX, 3, GL_FLOAT, 0, 0, cubeVerticesStrip);
glEnableVertexAttribArray(ATTRIB_VERTEX);
glVertexAttribPointer(ATTRIB_NORMAL, 3, GL_FLOAT, 0, 0, cubeNormalsStrip);
glEnableVertexAttribArray(ATTRIB_NORMAL);
我在 LoadShader 函数中绑定这些的部分是这样的:
glBindAttribLocation(program, ATTRIB_VERTEX, "position");
glBindAttribLocation(program, ATTRIB_NORMAL, "normal");
再次,该职位有效。但是找不到“正常”。有任何想法吗?