任何人都可以为我解释FBX格式吗?

时间:2011-10-12 07:51:44

标签: graphics data-structures dataformat fbx

我使用notepad ++来查看FBX模型的数据结构,但我对它有一些问题。这是位于(0,0,0)的立方体(侧面= 10)的一些信息,任何人都可以告诉我这些成员是什么意思?谢谢!

Vertices: *24 {
a: -5,-5,0,5,-5,0,-5,5,0,5,5,0,-5,-5,10,5,-5,10,-5,5,10,5,5,10
} 
PolygonVertexIndex: *36 {
a: 0,2,-4,3,1,-1,4,5,-8,7,6,-5,0,1,-6,5,4,-1,1,3,-8,7,5,-2,3,2,-7,6,7,-4,2,0,-5,4,6,-3
} 
Edges: *18 {
a: 0,1,2,3,4,6,7,8,9,10,13,14,16,19,20,25,26,32
} 
Normals: *108 {
a: 0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-        1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-   1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0
} 

UV: *24 {
a: 0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1
} 
UVIndex: *36 {
a: 9,11,10,10,8,9,8,9,11,11,10,8,4,5,7,7,6,4,0,1,3,3,2,0,4,5,7,7,6,4,0,1,3,3,2,0
} 

3 个答案:

答案 0 :(得分:9)

  

我认为这些假设非常合理,但我不确定   为什么PolygonVertexIndex数组包含负值(似乎   每个三角形的每个第三个索引都是负数)。也许是为了表明   多边形的最后一个索引,因此您可以拥有不需要的多边形   三角形。

具有负值的那个确实代表最后一个顶点。

要找出巫婆顶点,你必须否定它并从该值中减去1。

例如,-4代表3 ((-4)*(-1) - 1)

答案 1 :(得分:8)

即使不了解FBX格式,您至少可以做出一些非常合理的猜测:

  1. Vertices下的24个值是多维数据集的8个顶点(3个值代表一个顶点)。

  2. PolygonVertexIndex下的36个值是构成立方体6个面的12个三角形的顶点索引(引用Vertices的值)。

  3. Edges下的24个值是多维数据集12条边的顶点索引。

  4. Normals下的108个值是12个三角形中每个三角形角的36个法线(3个值代表一个法线向量)。

  5. UV下的24个值是12个纹理坐标(2个值代表一个纹理坐标对)。

  6. UVIndex下的36个值是多维数据集的36个三角形角的纹理坐标索引(引用UV的值)。

  7. 我认为这些假设是相当合理的,但我不确定为什么PolygonVertexIndex数组包含负值(似乎每个三角形的每个第三个索引都是负数)。也许是为了指示多边形的最后一个索引,因此你可以得到不必是三角形的多边形。

答案 2 :(得分:6)

负顶点索引表示多边形的结尾。你可以按位否定负指数,得到正数。

在c中,这将是

posIndex = ~negIndex;