這篇文章早該發(fā)布了,可惜bug不斷萌抵,一拖再拖找御,經(jīng)過這兩天的測試,終于穩(wěn)定了一些绍填,打算今天放出來找罵霎桅。
先扯點其他的,關(guān)于團(tuán)隊讨永,剛內(nèi)部群里滔驶,發(fā)了條信息
的確是該慶賀下,最近太辛苦卿闹,幾乎除了在家睡覺的8小時揭糕,其他16個小時都在公司干活萝快,新的辦公地是一個Loft的辦公室,上下兩層著角,下層辦公杠巡,上層會議室。地方寬敞雇寇,早上有陽光氢拥,舒服,秀一張圖:
也順便打個廣告锨侯,誠招天下志同道合之人嫩海,來一起發(fā)展,致力于空間大數(shù)據(jù)可視化產(chǎn)業(yè)囚痴。
好叁怪,進(jìn)入正題,說說我們的新工具深滚,每當(dāng) lab升級版本的時候奕谭,一定預(yù)示著有大事發(fā)生。
不斷的延期 延期 延期痴荐,終于還是要發(fā)布一下的我們新的一個處理工具血柳,海量模型處理工具。
這個工具你可以認(rèn)為是 場景處理工具(CesiumLab2.0里叫:人工模型切片)的升級版生兆,也可以認(rèn)為他是一個完全的新的工具难捌,下面我們做一個簡單的對比。
簡介
1鸦难,技術(shù)對比
2根吁, 故宮場景的切片對比:
3,更多對比:
受限很多模型都是有版權(quán)的合蔽,我們不能發(fā)出來击敌,我們會自己造一些測試數(shù)據(jù),都會放在EarthUI的在線模型切片下拴事。目前有一個小工廠的示例沃斤,大家可以先對比下。
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.reibang.com/p/d9e15f3033e5
下來就是大家的測試時間裸燎,請下載CesiumLab2.1.0 版本,測試它泼疑,并給我反饋德绿。
希望以后能再寫一些定量分析的文章來對比兩版程序的差異。如果要吐槽歡迎入群
最后還是重復(fù)我那句話:我沒辦法保證這個工具能解決所有人的所有模型加載問題王浴,它能解決一部分問題就可以了脆炎。因此梅猿,在cesiumlab2上保留了新舊兩版(人工模型切片 和 海量模型切片)兩個工具氓辣,如果你數(shù)據(jù)量不大,又想急需看效果袱蚓,還要綁定屬性钞啸,那就先用老的程序處理吧。