閉關(guān)三月,略有小成--寫在 CesiumLab2.1 發(fā)布前夕

這篇文章早該發(fā)布了,可惜bug不斷,一拖再拖,經(jīng)過這兩天的測試,終于穩(wěn)定了一些,打算今天放出來找罵。
先扯點其他的,關(guān)于團(tuán)隊,剛內(nèi)部群里,發(fā)了條信息

內(nèi)部群

的確是該慶賀下,最近太辛苦,幾乎除了在家睡覺的8小時,其他16個小時都在公司干活,新的辦公地是一個Loft的辦公室,上下兩層,下層辦公,上層會議室。地方寬敞,早上有陽光,舒服,秀一張圖:


會議室

二樓休息區(qū)

一樓

也順便打個廣告,誠招天下志同道合之人,來一起發(fā)展,致力于空間大數(shù)據(jù)可視化產(chǎn)業(yè)。

好,進(jìn)入正題,說說我們的新工具,每當(dāng) lab升級版本的時候,一定預(yù)示著有大事發(fā)生。
不斷的延期 延期 延期,終于還是要發(fā)布一下的我們新的一個處理工具,海量模型處理工具。
這個工具你可以認(rèn)為是 場景處理工具(CesiumLab2.0里叫:人工模型切片)的升級版,也可以認(rèn)為他是一個完全的新的工具,下面我們做一個簡單的對比。

簡介

1,技術(shù)對比

工具對比

2, 故宮場景的切片對比:

場景處理工具--非嚴(yán)格的八叉樹切片
海量模型工具--嚴(yán)格的八叉樹切片

3,更多對比:

受限很多模型都是有版權(quán)的,我們不能發(fā)出來,我們會自己造一些測試數(shù)據(jù),都會放在EarthUI的在線模型切片下。目前有一個小工廠的示例,大家可以先對比下。


EarthUI在線服務(wù)

3,設(shè)計目標(biāo)

構(gòu)建完整層級的LOD金字塔,達(dá)到在Cesium上流暢載入城市級建筑外殼模型的目的。
你會發(fā)現(xiàn)和我們原版的場景處理工具的差異:1)它會類似傾斜軟件一樣構(gòu)建完整層級的金字塔。2)他目標(biāo)針對的是城市級人工建模的建筑外殼模型,這種模型的特點是都是外殼,沒有內(nèi)部,紋理個數(shù)多,而且復(fù)用率底。

4,開發(fā)過程:

8月初發(fā)布CesiumLab2和EarthSDK之后,才真正騰出手來著手這件事情。
8月~9月,整整1個月的框架設(shè)計,各種關(guān)鍵算法的搜集,穿插著把catia導(dǎo)出clm的插件也做了。
9月~10月,最核心的模型精簡算法以及紋理重投影算法的實現(xiàn),我得承認(rèn)這里面很多算法都是開源的,但是沒關(guān)系,能把這些算法給組織起來,真的不是一件容易的事情,各種坑,無數(shù)次差點要放棄。
10月~11月,數(shù)據(jù)分塊算法,以及整體處理流程的實現(xiàn)。這部分看似簡單,但是其中的分塊閾值,各種算法參數(shù)調(diào)節(jié)才是最麻煩的。實現(xiàn)第一遍,發(fā)現(xiàn)處理bug太多,邏輯復(fù)雜,刪掉重寫。實現(xiàn)第二遍,分塊太多,處理速度太慢,刪掉重寫。現(xiàn)在也算第三個版本,效果效率尚可,就先放出來。

先預(yù)估下可能被吐槽的地方:

1,處理速度太慢了

同一個場景原來2分鐘,現(xiàn)在1小時。這個由于內(nèi)部算法復(fù)雜, 幾乎每個塊都要重投影紋理,所以“慢”是必然的,目前來說還得大家忍受,看我們以后能否優(yōu)化算法和處理流程加速這個過程。

2,偶然還有破面現(xiàn)象

現(xiàn)在的三角網(wǎng)精簡算法已經(jīng)不同于第一版采用的經(jīng)典邊塌陷等常規(guī)三角網(wǎng)精簡算法,而是一種整體精簡的算法,類似simplygon。這個算法本身的一些限制性,特殊情況下(尤其是建筑表面不是光滑,有很多棱角,立柱的時候)精簡不理想,再加上我們的嚴(yán)格分塊也會導(dǎo)致切割線位置可能存在一些異常。但是整體大面還是可以的,拉近就不會有破面現(xiàn)象。

3,局部區(qū)域無法到建模的貼圖精度

這個也是受限內(nèi)部處理流程,對于一些幾何體非常簡單,但是又包含了多個高分辨率的貼圖的區(qū)塊來說只能降低下分辨率了。如果希望強行達(dá)到貼圖精度,那很可能帶來一些處理上的災(zāi)難,塊個數(shù)爆炸增長(嚴(yán)格八叉樹,每塊會有8個子塊,這個很恐怖的)。

4,不支持建筑屬性的附加

因為現(xiàn)在整個幾何體我們重建了,會丟失他們原來的結(jié)構(gòu)信息,所以屬性如何附加成了一個麻煩的事情,這塊當(dāng)然可以暫時按照傾斜單體化的方式去做屬性疊加,未來我們會尋求更高效的方式去附加屬性。

5,可能無法在服務(wù)器或者遠(yuǎn)程機器上使用

因為目前的算法內(nèi)部用到了opengl設(shè)備環(huán)境,但是遠(yuǎn)程桌面無法創(chuàng)建這個環(huán)境,所以見諒。不過算法都是我們實現(xiàn)的,遲早會改成無需opengl環(huán)境的方法。

這一切的可吐槽的地方,都無法掩蓋它的優(yōu)勢,處理完成之后,可能能跑起整個城市的模型。耶,一白遮百丑。

再預(yù)估下可能的問題:

1, 這個工具如何付費?

因為和原來的場景處理工具(人工模型切片工具)需求目標(biāo)幾乎一致,我們也曾經(jīng)承諾過已經(jīng)免費的不會收費,所以和它保持同樣的付費模式,如果空間參考設(shè)置的EPSG地理投影方式,那么需要離線授權(quán),ENU局部坐標(biāo)系不需要離線授權(quán)。

2,能否處理其他類型(不是格式)的模型?

a,人工建模的建筑外殼模型
這種是設(shè)計目標(biāo)考慮的,非常合適,尤其是原來的紋理個數(shù)太多,導(dǎo)致無法卡頓的問題,現(xiàn)在徹底解決,而且還可以保證很遠(yuǎn)距離就能觀察到建筑,避免建筑一個個蹦出來。

b,道路交通模型
可能適用, 這種模型一般是bim工具類似revit做出來的, 因為材質(zhì)較少,實際我們肯定也能處理,而且得到一個流暢的結(jié)果,但是數(shù)據(jù)相對我們原來的bim工具可能量更大,需要再測試。

c,含內(nèi)部的建筑模型
不一定適用,這種模型包含內(nèi)部,一般是幾何體較為復(fù)雜,貼圖個數(shù)又少,所以能處理,但是結(jié)果不一定好。

d,傾斜生成的模型
可能適用,傾斜模型紋理幾乎沒有復(fù)用,理論上可以把傾斜模型的最高精度拿出來我們處理下,但是我們重建的金字塔還是沒有cc等輸出的好,如果迫不得已可以嘗試。

順道說下我們計劃,下階段我們會重寫B(tài)IM數(shù)據(jù)處理工具,會新增 管線處理工具,來滿足不同類型的模型生成處理需求,敬請期待。

4,為什么只支持fbx?

cesiumlab做了兩年多,對于格式的支持我是深刻體會到,絕壁不是支持越多越好,畢竟我們的時間精力有限,寧愿節(jié)省點時間在核心算法上,而不愿花時間在兼容各種格式上。

怎么不用obj?
就是因為它太簡單了,導(dǎo)致誰都能輸出,也導(dǎo)致大家規(guī)范不一致,比如他的坐標(biāo)單位,比如他的up軸,以及中文編碼,obj文件本身都沒有這些信息,我們就很難做到完全兼容。

為什么不用dae?
雖說它是開放交換格式,甚至是標(biāo)準(zhǔn)。但是缺陷是建模工具,尤其max對他支持太有限了,模型稍大,幾乎不能正常導(dǎo)出。opencollada的插件又丟失了很多東西,再加上它令人頭痛的xml解析,還是算了吧。

為什么用fbx ?
因為fbx 是 Autodesk 家產(chǎn)品的交換格式,自然對它的導(dǎo)出支持是最好的,而且最關(guān)鍵,fbx有官方的解析sdk,再也不怕丟東西了。即便這樣,我們依然有一個fbx導(dǎo)出的推薦參數(shù),隨后請參考這個鏈接。http://www.itdecent.cn/p/d9e15f3033e5

下來就是大家的測試時間,請下載CesiumLab2.1.0 版本,測試它,并給我反饋。
希望以后能再寫一些定量分析的文章來對比兩版程序的差異。如果要吐槽歡迎入群

Cesium實驗室2群

最后還是重復(fù)我那句話:我沒辦法保證這個工具能解決所有人的所有模型加載問題,它能解決一部分問題就可以了。因此,在cesiumlab2上保留了新舊兩版(人工模型切片 和 海量模型切片)兩個工具,如果你數(shù)據(jù)量不大,又想急需看效果,還要綁定屬性,那就先用老的程序處理吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容