使用glDrawElements绘制顶点

时间:2013-01-17 13:54:32

标签: opengl

我想用glDrawElements绘制一些索引顶点。它们的位置存储在一个数组中。此外,我有一个与每个顶点相关的不确定性值的数组。最初,这个数组没有排序,所以这个数组的第一个不确定性值对应于我的顶点位置数组中的第一个位置。然后我不得不对不确定性数组进行排序,因此值按降序存储。我还有一个索引数组,它包含不确定性数组中的orignal索引。我的数组设置如下:

vertexPositionArray = {(0,0,0,1), (0,0,1,1), ..., (dimX, dimY, dimZ, 1)}
uncertaintyArray    = {1000.00, 989.20, 945.01, ...};
indexArray          = {76504, 65024, 3424, 3, 30491, 59123, ...};

现在......我想以某种方式在我的positionsArray中绘制顶点,这个顺序由indexArray决定。因此,要渲染的第一个顶点是vertexPositionsArray中位于索引76504处的位置,并且我的uncertaintyArray中位于索引76504处的不确定值。

我希望你明白这一点,很难描述我正在尝试做什么。我当前的代码没有产生预期的输出。我想我不确定glDrawElements方法适用于哪个数组。

// Enable user defined "IN"-variables
glBindBuffer(GL_ARRAY_BUFFER, vertexPositionBufferObject);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);

glBindBuffer(GL_ARRAY_BUFFER, vertexUncertaintyBufferObject);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 1, GL_FLOAT, GL_FALSE, 0, 0);

glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexIndexBufferObject);

// Draw vertices
glDrawElements(GL_POINTS, dimensionX * dimensionY * dimensionZ, GL_UNSIGNED_INT, 0);

0 个答案:

没有答案