假設我想在一次繪製調用中將無符號整數和上傳到顯卡。我用標準維也納各組織(未VAO,我使用OpenGL 2.0),與各頂點屬性陣列組合成單個GL_ARRAY_BUFFER
,並指出使用單獨glVertexAttribPointer(...)
,所以:VBO中的混合類型?
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferId);
glEnableVertexAttribArray(positionAttributeId);
glEnableVertexAttribArray(myIntAttributeId);
glVertexAttribPointer(positionAttributeId, 4, GL_FLOAT, false, 0, 0);
glVertexAttribPointer(colorAttributeId, 4, GL_UNSIGNED_INT, false, 0, 128);
glClear(...);
glDraw*(...);
我有這裏的問題是我的緩衝區(由vertexBufferId
重新命名)必須在LWJGL中創建爲FloatBuffer
,以便它可以支持GL_FLOAT
類型的屬性,並且這似乎排除了在此使用GL_INT
(或者,另一種方式周圍 - 它是一個或另一個,因爲緩衝區不能是兩種類型)。
任何想法?如何在本地C代碼中處理?
您使用的是OpenGL還是OpenGL ES 2.0?因爲它們不是一回事。 – 2012-07-23 17:28:07
@NicolBolas據我所知,我正在使用OpenGL 2.0的OpenGL ES 2.0子集。 – 2012-07-23 17:28:51
OpenGL ES 2.0 *不是* OpenGL 2.0的子集。那麼你使用的是:桌面GL還是GL ES? – 2012-07-23 17:31:07