頂点配列を使用して、多数の頂点を含む適度に大きなメッシュを描画しようとしています。テクスチャはこれらから決定されており、次の線に沿って即時モードで描画するのは簡単です。
glBegin(GL_TRIANGLES) {
for ( int faceIdx = 0; faceIdx < nFaces; ++faceIdx )
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
}
}
glEnd();
ただし、読みやすさ、速度、その他の点で、頂点配列を使用したいと思います(VBOへの移行を目的としています)。単一の頂点を配列に複数回配置することを回避する方法はありますか?
現時点で理解しているように、メッシュの各頂点はメッシュの面に表示される回数だけ指定する必要があります。これは、各頂点が複数のテクスチャ座標を識別するためです(テクスチャは実際の画像からキャプチャされます。メッシュが近似するオブジェクト)、つまり、頂点/頂点座標配列は、即時モードで塗りつぶしたかのように読み取ります。
冗長な(つまり、繰り返される)頂点を使用せずに、テクスチャ座標を指定しながら頂点配列を使用する方法はありますか?