Html监听Fbx文件加载,FBX格式mesh解析与加载(一)
FBX格式mesh解析與加載(一)
FBX格式mesh解析與加載(一)
**
理解FBX格式中Mesh數據結構**
fbx文件是現在許多建模動畫軟件和游戲引擎之間共用的模型文件格式。fbx文件分為兩種方式從建模軟件中導出,一種是二進制文件另一種是ASCII碼保存。
ASCII保存的格式右鍵打開方式選文本可以打開看到里面保存的數據。對于模型網格來說,模型中點坐標、點索引、 點法線、uv 是生成模型的重要參數。在文本中Object properties 能找到這個些數據。
比如打開一個簡單正方提模型我們可以看到下面數據:
Vertices的24個值是三維數據集的8個頂點(3個值代表一個頂點三維坐標)。
PolygonVertexIndex 下的36個值是頂點索引(mesh中點的索引)
Normals 的108是12個三角形的每個三角形角的36個法線(3個值代表一個法向量)。
UV 下的24是12個紋理坐標(2個值代表一個紋理坐標對)。
UVIndex 的36是三維數據集的36個三角形角的紋理坐標索引(引用 UV 的值)。
Vertices中數據不難理解,就是這些數據三個一組對應X、Y、Z構成一個三維坐標,所以可以得到正方體的8個頂點坐標。
PolygonVertexIndex 看到這個數據中的大家都會有疑問:
為什么頂點索引數據會有負數?
因為模型為了區分模型網格是三角面還是四邊面,如果數據每隔三個為負數則為三角面,每隔四個為四邊面。
如何將負數的索引值轉成有效索引數據呢?
假如n為負數索引值,m = |n|-1 。m為計算后的正確索引值。
因為normal和uv所計算的值都是對應的點的值:點法線是對應的點的法線,uv是點映射在平面上的坐標值,他們根本都是點的屬性。 而 PolygonVertexIndex、Normals和UVIndex的數量都是36,可以猜測Normals 和 UV 是在每個PolygonVertexIndex所映射的點所相應 normal 或者 uv 的值的集合。
**
FBX文件中Mesh數據結構與游戲引擎中Mesh數據結構差異
**
fbx文件中的數據結構與游戲引擎中的模型數據有所不同,如果拿fbx中的數據在unity3d或者UE4的場景中生成模型依然會出現問題。
游戲引擎與fbx數據結構不同:
1.游戲引擎mesh中點索引triangles,都是三角面,三個數據為一組。而fbx中有可能為四邊面。
2.游戲引擎中mesh中的normal數量、uv數量與vertices中點數量一致。而fbx中normal數量、uv數量與vertices的點索引數量一致。
想要把fbx導入到游戲引擎中必須解決這些問題。將數據轉化后才能在場景中生成正確的模型。
FBX格式mesh解析與加載(一)相關教程
總結
以上是生活随笔為你收集整理的Html监听Fbx文件加载,FBX格式mesh解析与加载(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构化方法、面向对象方法的区别
- 下一篇: 创新+工匠,TCL推XESS重定义电视行