can anyone explain the FBX format for me?
i use notepad++ to see the data structure of FBX model but i have some problems understanding it. Here is some info of a cube(side = 10) located in (0,0,0), can anyone tell me what do these members mean? THANKS!
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
}
I think these assumptions are quite reasonable, though I'm not sure why the PolygonVertexIndex array contains negative values (it seems every third index of each triangle is negative). Maybe to indicate the last index of a polygon, so you can have polygons which need not be triangles.
The one with the negative value represents the last vertex indeed.
To find out witch vertex this is, you have to negate it and subtract 1 from that value.
For example, -4 represents 3 ((-4)*(-1) - 1)
Even with no knowledge of the FBX format you can at least make some very reasonable guesses:
The 24 values under
Verticesare the 8 vertices of the cube (with 3 values representing one vertex).The 36 values under
PolygonVertexIndexare the vertex indices (referencing the values fromVertices) for the 12 triangles making up the 6 faces of the cube.The 24 values under
Edgesare the vertex indices of the 12 edges of the cube.The 108 values under
Normalsare the 36 normals for each of the triangle corners of the 12 triangles (with 3 values representing one normal vector).The 24 values under
UVare 12 texture coordinates (with 2 values representing one texture coordinate pair).The 36 values under
UVIndexare the texture coordinate indices (referencing the values fromUV) for the 36 triangle corners of the cube.
I think these assumptions are quite reasonable, though I'm not sure why the PolygonVertexIndex array contains negative values (it seems every third index of each triangle is negative). Maybe to indicate the last index of a polygon, so you can have polygons which need not be triangles.
The negative vertex index indicates the end of the polygon. You can bitwise negate the negative index, to get the positive one.
In c this would be
posIndex = ~negIndex;
加载中,请稍侯......
精彩评论