關(guān)鍵字:Cesium glTF WebGL技術(shù)
大綱:
1 glTF簡介,這是一個什么東西,有哪些特點
2 Cesium如何加載,渲染glTF,邏輯結(jié)構(gòu)和關(guān)鍵技術(shù)
3 個人總結(jié),從glTF學(xué)習(xí)如何設(shè)計一個二進制格式,個人想法分享
共計 4000字 | 建議閱讀時間 未知
1 glTF簡介
之前介紹了Cesium的Property,Material,Batch,GroundPrimitive這些內(nèi)容,可以說是簡單地物和風(fēng)格的解決思路。當(dāng)Cesium把這些技術(shù)點整合起來,我們便具備了渲染模型的威力。也就是今天要講的glTF模型渲染。
glTF的全稱是GL傳輸格式,是一種針對GL(WebGL,OpenGL ES以及OpenGL)接口的運行時資產(chǎn)(asset)。在3D內(nèi)容的傳輸和加載中,glTF通過提供一種高效,易擴展,可協(xié)作的格式,填補了3D建模工具和現(xiàn)代GL應(yīng)用之間的空白。github上有對該數(shù)據(jù)規(guī)范的詳細介紹,春節(jié)期間我翻譯了其中的核心部分,有興趣的可以了解。
三維模型的格式這么多,為什么不用現(xiàn)成了,而是非要自己重新定義一個規(guī)范,原文中Patrick很誠實詳盡的做了解釋。簡單說,目前主流的三維模型主要的特點在于數(shù)據(jù)制作上,在Web傳輸和解析上無法滿足需求,而glTF的特點就是傳輸和解析的高效。首先,二進制的傳輸方式最為高效,也就是ArrayBuffer形式,但二進制的解析則很繁瑣,也很容易出錯。如何提高解析效率呢,就如同云盤的秒傳功能,不解析,或減少解析是最有效的解析方式, 要做到這一點,則要求顯卡,WebGL能夠直接加載該數(shù)據(jù)結(jié)構(gòu)。
上圖是glTF的一個大概結(jié)構(gòu),分為四大塊,最上面的json是一個表述,描述該模型的節(jié)點層級,材質(zhì),相機,動畫等相關(guān)邏輯結(jié)構(gòu),bin則對應(yīng)這些對象的具體數(shù)據(jù)信息,glsl是對該模型渲染的著色器,針對該模型的數(shù)據(jù)信息,給出渲染“配方”,當(dāng)然還有紋理內(nèi)容。大塊內(nèi)容可以以Base64的編碼內(nèi)遷到文件中,方便拷貝和加載,也可以以URI的外鏈方式,側(cè)重重用性。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26