3dTiles 數據規范詳解[4.4] cmpt瓦片二進制數據文件結構


cmpt,即 Component,組合模型的意思。

目錄:https://www.cnblogs.com/onsummer/p/12799366.html

這是前三種的一種更靈活的組織,允許一個瓦片使用 cmpt 形式,組合多種瓦片,cmpt瓦片可以內嵌任意個、任意類型的瓦片,b3dm、i3dm、pnts均可。

所以本文僅簡單介紹文件結構。

文件二進制布局

虛線意味着可選,也就是說,cmpt瓦片可以是空瓦片。

① 文件頭:16byte

字段名 數據類型 描述
magic char[], 4byte 常量"cmpt". 用來指示文件是cmpt瓦片。
version uint32, 4byte cmpt的版本。目前是1
byteLength uint32, 4byte 整個瓦片文件的體積,byte為單位。
tilesLength uint32, 4byte cmpt中融合的瓦片數量。

② 內嵌的瓦片

不知道讀者一路看過來有沒有發現,無論是哪一種瓦片,其文件頭前3個屬性都是 magicversionbyteLength

所以,這就給 cmpt 這種套娃式瓦片有了可復用性。

請注意,cmpt是可以繼續嵌套cmpt的(無限套娃),雖然我不是很建議你這么搞。

所以本篇其實僅僅介紹 cmpt 的組織結構即可,具體內嵌了什么瓦片,那得繼續讀取每一個瓦片的 magic 屬性,才能作分支判斷、解析。

讀者回看 第二篇,介紹 tileset 概念的時候,我說過,tileset其實還能引用子一級的 tileset。cmpt在瓦片級別延續了這種靈活性。

文件擴展名和MIME

文件擴展名:*.cmpt

MIME: application/octet-stream

擴展名不是必須的,因為magic字段會指示瓦片是什么。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM