2012-10-09 128 views
1

我想弄清索引緩衝區。我讀了MSDN &上的另一個線程[Struggling With Vertex And Index Buffers In Direct3D]。Index Buffers,它們是如何工作的?

我以爲我知道了,但在實踐中,我無法讓它工作。我正在試着做一個廣場。

我有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 
    }; 

&索引數組:

但不顯示任何內容。如果我將索引更改爲0,1,2,3,4,5,它的工作原理[雖然破壞了索引的重點]。

任何人都知道我對索引的看法有什麼問題嗎?

回答

1

糟糕,花了一段時間後,我張貼找出我的問題。

1]我列出了頂點,就好像我要手動繪製它一樣。我應該只有4個頂點[不是6]。 索引連接點;第一個3個索引做第一個三角形,第二個3個做第二個三角

2]我認爲索引數組中的數字代表了我想象中的一個形狀的邊[不知道這是甚麼工作原理:P]。它們實際上代表了頂點數組中的位置。

希望這可以幫助別人。

相關問題