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 によって順序が決定されるように、positionsArray 内に頂点を描画したいと思います。したがって、レンダリングする最初の頂点は、頂点位置配列のインデックス 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);