我正常的數據緩存到VBO,然後使用glVertexAttribPointer指向它:當使用glVertexAttribPointer時,我應該爲gl_Normal屬性使用哪個索引?
glVertexAttribPointer(<INDEX?>, 3, GL_FLOAT, GL_FALSE, 0, NULL);
不過,我應該用什麼樣的價值爲第一個參數,指標,如果我希望被綁定到gl_Normal數據屬性在着色器中?
我正在使用一個NVidia卡,我在這裏讀到https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php gl_Normal總是在索引2這些類型的卡。但是我怎麼知道gl_Normal在其他卡片的索引處?
此外,使用索引2似乎沒有工作,並且着色器中的gl_Normal數據都是(0,0,0)。
我知道glGetAttribLocation和glBindAttribLocation,但是文檔明確指出,如果嘗試使用以「gl_」開頭的內置頂點屬性之一,該函數將引發錯誤。
編輯: 利用OpenGL 3.0 GLSL 130
嘿。我使用的是glsl 130,我可能應該提到過,所有'in'和'out'關鍵字都不存在(我的不好!)它還是一個類似的過程嗎? – ipe369
@ ipe369用頂點着色器中的'attribute'替換'in'。 –
啊,好的。非常感謝的人! – ipe369