開發者分享優化技巧,將PC VR內容移植到Quest
對於將PC內容移植到Oculus Quest,Oculus曾表示這更多是格式化美術asset而非優化程式碼。第三方Quest內容開發商Immerse曾在五週時間內實現了美術asset的再格式化技巧,並將最初為PC開發的企業培訓應用程式帶到這款VR一體機。現在,他們介紹了關於這一過程的技巧經驗。
Immerse產品負責人Justin Parry解釋說,他們自2019年年初就一直在搗鼓Quest開發套件,而公司安排他們將為繫留VR開發的DHL培訓應用帶到無線VR頭顯Quest。Parry說道:“由於客戶業務的性質,培訓設定在一個巨大光亮的倉庫環境中。我們的任務十分簡單:令它支援Quest,同時儘可能維持PC版體驗的質感。”
儘管Quest的房間規模(和倉庫規模)內向外追蹤非常適合這種應用程式,但缺乏高階PC的效能是一個問題。你可以通過標準的Unity設定瞬間實現一定asset的再格式化,但需要付出保真度方面的代價。所以,Parry認為重寫Unity的設定,並採用其他多項技巧非常有必要。
例如,Unity的標準著色器質量設定預設為“低”,所以他們的法線貼圖無法使用。Parry建議應該從“中”或“高”開始,這樣你就可以預覽所有內容,然後開始優化asset。Immerse同時注意到,簡單的紋理格式改動會令清晰的Rift紋理在Quest中顯得模糊,但採用GPU原生格式(如RGBA 32位)通常可以解決問題,而針對單個紋理的額外調整則能夠提供更多的幫助。
團隊不是簡單地減少多邊形數量以降低Quest asset的複雜性,Parry表示越少的物件對這款頭顯越好。換句話說,只需將一隻箱子、一個桶子、一塊地板、以及一張桌子放到一個看起來相同的物件中,同時不需要載入四個物件以獲取所有資料,你就可以提高效能。儘管開發者不能只將場景中的每個物品轉換為單個物件,因為這會阻止Quest剔除當前未被檢視的物件,但建立相關物品的叢集可以使情況大為改觀。
Immerse同時通過Texture Atlas和UI Sprite Atlas來減少載入時間和繪製呼叫,他們將Sprite紋理大小設定成512畫素或更低,並儘可能重用紋理以節省記憶體。為了最大化近距離的Sprite視覺質量,Parry建議禁用近距Sprite的Mip對映,但強烈建議為所有其他紋理啟用這一點,因為它非常接近於抗鋸齒功能。近距離和遠距離的紋理可能需要單獨優化,但最終視覺效果會更好。
上圖:即便為場景預先烘培照明,偽影都會保留在自動更新的紋理中,所以你可以使用Photoshop將其清理。
也許最大的變化在於照明。Immerse指出,除了“絕對必要”的情況之外,丟棄實時照明至關重要。開發者應該轉而依靠預烘培照明,而這是Unity可以處理的過程。微調解析度,填充,照明貼圖的大小,以及調整每個物件在照明貼圖中的比例,為高度可見物品設定更高優先順序,在一般物品設定更低的優先順序,這一切將會帶來最佳的結果。然後你可以通過Photoshop處理紋理,並使它們到達你的設想效果。
從Immerse的經驗中可以看出,Quest能夠在不浪費有限計算資源和記憶體asset的情況下提供引人入勝的VR體驗,而且與拋棄大型物件或縮減逼真物件的傳統方法而言,對物體,紋理,Sprite和照明進行調整的效果相差不大。
來源:映維網
原地址:https://yivian.com/news/62626.html
相關文章
- web 頁面內容優化管理與效能技巧Web優化
- JavaScript 效能優化技巧分享JavaScript優化
- 獨立開發者如何開發出熱門好評Quest VR遊戲VR遊戲
- 本塔科技借力VR Engine,提供更優質的3D VR內容VR3D
- Ray Wenderlich:分享iPhone開發者需掌握的音訊內容iPhone音訊
- 效能優化的主要內容列表優化
- 迷你PC玩VR?索泰將釋出EN980迷你PCVR
- 《不可思議之夢蝶》專案從PC版移植到Nintendo Switch經驗分享
- Unity下個月將推出開源VR編輯器,讓VR內容開發soeasyUnityVR
- PHP程式碼優化的小技巧分享PHP優化
- ShareThis:哪些內容被分享到社交網路?
- 搜尋引擎優化內容及方法優化
- 開發者每日精選內容
- 從VR遊戲開發到綜合遊戲研發商,「Ifgames」將持續擴充內容產品線VR遊戲開發GAM
- VR消防安全應用方案,VR消防內容軟體VR
- git將工作區內容加入到暫存區Git
- Charilaos Kalogirou:分享將iOS遊戲移植到Android平臺的注意要點iOS遊戲Android
- Web開發者必知的25個Apache效能優化技巧WebApache優化
- 【乾貨分享】20條PHP程式碼優化技巧PHP優化
- 《西部世界:覺醒》開發商分享VR技巧VR
- 將 Win32 程式移植到 LinuxWin32Linux
- Steve Yegge 將 Rails 移植到 Javascript/RhinoAIJavaScript
- Parquet.Net: 將 Apache Parquet 移植到 .NETApache
- TapTap釋出開發者服務:降低開發者研運成本 聚焦創作優質內容APT
- 美國視訊網站Hulu將開發VR喜劇和新聞內容網站VR
- 在不同的資料庫內移植SQL PROFILE優化的SQL資訊資料庫SQL優化
- 如何優雅的移植JavaScript元件到BlazorJavaScript元件Blazor
- 淘寶內部分享:MySQL & MariaDB效能優化MySql優化
- js效能優化相關內容筆記整理JS優化筆記
- 如何找到適合網站優化的內容?網站優化
- 內容優化策略七步曲–資訊圖優化
- php文章內容替換為內鏈,有助於SEO優化PHP優化
- 遊戲混合變現案例分享和變現優化技巧遊戲優化
- 如何將 Google Auto Draw 移植到小程式上Go
- 探索將scratch3移植到樹莓派樹莓派
- Cornfox & Bros.如何將手遊移植到SwitchROS
- eMarketer: 廣告主在部署和優化視訊內容優化
- oracle優化技巧Oracle優化