2009-12-04 117 views
0

我最近陷入了DirectX,並且一直在與Anim8or搞混了一些,並且發現了幾種可以導出到基於文本的模型的文件類型。我特別喜歡VTX文件。我已經學會了如何解析一些基本知識,但我顯然錯過了一些東西。.VTX文件格式?

它從一個.Faceset開始,它立即(在同一行),後面是文件中的網格數。

對於每一個網格,有一個.Vertex部和以該順序一個.Index部和第一對.Vertex/.Index部分是所述第一網格中,第二組的所述第二網格等如你所期望。

在文件的.Vertex部分,每行有8個數字和一個未定義的行數(除非您要相信Anim8or在該部分之前放置的註釋,但似乎並不是該部分的一部分)該文件的規格,只是Anim8or是善良的)。前3個數字對應於特定點的X,Y和Z座標,稍後將用作頂點,其他5個我不知道。大多數時候,最後2個數字都是0,但我注意到這並非總是如此,通常是正確的。

接下來是匹配.Index部分。本部分有4個數字。前3個是前面提到的頂點的參考數字,3點表示模型中的一個三角形。 0表示第一個提到的頂點,1表示下一個,等等,就像一個基於零的數組。第四個數字似乎總是-1,我無法弄清楚它的重要性,我不能承諾它總是-1。如果你不能說,我不太確定這種文件類型的任何東西。

我還選擇忽略文件中的其他信息,因爲我是新手而不想過分複雜。如每.Index節過後是:

.Brdf 
// Ambient color 
0.431 0.431 0.431 
// Diffuse color 
0.431 0.431 0.431 
// Specular color and exponent 
1 1 1 2 
// Kspecular = 0.5 
// end of .Brdf 

在我看來,這是關於剛剛描述的網格的表面。但是不需要佈置網格,所以我暫時移過它。

轉移到真正的問題......我可以加載VTX文件,當VTX文件中只有一個網格(意思是.FaceSet是1)。我幾乎可以成功加載具有多個網格的VTX文件,每個網格都已成功結構化,但與其他網格關係不正確。我在一個論壇中從Anim8or線程下載了一個AT-AT模型,它由344個網格組成,當我使用目前爲止提到的規範加載文件時,它看起來像AT-AT爆炸似的這是一個如何製作它的圖表(當在Anim8or中加載時,所有的部件都很接近並且類似於完全組裝的AT-AT)。所有的棋子都是正確定向的並且具有相同的向上方向,但棋子之間有足夠的空間。

有人知道如何正確讀取VTX文件嗎?或者知道一個網站可以解釋其他數字的含義?

編輯:

文件擴展名.VTX被用於很多不同的東西,有很多因預期用途是什麼不同的結構。 Valve,Visio,Anim8or和其他幾個人使用VTX,我只對Anim8or導出的VTX文件和它使用的結構感興趣。

回答

1

我一直在研究3D建模程序,希望能夠將一個簡單的格式引入到編輯器中,以便能夠使用大量頂點和麪測試我的繪圖例程的速度。我正在尋找一個容易的模型,我可以快速找到模型並找到.vtx格式。我搜索了它並發現了你的問題。當我無法在互聯網上找到格式時,我玩弄了一下,並將.OBJ導出與.vtx格式比較。 (也許它是爲Anim8or創建的?)下面是我發現的:

1)是的,頂點在每一行上都有八個數字。正如你猜測的那樣,前三個是x,y和z座標。接下來的三個是頂點法線,nx,ny和nz。您可能會注意到,每個頂點都會出現多次,每個頂點都會以包含它的每個面的不同法線出現。最後兩個數字是紋理座標。

2)至於面孔,我得出了和你一樣的結論。前三個數字是上面頂點列表中的索引。最後一個數字看起來總是-1。我將假設它與面對面有關。 (例如面朝內或面向外)。由於大多數模型都是在所有面部都適當的情況下創建的,因此可以推斷這是所有人都相同的數字。

3)另外一個注意事項:將.obj與.vtx進行比較時,我確實注意到頂點的位置發生了變化。與.an8文件比較時也是如此。這不應該是一個「巨大」的問題,只要它們在每個頂點和每個文件中都被相同數量的偏移。至少可以得到補償。

您是否考慮使用.obj文件格式?它基於文本,解析或理解起來並不是非常困難。網上有很多關於它的信息。

我會補充一點,經過幾個小時的檢查,Anim8or中的vtx導出似乎被破壞了。我遇到了同樣的問題,因爲你的作品沒有正確定位。我的假設是,anim8or或者使用每個網格的局部座標導出這些對象,而不考慮已經應用的變換。我也注意到它不會導入vtx文件...

1

基於一些谷歌搜索,看起來你是在錯誤的管道末端。據我所知:VTX文件是Valve Proprietary File Format,即一組步驟的結果

Studiomdl的每個 半條命模型的最終輸出是在 的gamedirectory一組文件/文件夾的模型準備 由遊戲引擎可以使用:

  • 的.mdl文件 文件,其中定義了 模型的結構以及動畫, 包圍盒,打包盒,素材,網格 和LOD信息,
  • a .VVD文件,其中用於骨的重量,法線, 頂點,切線和紋理個存儲位置無關平數據 座標所使用的MDL,目前
  • 三個單獨的類型的文件VTX的:

    • .sw.vtx(軟件),
    • .dx80.vtx(的DirectX 8.0)和
    • .dx90.vtx(DirectX 9.0的),其存儲硬件優化材料, 剝皮和三角形帶/風扇 信息EAC在MDL每個齧合 ħLOD,
  • 通常是一個文件.PHY含有 剛性或接合 (布娃娃)碰撞模型,並且有時
  • 一個.ANI文件要做到: 事做模型動畫

Valve

現在閥門來源SDK米ay有一些實用程序可以讀取VTX(它似乎有能力使它們無論如何)。有些人可能已經制作了第三方工具或者有代碼來讀取它們,但它可能不適用於所有文件,只是因爲它是第三方格式。我還發現this post如果你以前沒有見過它可能會有所幫助。