認識3D模型-GLTF文件

GLTF文件格式

glTF的全稱(Graphics Language Transmission Format)圖形語言傳輸格式。是三維場景和模型的標準文件格式。
glTF 核心是 JSON 文件,描述了 3D 場景的整個內容。它由場景結構本身的描述組成,內容其由定義場景圖的節點的層次提供。
場景中出現的 3D 對象是使用連接到節點的 meshes(網格)定義的。Materials(材料)定義對象的外觀。Animations(動畫)描述 3D 對象如何隨着時間的推移轉換 3D 對象,並且 Skins(蒙皮)定義了對物體的幾何形狀的方式基於骨架姿勢變形。Cameras(相機)描述了渲染器的視圖配置。
除此以外,它還包括了帶有二進制數據和圖像文件的鏈接。
Json文件(.gltf)包含完整的場景描述。
二進制文件(.bin)存儲幾何及動畫等數據內容。
紋理文件(.jpg, .png)存儲紋理圖片內容。
ITF的格式有三種表達
>gTF分離格式(.gltf+.bin+紋理)
>gITF嵌入格式 (.gltf)
>gITF二進制格式 (.glb)
.gltf 文件,本質是 json 文件,記錄對bin文件中模型頂點基本數據的索引、材質索引等信息。
.bin 文件,以二進制流的方式存儲頂點座標、頂點法線座標和貼圖紋理座標、貼圖信息等模型基本數據信息。
.glb 文件是二進制流文件,通常來說會更小一點,若不關心模型內的具體數據可直接選擇此類型。

模型加載順序
模型加載順序爲,先加載gltf文件,然後解析依次讀取scenes、nodes、meshes、accessors、bufferViews、buffers、materials、textures、images。其中每個mesh包括一個bufferViews和一個materials。每一層的遞進都有數組下標來確定。

 

glft的壓縮優化
可以採用KHR_mesh_quantization或EXT_meshopt_compression進行網格壓縮
然後再使用gltf-pipeline進行模塊區分並對紋理圖片壓縮


製作GLTF模型數據
可以通過blender(開源免費)製作模型,然後導出成GLTF格式的文件。
blender地址:https://www.blender.org


參考文章:
https://www.jianshu.com/p/e134a2599cb7
https://segmentfault.com/a/1190000040506397?u_atoken=b06abf46-d8df-47db-ba59-5a4c4363d0cd&u_asession=01F4qvsxqP6kMcoXAmYhcyQfCq5d5Ikg-x9SDd4p1-hpFFk9PCkFV03zUutLz3Sb9nX0KNBwm7Lovlpxjd_P_q4JsKWYrT3W_NKPr8w6oU7K89Mr-I3EbGC83-VqEj1tUZ2l7GVvsUm1O1dQ3kAgydYmBkFo3NEHBv0PZUm6pbxQU&u_asig=05ESJ0rAXmqHXPIepLzgwTZm2R1rU3ORtWRA6FcUrU0s_I1hNzwAGwAsPBsvx9PmF0hyyMNORqXv-BWKvlHc96sgW6fi4uZXYtwk16F-RERqdkTDO3mpaauxgkssYAyDm9zeVqVFl-m6d7Ay5G3RJsKYgSU3tkx4PWFBDHg7_F3JP9JS7q8ZD7Xtz2Ly-b0kmuyAKRFSVJkkdwVUnyHAIJzQcWaqiEnhz-_OrjzkcBUNsXIInsFpDA-9pQwAzg9ndlaSuCIIsUrXvoQJBX3FajR-3h9VXwMyh6PgyDIVSG1W-rSwjCtyTewaa1beVeAOLa2qaXJ7OgOBoJ-UpI701OkNACp6I45I5Z4pVXM0r257y4Pxc3izT6PHNXAf5yIqDomWspDxyAEEo4kbsryBKb9Q&u_aref=aw4TIgfR3yygqwN%2B4HFRj6Q%2B%2FuE%3D


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章