1

私はインデックスバッファを理解しようとしています。私はMSDNとその上の別のスレッドを読みました[ Direct3Dの頂点とインデックスバッファとの闘い]。

わかったと思っていたのですが、実際には動かせませんでした。私は正方形を作ろうとしていました。

私は6つの頂点を持っています:

    SimpleVertex vertices[]={ // {Position, Color}
        {XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // top left
        {XMFLOAT3(0.5f, -0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // bottom right
        {XMFLOAT3(-0.5f, -0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // bottom left

        {XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // top left
        {XMFLOAT3(0.5f, 0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // top right
        {XMFLOAT3(0.5f, -0.5f, 0.5f), XMFLOAT4(0.8f, 0.2f, 6.0f, 1.0f)}, // bottom right
    };

&インデックスの配列:

    unsigned short indices[]={
        0,3,2, // a d c
        0,1,3, // a b d

        // a---b
        // | \ |
        // c---d
    }

しかし、それは何も表示しません。インデックスを0、1、2、3、4、5に変更すると、機能します[ただし、インデックスのポイントは無効になります]。

私がインデックスを考える方法の何が悪いのか誰もが知っていますか?

4

1 に答える 1

1

おっと、問題を理解するために投稿してからしばらく時間がかかりました。

1]手動で描画するかのように頂点をリストしました。[6つではなく]4つの頂点だけが必要でした。インデックスはドットを接続します。最初の3つのインデックスは1番目の三角形を作成し、2番目の3つは2番目の三角形を作成します。

2]インデックス配列の数字は、私が想像した形の辺を表していると思いました[それがどのように機能するかはわかりません:P]。それらは実際には頂点の配列内の位置を表します。

これが他の人に役立つことを願っています。

于 2012-10-09T06:18:41.283 に答える