高斯濺射 vs 網格 vs 全景:室內漫遊應該揀邊種

同一個用途——畀人睇一個 3D 室內空間——卻俾人攞嚟比較三種格式, 而佢哋其實並唔係喺同一個維度上競爭。揀錯格式唔只係畫質上嘅取捨問題; 佢可能意味住揀咗一種喺結構上就做唔到你之後需要嘅事嘅格式。
呢三種格式各自究竟係咩
高斯濺射由一組相片入面重建一個真實場景,將佢表示做 3D 空間入面
數百萬個有顏色、邊緣柔和嘅小點。用夠多互相重疊嘅房間相片嚟訓練佢,
就可以渲染出原始相片集裡面冇嘅新視角,由任何鄰近角度睇都做到像真。
常見嘅格式係 .ply 同 .splat,而 SuperSplat
係查看、裁剪同清理訓練完成後嘅濺射檔案嘅標準開源工具。
網格係傳統嘅 3D 幾何結構——頂點、面片、物料,全部作為獨立對象可定址。 佢係俾人搭建出嚟嘅,而唔係俾人捕捉出嚟嘅:可以係人手建模, 亦可以係程序化生成,或者由一套流程由平面圖推斷幾何結構, 再用目錄家具填充落去。
全景係對一個已完成場景、由固定取景點拍攝或渲染出嘅等距柱狀圖像, 經球面檢視器交付,提供可漫遊、可環視嘅體驗——但佢係場景嘅一個視圖, 而唔係場景本身。
擷取成本
濺射需要對一個真實存在嘅空間進行實地拍攝——數十到數百張互相重疊嘅相片, 再經一次訓練嚟重建濺射場。佢要求房間喺物理上真實存在。如果網格係由 平面圖搭建出嚟嘅,就完全唔需要實地拍攝,但依然需要幾何結構被建模 或者被推斷出嚟。全景嘅擷取成本完全取決於佢渲染或拍攝緊嘅係咩—— 如果係對一個已搭建網格場景嘅渲染,成本好低;如果係真實相機拍攝, 成本同濺射嘅實地拍攝相若。
檔案大小同裝置支援
一個單一房間訓練出嚟嘅濺射場,常見大小由幾十到幾百兆位元組不等—— 數百萬個點加埋體積唔細——要順暢渲染佢,要靠真實嘅 GPU 算力; 喺效能受限嘅裝置上播放會頂唔順。網格場景嘅大小完全取決於佢嘅幾何結構 同貼圖預算,而現代實時引擎可以喺更廣泛嘅裝置範圍內高效渲染佢。 一張等距柱狀全景圖就只係一個圖片檔案——最多幾兆位元組——可以喺任何 可以顯示 JPEG 嘅球面檢視器入面運行,幾乎冇任何裝置門檻。
可編輯性問題——而且差距唔細
呢度正正就係對比唔再只係取捨、而變成結構性差異嘅地方。一個濺射場係一種 被捕捉落嚟嘅外觀:冇網格可以揀選,冇物料可以替換,冇獨立嘅 「梳化」物體可以移動,因為呢種格式由一開始就冇將場景表示做獨立對象—— 佢表示嘅係由多個拍攝位置睇到嘅光線樣。要求編輯一個濺射場景, 問嘅其實係另一種性質嘅問題,同要求編輯一個網格完全唔同; 網格由構建之初就保留嘅資訊,喺濺射入面從來就未曾存在過。

網格場景係可以直接編輯嘅——移動一幅牆、替換一種物料、重新擺放家具—— 因為佢保留咗濺射場按設計就會捨棄嘅嗰部分結構化資訊。全景渲染繼承咗 底層場景本身具備嘅可編輯性:如果佢係對一個可編輯網格嘅渲染視圖, 修改網格再重新渲染好直接;如果佢係一張拼接相片,就同濺射方案一樣固定。
點解一個可編輯幾何結構工具會揀全景,而唔係濺射
一個存在嘅目的就係要令人可以改動房間——移動家具、替換物料、 調整佈局——嘅設計工具,必須將房間表示做可編輯幾何結構,冇得商量。 呢個就排除咗將濺射作為主要格式嚟提供嘅可能性,無論佢畫面幾像真, 因為一個濺射場冇辦法成為你要編輯嘅嗰個對象。但佢依然可以喺交付環節 派上用場:一旦一個房間以網格形式搭建正確、優化好風格,將佢渲染成 等距柱狀全景圖,就可以提供一個像真、可漫遊嘅視圖,而唔需要觀者 擁有足以頂得順幾百兆位元組濺射場嘅 GPU 餘量,亦唔需要放棄編輯源場景 並重新渲染嘅能力。
呢個正正就係 Flur 流程嘅形狀:經「配置」同「3D 幾何」搭建可編輯網格 幾何結構,喺其之上進行一次真實感優化,再以已發佈嘅等距柱狀全景導覽 作為交付格式。Flur 唔會生成高斯濺射——呢度介紹呢種格式, 只係如實講明佢可以解決同解決唔到咩問題,而唔係話佢係產品嘅能力之一。
究竟應該用邊一種
要為一個已存在、已建成嘅真實空間提供像真瀏覽體驗:濺射係正確嘅工具, 冇其他方式可以做到。要搭建或改動一間必須保持可編輯嘅房間:網格, 毫無懸念。要將一間完工嘅房間交付成任何裝置上都可以行入去睇、 而唔需要對方下載一個龐大擷取檔案嘅嘢:全景。呢三者唔係同一條 質素階梯上嘅唔同級別——佢哋係對唔同問題俾出嘅唔同答案,而呢個領域入面 最常見嘅失誤,就係將「像真程度」當成唯一重要嘅維度, 喺一個實際需要底層可編輯幾何結構嘅場合揀咗濺射。
立即開始
想了解全景格式背後具體嘅投影數學同擷取機制,可以參考 等距柱狀全景擷取詳解。 想了解全景步驟喺一次完整房間搭建入面處於咩位置,可以參考 3D 模型搭建流程完整解析。