關(guān)鍵字:Cesium glTF WebGL技術(shù)

大綱:

glTF簡(jiǎn)介,這是一個(gè)什么東西,有哪些特點(diǎn)

Cesium如何加載,渲染glTF,邏輯結(jié)構(gòu)和關(guān)鍵技術(shù)

個(gè)人總結(jié),從glTF學(xué)習(xí)如何設(shè)計(jì)一個(gè)二進(jìn)制格式,個(gè)人想法分享

共計(jì) 4000字 | 建議閱讀時(shí)間 未知

1 glTF簡(jiǎn)介

       之前介紹了Cesium的Property,Material,Batch,GroundPrimitive這些內(nèi)容,可以說(shuō)是簡(jiǎn)單地物和風(fēng)格的解決思路。當(dāng)Cesium把這些技術(shù)點(diǎn)整合起來(lái),我們便具備了渲染模型的威力。也就是今天要講的glTF模型渲染。

       glTF的全稱是GL傳輸格式,是一種針對(duì)GL(WebGL,OpenGL ES以及OpenGL)接口的運(yùn)行時(shí)資產(chǎn)(asset)。在3D內(nèi)容的傳輸和加載中,glTF通過(guò)提供一種高效,易擴(kuò)展,可協(xié)作的格式,填補(bǔ)了3D建模工具和現(xiàn)代GL應(yīng)用之間的空白。github上有對(duì)該數(shù)據(jù)規(guī)范的詳細(xì)介紹,春節(jié)期間我翻譯了其中的核心部分,有興趣的可以了解

      三維模型的格式這么多,為什么不用現(xiàn)成了,而是非要自己重新定義一個(gè)規(guī)范,原文中Patrick很誠(chéng)實(shí)詳盡的做了解釋。簡(jiǎn)單說(shuō),目前主流的三維模型主要的特點(diǎn)在于數(shù)據(jù)制作上,在Web傳輸和解析上無(wú)法滿足需求,而glTF的特點(diǎn)就是傳輸和解析的高效。首先,二進(jìn)制的傳輸方式最為高效,也就是ArrayBuffer形式,但二進(jìn)制的解析則很繁瑣,也很容易出錯(cuò)。如何提高解析效率呢,就如同云盤(pán)的秒傳功能,不解析,或減少解析是最有效的解析方式, 要做到這一點(diǎn),則要求顯卡,WebGL能夠直接加載該數(shù)據(jù)結(jié)構(gòu)。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

       上圖是glTF的一個(gè)大概結(jié)構(gòu),分為四大塊,最上面的json是一個(gè)表述,描述該模型的節(jié)點(diǎn)層級(jí),材質(zhì),相機(jī),動(dòng)畫(huà)等相關(guān)邏輯結(jié)構(gòu),bin則對(duì)應(yīng)這些對(duì)象的具體數(shù)據(jù)信息,glsl是對(duì)該模型渲染的著色器,針對(duì)該模型的數(shù)據(jù)信息,給出渲染“配方”,當(dāng)然還有紋理內(nèi)容。大塊內(nèi)容可以以Base64的編碼內(nèi)遷到文件中,方便拷貝和加載,也可以以URI的外鏈方式,側(cè)重重用性。

網(wǎng)友評(píng)論