2013-01-24 357 views
0

我有一個包含多個網格的模型文件(即:樹,汽車......),用作我們遊戲的靜態背景。我的目標是將模型的頂點和索引存儲爲兩個緩衝區,並將這些緩衝區分配給GPU。但是,在走的路上我有點困惑。關於模型的頂點緩衝區和索引緩衝區的困惑

這個Riemer's XNA Tutorial表明模型本身有一個大的頂點緩衝區和一個包含所有網格物體(和meshparts)信息的大型索引緩衝區,但似乎無法訪問這些緩衝區。但是,可以訪問ModelMeshParts的緩衝區,但不能將它們連接成單個緩衝區。

我的猜測是擴展模型處理器以在運行時將模型頂點和索引存儲在數組中。有一種更簡單的方法可以這麼做,因爲Riemer說這些緩衝區已經定義好了嗎?我對這個說法感到困惑。

謝謝你的回答。

回答

1

實際上,整個模型只有1個頂點緩衝區和1個索引緩衝區。在任何ModelMeshPart中公開的頂點緩衝區是整個模型的頂點緩衝區,並且它是在任何其他MMP中公開的相同緩衝區。無需連接它們,整個緩衝區位於每個MMP中。

每個MMP都有自己的該緩衝區的起始索引,每個MMP都有自己的變量,該變量描述用於該特定MMP的起始索引連續的頂點數。

enter image description here

這個圖模型的VB在

所以,ModelMesh[1]->ModelMeshPart[1]擁有300開始索引和頂點的數目是75。於是就這樣,繪製MMP時,該裝置知道使用只有那幾個整個VB的頂點。

+0

感謝您提供此信息並清除混淆。 –