2

VRML ファイルからジオメトリを読み取って 3D ボックスをレンダリングしたいと考えています。VRML ファイルのインデックスは次のように与えられます。

coordIndex
    [
        0, 1, 2, -1,
        2, 3, 0, -1,
        3, 2, 4, -1,
        4, 5, 3, -1,
        5, 4, 7, -1,
        7, 6, 5, -1,
        6, 7, 1, -1,
        1, 0, 6, -1,
        6, 0, 3, -1,
        3, 5, 6, -1,
        1, 7, 2, -1,
        7, 4, 2, -1,
    ]

ボックスをレンダリングするために glDrawElements 関数を呼び出したいのですが、「count」および「indices」パラメータについてはわかりません。count は、面の数を示す 12 にするか、頂点の合計インデックスを示す 36 にするか? また、index配列について教えてください。このようにする必要があります:

GLint indices[] = {0,1,2,2,3,0,3,2,4,.....,7,4,2};
                        OR
GLint indices[] = {0,1,2,-1,2,3,0,-1,....,7,4,2};
4

2 に答える 2

1

DrawElementsのmanページによると

glDrawElements が呼び出されると、有効な配列から count 個の連続した要素が使用されます

したがって、インデックスバッファ内の合計インデックスは 36 になります。

インデックス配列の場合、最初のバージョンを選択する必要があります。インデックスは >= 0 である必要があり、3 つの連続したインデックスに対して三角形が描画されます。

于 2013-06-21T06:36:33.947 に答える