HoloLens 是以怎樣的順序對場景進行建模&渲染的?


關於它的『渲染順序』,核心思想是權衡或者折衷(tradeoff)

就像是個經濟學問題,CPU、GPU、HPU資源有限,你要用有限的資源去渲出更優化的 mesh 。(一直記得經濟學第一課老師一直叨著:『資源是有限的,要用最小的資源做最大的事=_=』)

一年前我參與了一個基於手機端的AR應用,當時會拿不同配置的手機制定緩存策略(caching strategy)

儲存、渲染、處理這些 Spatial Surfaces ,都會耗費大量的計算資源儲存資源。所以就需要用到『緩存』。

所以 Hololens 內容開發的產品經理就要思考:

  • 怎樣經濟地使用資源,而使結果最優?

  • 哪些 mesh 應該留著,哪些應該丟棄?

  • 哪些 mesh 應該提前載入?

  • 比如用戶走過一個空間的時候,你就要思考用戶是怎樣通過一塊空間的?

  • 用戶可能需要用到哪些物體的 surface ?

  • 在什麼時候,有哪些 surface 會被用戶看到?

  • ……

一般有兩種情況會耗費大量的渲染資源:一種是空間太大,比如你在你一個大盆地或者峽谷或者操場,場景太大,從而導致消耗大量渲染資源,而不得不把 surface 和 mesh變成低精度的;而在家裡或者室內的一些小型空間則因為量小,所以可以做到高精度的。

第二種就是圖層太多,所謂『圖層』,就是很多東西,一層一層有層次地排列在那裡,不管這些物體是真實的還是虛擬的……但是圖層之間因為距離用戶(或者說hololens上的深度攝像頭)的遠近不同,近處遮擋遠處的。一旦物體被完全遮擋以後,那一塊 surface 就暫時不需要渲染。但是如果擋住以後又馬上需要渲它,那還不如留著。

不過當用戶走開以後,spatial surface 可以暫時隱藏起來。

—————————————————————————————————————

你剛打開 Hololens 的時候是先載入離你最近的地方和你的視覺前方,而你在空間中走動時空間的 surface 更新,也是先載入那裡。

先 spatial mapping 腳下的部分,當然你自己也被 spatial mapping 成一個低精度的 了。

Surface 載入的時候是以用戶為中心向四周擴散並載入的(一般是以用戶為中心的2米內,而2米,剛好是HoloLens 所說的『舒適距離』。充分體現了『以用戶為中心的設計理念』,嘿嘿嘿~)

從中心向四周載入,而這個中心就叫 Surface Observer

surface ,一種是『載入』,是從無到有的過程,一種是『更新』,是你走過了這片已經 mapping 了的空間,或者你對現實的物理空間進行了改動。所以『載入』的優先順序高於『更新』。

(注意mesh的邊緣,經常是多個surface observer同時向四周擴展的時候需要縫合或者重疊。)

然後再渲視覺中心!

重點 mapping 的區域叫做 當前顯示區域(current display frustum)。

(而 frustum 這個詞翻譯過來叫『椎體』,讓我想到了人眼的椎體細胞,錐體細胞所在的區域,正是視覺中心!!

而你看不到的地方一般低精度地一筆帶過或者乾脆不渲了~

然後就節省了一部分CPU、GPU、HPU資源……

最後隱藏起來(透明度降為0)。

另外補充一個 hololens 的『預渲染』。

就是 hololens會根據你當前的運動(包括身體的移動和頭部的轉動)來判定你接下來的運動,從而提前選擇載入那一部分的 mesh。

就像打乒乓球時,你和對手相互抽球,這是你根本看不到球更反應不過來,那怎麼還可以藉助呢?正是藉助了強大的人腦輔以強大的視覺功能從而從對方的揮手中推算出乒乓球要衝過來的位置。

還有就是當tracking的數據丟失的時候,就需要從緩存的數據中推算一部分。

—————————————————————————————————————

《Trimble》中的渲染順序

—————————————————————————————————————

某AR遊戲的渲染順序

第一次掃描(橙色)

第二次掃描(淡紫色)

第三次掃描(深青色)

開始『吞噬』周圍的物體

從另一個角度錄的

它對現實世界的物體做pattern matching

—————————————————————————————————————

X-ray的渲染順序——以視覺中心為中心開始渲

因為不同的房間有不同的大小形狀,它用攝像頭感知你所在的空間,哪裡是房間、地板、天花板?

三層mesh,一層接一層,像水面上的波紋和漣漪一樣。

看一次正面的:

—————————————————————————————————————

以用戶視覺前方的地面為中心向四周擴散。


推薦閱讀:

設計HoloLens應用該怎樣設定用戶模型?
如何評價Magic Leap被曝光的原型產品?

TAG:增強現實AR | 計算機視覺 | 虛擬現實VR | 計算機圖形學 | HoloLens |