上一節(jié)介紹3D Tiles渲染調(diào)度的時候,我們提到目前Cesium支持的Cesium3DTileContent目前支持如下類型:

  • Batched3DModel3DTileContent

  • Instanced3DModel3DTileContent

  • PointCloud3DTileContent

  • Composite3DTileContent

      其中Composite3DTileContent是復(fù)合數(shù)據(jù),PointCloud3DTileContent是只包含F(xiàn)eatureTable和BatchTable的點云數(shù)據(jù)(從官方給的數(shù)據(jù)結(jié)構(gòu)來看,我沒有親自測試)。本節(jié)主要以Batched3DModel3DTileContent和Instanced3DModel3DTileContent兩種類型,介紹一下3DTiles的數(shù)據(jù)結(jié)構(gòu)和核心技術(shù)點。

渲染

      結(jié)合上一節(jié),先給出一個流程圖,建議大圖邊看邊思考。其中紅線是表明狀態(tài)變化。TileContent是一個抽象概念,具體是它的繼承類Batched3DModel或Instanced3DModel來完成具體的功能,而每一個具體的Content會根據(jù)自己的數(shù)據(jù)結(jié)構(gòu)的差異而有所差別。

 seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

      3D Tiles也是基于狀態(tài),從UNLOADING開始,通過一系列的request,完成最初的數(shù)據(jù)加載過程,結(jié)束LOADING狀態(tài),進(jìn)入Pocessing過程,也就是數(shù)據(jù)解析。數(shù)據(jù)解析完后進(jìn)入READY狀態(tài),通過selectTile,最終調(diào)用Content對應(yīng)的update方法,構(gòu)造最終的drawcommand,加入渲染隊列。當(dāng)然,如果有需要釋放的Tile,則在unloadTiles中處理。細(xì)心的人會發(fā)現(xiàn)Pocessing和Ready狀態(tài)。最終調(diào)用的都是update方法。這里解釋一下:3D Tiles中主要的數(shù)據(jù)部分就是glTF,而glTF也是基于狀態(tài)管理的,無論是glTF的解析還是構(gòu)造DrawCommand,只是state不同,都是在update方法中完成的。如上圖,這里也用橙色箭頭做了說明。

      如上給出了一個相對完整的過程,Content的內(nèi)容主要是glTF,這塊我們之前也介紹過,所以下面主要集中在b3dm中BatchTable和FeatureTable。

Batched3DModel3DTileContent


延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式