我已經找了一段時間來找到這個答案 - 但我沒有太多的運氣。 我想要做的就是將我的正常數據傳入我的頂點着色器。位置正確傳遞,但是當我嘗試加載着色器時,我收到了「未找到正常屬性」錯誤。OpenGL ES 2.0 - 在頂點着色器中找不到屬性
我的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");
再次,該職位的工作。但「正常」無法找到。有任何想法嗎?
我希望你在鏈接之前調用這些'glBindAttribLocation'調用,否則它們不會有任何效果。 –