GLTF簡(jiǎn)介
1.glTF(GL TransmissionFormat),即圖形語(yǔ)言交換格式,它是一種3D內(nèi)容的格式標(biāo)準(zhǔn),由Khronos Group管理(Khronos Group還管理著OpenGL系列、OpenCL等重要的行業(yè)標(biāo)準(zhǔn));
2.glTF的設(shè)計(jì)是面向實(shí)時(shí)渲染應(yīng)用的,盡量提供可以直接傳輸給圖形API的數(shù)據(jù)形式,不再需要二次轉(zhuǎn)換;
3.glTF對(duì)OpenGL ES、WebGL非常友好;
4.glTF的目標(biāo)是:3D領(lǐng)域的JPEG;
5.作為一個(gè)標(biāo)準(zhǔn),自2015年10月發(fā)布(glTF 1.0)以來(lái),已經(jīng)得到了業(yè)界廣泛的認(rèn)可,你可以相信它的水平;
6.glTF目前最新版本為2.0已于2017年6月正式發(fā)布。
GLTF具體的數(shù)據(jù)存儲(chǔ)格式可以去官方網(wǎng)站上看:https://www.khronos.org/gltf/,大概就是相對(duì)于XML的JSON存儲(chǔ)方式。
文章關(guān)注的是GLTF給我們帶來(lái)的便利——節(jié)約存儲(chǔ)空間,減少帶寬壓力。
那么如何獲得GLTF格式文件?
目前已經(jīng)有了很多的轉(zhuǎn)換工具:
其中Input代表輸入模型的格式,輸出為gltf格式。由于之前使用過(guò)Dae格式的文件(https://www.khronos.org/collada/),因此文章選取COLLADA2GLTF工具轉(zhuǎn)換文件:
千萬(wàn)別糾結(jié)于工具源代碼的編譯,因?yàn)镵hronosGroup已經(jīng)給出了Release版本。這里說(shuō)一些使用方法:
1.解壓zip文件,在根目錄新建dae文件夾——用于存放原始的dae文件
2.在根目錄新建gltf文件夾——用于存放轉(zhuǎn)換后的gltf文件
3.在根目錄按住Ctrl+Shift+Alt+鼠標(biāo)右鍵,打開(kāi)PowerShell窗口
4.在命令行中輸入:./collada2gltf-bin.exe input.dae output.gltf –i dae/input.dae –o gltf/output.gltf
其中input為dae文件的名稱,output為輸出gltf文件的名稱。
5.Enter開(kāi)始轉(zhuǎn)換。
PS C:\Users\Ruby\Desktop\COLLADA2GLTF-v2.1.2-windows-Release-x64>./COLLADA2GLTF-bin.exe elf.dae elf.gltf -i dae/elf/elf.
dae -o gltf/elf.gltf
Convertingdae\elf\elf.dae -> gltf\elf.gltf
Time: 320 ms
原始dae文件包含4個(gè)jpg貼圖一共2.46M,轉(zhuǎn)換后為一個(gè)單獨(dú)的gltf文件約1.38M(含貼圖)。其實(shí)我很好奇那些貼圖文件去哪兒了,于是打開(kāi)了gltf文件查看,發(fā)現(xiàn)在image數(shù)組下已經(jīng)把這些貼圖文件用base 64編碼,變成一堆機(jī)器碼直接插在gltf文件中。
完成模型轉(zhuǎn)換以后,利用ThreeJS的LoadGLTF API導(dǎo)入網(wǎng)頁(yè)中瀏覽效果如下:
如何在GLTF格式中捕獲動(dòng)畫?
上述過(guò)程展示了從Collada到gltf的轉(zhuǎn)換以及讓gltf模型展示在網(wǎng)頁(yè)上。下面將繼續(xù)研究如何獲取gltf模型的動(dòng)畫("Talk is cheap,show me the code"——哈哈哈)
效果如圖所示:

至此,gltf從模型到動(dòng)畫都run了一遍。
總結(jié)
GLTF格式號(hào)稱3D圖形界的JPEG,能夠?qū)崿F(xiàn)快速的模型數(shù)據(jù)交換。在2017年中旬更新的2.0版本克服了一些低版本的功能缺陷,使得自身功能得到發(fā)展;同時(shí),gltf解析及轉(zhuǎn)換Tool的快速發(fā)展,為GLTF的進(jìn)一步推廣做出了很多的貢獻(xiàn)。文中也應(yīng)證了,作為GLTF格式的用戶,能夠利用現(xiàn)有的工具對(duì)模型處理,減少模型的數(shù)據(jù)量,在WebGL的應(yīng)用中在成倍地節(jié)省帶寬的同時(shí)能夠獲取同質(zhì)量的模型以及動(dòng)畫。
原文:https://cloud.tencent.com/developer/news/204942