2012-06-19 12 views
1

我想繪製一個大網格的網格(想想〜120k頂點)。 如果我嘗試將所有頂點放在單個索引緩衝區中,它將無法工作,因爲我使用的是java.nio.ShortBuffer作爲索引緩衝區,所以最大值爲2^15 - 1,而我需要〜2^17個頂點。我應該將我的網格分成多個部分嗎?我可以使用Buffer的其他子類作爲GL10.glDrawElements的第四個參數嗎?Android中的Big IndexBuffer

+1

你指的是哪個'IndexBuffer'?這並不是嚴格意義上的opengl-es的一部分。 – rotoglup

+0

那麼,opengl-es可能是一個錯誤的標籤。實際上,我輸入錯了:我的意思是'java.nio.ShortBuffer'用作第四個參數ogf'GL10.glDrawElements'。讓我編輯 – miniBill

回答

1

大規模編輯下面的miniBill評論!

實際上,OpenGL-ES僅支持GL_UNSIGNED_BYTEGL_UNSIGNED_SHORT索引。 最常用的是GL_UNSIGNED_SHORT它允許2^16-1頂點。其他類型只被OpenGL支持。

您還可以使用 GL_INTGL_UNSIGNED_INT的指數,我想它,你可以在一個 java.nio.IntBuffer存儲。

看起來你需要拆分幾何。

+1

的問題其實不,OpenGL-ES不允許使用'GL_INT'索引緩衝區,根據谷歌。或者至少,它不會在Android – miniBill

+0

@miniBill感謝您指出這一點,我糾正了我的答案,太多用於OpenGL ... – rotoglup