假设我想在一次绘制调用中将无符号整数和上传到显卡。我用标准维也纳各组织(未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