無論是虛擬現實還是混合現實,要為任何一個“現實”開發內容,你需要的不僅僅只是一個優秀的開發平臺。對于熟悉開發傳統屏幕3D環境的開發者而言,VR和MR在性能,用戶體驗,熱量和續航管理,以及調試方面提出了獨特的挑戰。在今天這篇博文中,我們將探討這一系列的挑戰,從而幫助你步入沉浸式虛擬現實的開發世界。以下是具體整理:
1. 渲染與性能
如果在VR設備上渲染虛擬世界聽起來令人生畏,你可以放心,因為你可以充分利用現有的大部分3D渲染知識。幾何圖像和對象剔除,網格簡化,以及通過深度緩沖和模板緩沖等機制避免過度繪制,這只是可以應用于VR的部分基本3D渲染技術而已。
VR和3D渲染的主要區別在于設備本身。例如,VR頭顯需要承擔比傳統平面屏幕更多的責任。它需要檢測用戶的運動(以及實現眼動追蹤),執行渲染,并且協調兩者以提供逼真的虛擬視圖,同時反映出如同真實世界般的細節與響應水平。
VR設備基本上是圍繞用戶眼睛創建一個視口,其視圖相對較小,在正確的位置能提供合適的細節級別。
這最好是通過為眼睛的不同部分渲染不同級別的細節來實現,這一過程稱為“注視點渲染”。注視點渲染可以是靜態,其中注視點每個區域的細節水平保持固定;注視點渲染同樣可以是動態,其中細節水平會出現變化。
在某些系統上,這種優化可以令渲染性能提高20%,而對于某些API,這一切只需對幾行代碼進行調整。
2. UX設計
高質量的沉浸式VR對用戶和系統都可以是十分“高強度”。一般而言,你應該瞄準“一口大小”的簡短體驗,有部分開發者就認為5分鐘是理想的時間長度。對性能要求苛刻的情景通常需要你高負荷運行,而要求較低的場景則允許設備和用戶稍稍放松。為了適應這種情況,游戲/應用設計師應該圍繞較小持續時間的體驗來規劃內容,故事情節和虛擬環境。
另一個主要考量因素是將大型虛擬空間映射至可用的物理空間。當前的VR要求用戶在可能小于虛擬空間的物理空間內移動,而系統主要是通過各種運動傳感器和動捕裝置捕捉用戶運動。對于涵蓋旋轉和平移的六自由度運動,建議你首先在游戲或應用程序中預先警告用戶有關這類物理空間限制的信息。
處理映射還有很多選項,但一種簡單的方法是計算可用的物理空間,然后在用戶在導航期間接近邊界時淡入黑色。你同時可以顯示說明用戶已到達邊界的屏幕元素(如消息)。
最后的考慮涉及暈動癥,當渲染視圖與用戶動作不同步時,用戶可能會遭遇暈動癥的影響。所以為了確保用戶的舒適度,渲染性能在VR開發中必不可少,同時建議你將渲染性能提升至90FPS或以上。圍繞上面提到的“一口大小”體驗進行開發也會有所幫助。
3. 設備發熱與電量管理
電量消耗,以及因渲染和計算操作產生的熱量是所有移動和可穿戴設備都需要面對的問題,特別是對于佩戴在用戶面部的VR頭顯。因此,在游戲/應用程序的整個開發周期中監控這一方面至關重要。你可以使用各種工具來分析熱數據和其他資源,如GPU和CPU功率頻率。
4. 調試
在VR頭顯等設備上調試游戲/應用程序可能會影響你查看PC屏幕,以及通過鍵盤調用調試命令。要克服問題,你需要在項目的早期進行一定的創意規劃,下面的想法或許能給你提供一定的靈感:
(1)將調試信息添加到視口中。但請注意,VR頭顯的“屏幕空間”很少,因此疊加層難以閱讀。但是,像FPS計數器和溫度這樣的簡單指標應該沒有什么問題。
(2)使用Snapdragon Profiler的實時捕捉功能可支持你在游戲/應用程序中記錄指標。
(3)請咨詢設備的第三方/OEM廠商,了解他們為調試提供的工具。
(4)建立替代的移動機制,例如在開發過程中使用游戲手柄。
(5)構建可在PC上查看的游戲/應用附加視口(近似于頭顯視圖)。然后,你可以使用替代游戲機制,又或者是請求其他開發者使用頭顯,而你則專注于調試。
(6)將遠程傳送等“作弊方法”添加到另一個虛擬空間,這樣你在開發過程中就能快速導航至環境的不同部分。
評論
查看更多