我花了半天的時間試圖解決這個問題,但目前爲止我還沒有運氣,所以我正在尋找一些建議和指導。適用於iOS的OpenGLES - glBufferData() - GLuint不適用於數據字段
我在我的32位iPad3(iOS 8)上渲染一個球體。
-(void) bufferVBO :(objectVertex[])objVertices :(int)objectVerticesSize
:(GLubyte[])vertexIndices :(int)vertexIndicesSize
{
...
glBufferData(GL_ELEMENT_ARRAY_BUFFER, vertexIndicesSize, vertexIndices, GL_STATIC_DRAW);
...
}
工作正常。然而,那隻會產生多達256個索引(因爲GLubyte只有8位),所以我需要比這更多的渲染球體。
然而,當我試圖這樣(注意,從「GLubyte」變更爲「GLunit」在第三個參數):
-(void) bufferVBO :(objectVertex[])objVertices :(int)objectVerticesSize
:(GLuint[])vertexIndices :(int)vertexIndicesSize
{
...
glBufferData(GL_ELEMENT_ARRAY_BUFFER, vertexIndicesSize, vertexIndices, GL_STATIC_DRAW);
...
}
這是行不通的。我的屏幕上沒有渲染。在(Mac)桌面應用程序中,我能夠通過GLuint渲染我的球體沒有問題。但是,在我的32位iPad 3上,沒有出現任何東西(除非我使用GLubyte,它沒有渲染只有256個索引的完整球體)。
那麼,爲什麼在傳遞索引數組時glBufferData()沒有「GLuint」?怎麼只有「GLubyte」會起作用?
預先感謝您。這讓我瘋狂。
啊,我明白了。謝謝! – TATN 2014-11-01 21:43:15