继续自问自答~ 我编了一个函数 输出mesh的vertexbuffer,indexbuffer和adjacentbuffer 所以我对使用D3DXCreat***函数创建的立方体mesh和使用D3DXLoadMeshFromX载入的立方体进行对比,信息如下:
D3DCreateBox的:
Vertices:
---------
Vertex 0: (-1, -1, -1, -1, 0, 0)
Vertex 1: (-1, -1, 1, -1, 0, 0)
Vertex 2: (-1, 1, 1, -1, 0, 0)
Vertex 3: (-1, 1, -1, -1, 0, 0)
Vertex 4: (-1, 1, -1, 0, 1, 0)
Vertex 5: (-1, 1, 1, 0, 1, 0)
Vertex 6: (1, 1, 1, 0, 1, 0)
Vertex 7: (1, 1, -1, 0, 1, 0)
Vertex 8: (1, 1, -1, 1, 0, 0)
Vertex 9: (1, 1, 1, 1, 0, 0)
Vertex 10: (1, -1, 1, 1, 0, 0)
Vertex 11: (1, -1, -1, 1, 0, 0)
Vertex 12: (-1, -1, 1, 0, -1, 0)
Vertex 13: (-1, -1, -1, 0, -1, 0)
Vertex 14: (1, -1, -1, 0, -1, 0)
Vertex 15: (1, -1, 1, 0, -1, 0)
Vertex 16: (-1, -1, 1, 0, 0, 1)
Vertex 17: (1, -1, 1, 0, 0, 1)
Vertex 18: (1, 1, 1, 0, 0, 1)
Vertex 19: (-1, 1, 1, 0, 0, 1)
Vertex 20: (-1, -1, -1, 0, 0, -1)
Vertex 21: (-1, 1, -1, 0, 0, -1)
Vertex 22: (1, 1, -1, 0, 0, -1)
Vertex 23: (1, -1, -1, 0, 0, -1)
Indices:
--------
Face 0: 0 1 2
Face 1: 2 3 0
Face 2: 4 5 6
Face 3: 6 7 4
Face 4: 8 9 10
Face 5: 10 11 8
Face 6: 12 13 14
Face 7: 14 15 12
Face 8: 16 17 18
Face 9: 18 19 16
Face 10: 20 21 22
Face 11: 22 23 20
D3DLoadMeshFromFile的:
Vertices:
---------
Vertex 0: (-1, -1, -1, 0, 0, -1)
Vertex 1: (1, 1, 1, -1, -1, 0)
Vertex 2: (0, -1, 0, 1, -1, 1)
Vertex 3: (-1, 0, 0, -1, 1, 0)
Vertex 4: (1, 1, -1, 0, 0, -1)
Vertex 5: (0, 0, -1, -1, 1, 0)
Vertex 6: (0, 1, 0, 1, 1, -1)
Vertex 7: (1, 0, 0, 1, 1, 1)
Vertex 8: (-1, 1, 1, 0, 0, 1)
Vertex 9: (0, 0, 1, 1, 1, 0)
Vertex 10: (0, 1, 1, 0, -1, -1)
Vertex 11: (-1, 0, -1, 0, 0, 1)
Vertex 12: (1, -1, -1, 0, -1, 0)
Vertex 13: (1, 1, 1, -1, 1, 0)
Vertex 14: (-1, 0, 1, 0, -1, -1)
Vertex 15: (1, 0, -1, 0, 0, 0)
Vertex 16: (1, 1, -1, 1, 0, 0)
Vertex 17: (1, 1, 1, -1, 1, 1)
Vertex 18: (0, 0, 0, 0, 1, 1)
Vertex 19: (-1, 0, 1, 0, 0, 1)
Vertex 20: (-1, 1, -1, 0, 1, 0)
Vertex 21: (1, 1, -1, 1, 1, 0)
Vertex 22: (1, 0, 1, 0, 1, 1)
Vertex 23: (1, 0, 1, 0, 0, 0)
Indices:
--------
Face 0: 0 2 3
Face 1: 3 1 0
Face 2: 4 5 7
Face 3: 7 6 4
Face 4: 8 9 10
Face 5: 10 11 8
Face 6: 20 12 21
Face 7: 21 13 20
Face 8: 14 15 16
Face 9: 16 17 14
Face 10: 18 22 19
Face 11: 19 23 18
PS:顶点坐标后三位是法线向量。
经过对比法线虽然两个mesh的vertices数量和face数量相同,但是我试着按照这两个buffer重新构成一下对应的立方体,发现D3DXCreateBox创建的立方体可以被准确的构造出来,而Load进的立方体构造出的face非常混乱。是不是在导出.x文件时影响了buffer们的准确性呢。
|