2009-12-04 241 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如果你以前没有见过它可能会有所帮助。