0

我想用 glDrawElements 绘制一些索引顶点。它们的位置存储在一个数组中。另外,我有一个与每个顶点相关联的不确定值的数组。本来这个数组是没有排序的,所以这个数组的第一个不确定值对应我的顶点位置数组的第一个位置。然后我必须对不确定性数组进行排序,因此这些值按降序存储。我还有一个索引数组,其中包含来自不确定性数组的原始索引。我的数组是这样设置的:

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, ...};

现在......我想以某种方式在我的位置数组中绘制顶点,顺序由 indexArray 确定。因此,要渲染的第一个顶点将是位置在 vertexPositionsArray 中的索引 76504 并且在我的不确定性数组中的索引 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);
4

0 回答 0