Cesium開發(fā): Draco模型壓縮
Draco 由谷歌 Chrome 媒體團隊設(shè)計,旨在大幅加速 3D 數(shù)據(jù)的編碼、傳輸和解碼。Draco的研發(fā)團隊將這個開源算法的首要應(yīng)用在chorme瀏覽器上。谷歌將這個算法開源,現(xiàn)在全世界的開發(fā)者可以去探索 Draco 在其他場景的應(yīng)用。目前谷歌提供了兩個代碼版本:JavaScript 和 C++。

Draco可以用來壓縮 mesh 和點云數(shù)據(jù)。它還支持壓縮點( compressing points),連接信息,紋理協(xié)調(diào),顏色信息,法線( normals)以及其他與幾何相關(guān)的通用屬性。
draco的github項目地址:
https://github.com/google/draco
Cesium1.44開始支持解析draco壓縮算法的gltf/glb模型,將模型使用具有draco算法的工具進行壓縮,例如blender等,Cesium加載模型時,進行模型的解析。
對比使用draco算法壓縮的模型,模型的數(shù)據(jù)量變小了相當(dāng)多,這樣會提高網(wǎng)絡(luò)上的傳輸速度。
在3D Tiles的大批量模型中,使用這一算法進行提前壓縮,可以大大的減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
Cesium官方還專門寫了這樣的一篇博客:
https://cesium.com/blog/2018/04/09/draco-compression/
同時,Cesium在前端使用了Web Assembly的技術(shù)進行模型的解析,更提高了模型的解析性能,在Cesium的發(fā)行包中,可以看到Web Assembly技術(shù)的draco_decoder.wasm文件。在壓縮提高傳輸速度的情況下,模型的質(zhì)量并沒有減小。