我試圖繪製在iPad上有超過65536個頂點的3D對象,但無法弄清楚我做錯了什麼。我使用GL_UNSIGNED_SHORT的原始模型工作得很好,但現在使用GL_UNSIGNED_INT,我無法使用glDrawElements命令顯示任何內容。這就像渲染器完全忽略了我的glDrawElements行。說我引用我的渲染循環的部分低於:如何將glDrawElements與GL_UNSIGNED_INT用於索引?
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(assemblyObj->vertices[0])*6, &assemblyObj->vertices[0]);
glNormalPointer(GL_FLOAT, sizeof(assemblyObj->vertices[0])*6, &assemblyObj->vertices[0]);
for (int i = 0; i < assemblyObj->numObjects; i++)
{
glDrawElements(GL_TRIANGLES, assemblyObj->partList[i].faceArray.size(), GL_UNSIGNED_INT, &assemblyObj->partList[i].faceArray[0]);
}
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
頂點被定義爲:
vector<float> vertices;
每個faceArray被定義爲:在
vector<UInt32> faceArray;
任何建議我在做什麼錯誤,是防止我的幾何圖形?
這是否比使用glDrawArrays繪圖更快?我現在可以用glDrawArrays做同樣的事情,但我想盡可能多地使用FPS進行渲染。 – Davido 2010-12-14 00:14:53
我想通了,我只是使用它自己的頂點數組渲染每個對象,它工作得很好。我渲染大約125,000個頂點,總共有90個模型,並且可用,每秒渲染大約12幀。現在我只是想弄清楚是否有任何事情可以加速渲染。有什麼建議麼? – Davido 2010-12-14 23:56:42
這個回答是不正確的,如果實現了GL_OES_element_index_uint'(在iOS中,根據)'GL_UNSIGNED_INT'支持'glDrawElements'。 –
2012-03-07 06:37:24