日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CesiumLab V1.3 新功能 MAX场景处理(免费Cesium处理工具集)

發布時間:2024/4/14 编程问答 103 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CesiumLab V1.3 新功能 MAX场景处理(免费Cesium处理工具集) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 每次到寫文章的時候就很高興,意味著又有重大功能更新了,也意味著10多天昏天黑地的閉關日子暫時結束了。

依照慣例,先放圖

?

小范圍精模型cesium加載效果

?

大范圍白模cesium加載效果

?

存儲對象名稱支持點選

處理目的:

????????MAX建模的三維場景 或者其他建模軟件導出的三維模型數據(只支持靜態場景,不支持動畫) 轉為 cesium可以加載的 3dtiles模型。

希望達到的目標:

? ? ? 自動創建lod,加快cesium的加載和渲染速度。

使用的優化手段:

? ? ? 大模型(mesh)切分、場景分塊、三角網簡化、紋理縮放合并、材質合并。 分久必合,合久必分,分分合合,估計有些人都暈了,我也很暈,但是沒辦法,這是必要的過程。?

支持格式:

? ?我使用的開源項目assimp做輸入數據讀取解析器,所以理論上支持的模型格式多達57種,詳細見????https://github.com/assimp/assimp。

? ?這里有我們熟悉的,obj,3ds,gltf 還有很多人關心的 ifc(ifc只支持一部分格式,不是全部,別高興太早)。

? ?開發過程中都是用dae測試的、為什么用這種格式?dae是基于xml的,可以算第一個比較完整的模型交 換格式標準,所有數據都是文本保存,更方便閱讀和調試。所以我建議如果可以最好max中導出dae格式做測試。

導出工具:

? ??

max支持的兩種dae導出工具

Autodesk Collada是 autodesk官方出的導出插件,這個插件真心很爛,特別對于大場景的導出,基本次次卡死。唯一的優勢是對中文支持比較友好,對象的中文名都輸出到dae了,所以沒辦法冒著次次卡死的風險不停的測試。下面是我的導出參數:

?

?

autodesk dae 參數1

?

?

autodesk dae參數2

OpenCOLLADA?是 開源的導出插件,點鏈接OpenCOLLADA?去下載對應版本的插件。這個插件優點是導出很快速,缺點也非常明顯,對中文支持不友好,max里的所有中文名稱都沒了。?

?

OpenCOLLADA dae參數

?

參數配置:

?

模型參數配置

從簡單的說:

保存名稱:把模型對象名稱(Node的name)存入3dtiles的featuretable中,這樣加載cesium之后,可以依據pick到的模型名稱來區分點擊的對象,方便做后續的業務,當然如果你的數據是 花花草草,這些本身就是裝飾類的模型,那就沒必要保存這個了。

強制雙面:按道理模型都應該存儲這個屬性,但是可惜MAX導出的dae沒有保留這個有用的屬性。所以我們需要在這里強制設置,對于常見的十字交叉樹木花草、單片護欄、圍墻等物體,需要勾選此項。對于封閉的模型,例如建筑物或者設備等,不要勾選,可以提升一些渲染效率。

貼圖效果:無光照 : 適應的是 烘培后的場景 或者 像花草樹木本身貼圖都是實景圖片的模型。

? ? ? ? ? ? ? ? ? 簡單光照:適應的其他貼圖模型,采用自定義shader實現,相當光線一直是視點方向,正對平面,模型最亮。

? ? ? ? ? ? ? ? ?cesium默認:cesium內置的處理方式,全局太陽光。(因為一些人反映模型效果太暗,所以才搞了個 無光照 和 簡單光照)

分割策略:這個最難解釋的,我們天天提LOD,LOD是什么?核心就四個字:分塊,分層 。這個工具的3600行純手打的C++代碼就是圍繞這四個字來的。分層,其實依據精度來計算的,這個也就不展開了,核心機密。我們來說說這個分塊策略:

???? ?空間優先: 依據模型(精確到每個mesh)的模型空間位置,來分割塊,這個也是常規手法,比如四叉樹,八叉樹等等,不過這回因為考慮到適應性,并沒有使用四叉樹或者八叉樹,而是自創的一個二叉樹。簡單來說,分別在x,y,z三個軸向上分割,哪個軸向上分割的模型總量差較小,就使用哪個軸。

? ? ? 材質優先:依據模型(精確到每個mesh)的材質(含貼圖)來組合,優先把使用相同材質的模型放在一起。為什么要做這個?請看文本圖1,近處的花花草草,如果按照空間分割、這些花花草草本身其實幾何體很簡單,但是紋理很大,導致這個紋理存儲在多個塊中,就比較浪費了,完全沒有必要,所以這種優先使用材質分塊,分層級別更少,效率更好一些。

? ? ?注意優先二字,我們內部會自動計算,分塊這兩種方法會綜合運用,而不是唯一標準。

?

后記:

? ? ? ?這個工具最開始并沒有排到我計劃的列表中去,不過看大家各種嘗試,轉模型太辛苦了,還是犧牲一下我兩周的時間來做點事情。和我最開始預估的一樣,第一,我自己暫時用不上這個工具;第二,本身這個工具的難度就很大,需要上所有的優化手段,模型分割、模型簡化,紋理合并,場景分塊等等。所以我很擔心,這個坑填不上,后來想想,先填一點,能解決一部分問題也好。每天約16個小時的高強度工作,大約花了2天設計了整個流程,又花3天時間堆上所有代碼,又花了2天時間調通。效果也有了。然而,這時候我又有了更好的處理流程,覺得第一版太屎了,修修補補,各種不順眼,本著做產品不是做項目的目的,決定代碼重構。花了0.5天整理思路,1天的時間堆代碼(3000多行c++代碼一天手打出來),2天各種測試修補bug,再來0.5天的UI部分,這回效果基本滿意了。再這過程中,真的也是沒有及時回復很多小伙伴的消息,真的抱歉了。

????模型優化是個無底洞,這個工具也不是放之四海而皆準,依然還有較大的優化空間。有人問我支不支持幾百平方公里的模型? 我不好回答,因為這要看模型制作的精細度,以及模型現在的場景結構。如果轉換有問題,請發測試數據給我。

?

?

一起來聊技術吧

轉載于:https://www.cnblogs.com/cesium1/p/10062817.html

總結

以上是生活随笔為你收集整理的CesiumLab V1.3 新功能 MAX场景处理(免费Cesium处理工具集)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。