開發者分享優化技巧,將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
相關文章
- 獨立開發者如何開發出熱門好評Quest VR遊戲VR遊戲
- 《西部世界:覺醒》開發商分享VR技巧VR
- 從VR遊戲開發到綜合遊戲研發商,「Ifgames」將持續擴充內容產品線VR遊戲開發GAM
- 開發者每日精選內容
- TapTap釋出開發者服務:降低開發者研運成本 聚焦創作優質內容APT
- 本塔科技借力VR Engine,提供更優質的3D VR內容VR3D
- 微信小遊戲開發技巧(大會演講內容整理)丨掘金開發者大會遊戲開發
- 效能優化的主要內容列表優化
- Linux開發技巧分享Linux
- 《不可思議之夢蝶》專案從PC版移植到Nintendo Switch經驗分享
- Android開發者峰會:Android應用效能優化經驗分享Android優化
- js開發實戰優化小技巧001JS優化
- Oculus Quest遊戲開發者需在開發程式前提交概念檔案遊戲開發
- 搜尋引擎優化內容及方法優化
- VR消防安全應用方案,VR消防內容軟體VR
- 使用小程式做互動的技巧(演講內容實錄)丨掘金開發者大會
- 抖音內容分發工具,一鍵分發內容到全平臺
- UWA助力小米VR打造內容生態VR
- 移動 VR 開發時要避免的 PC 渲染技術VR
- SHAREit(國內茄子快傳):讓使用者能夠發掘有價值的優質本地化內容
- Parquet.Net: 將 Apache Parquet 移植到 .NETApache
- 將 C++程式移植到 Android 平臺C++Android
- 提高Web前端開發技能的優化技巧總結!Web前端優化
- git將工作區內容加入到暫存區Git
- 如何優雅的移植JavaScript元件到BlazorJavaScript元件Blazor
- 索泰將發第二代VR GO PC揹包:更小更輕VRGo
- 遊戲移植Switch平臺要注意什麼?《DARQ》開發者分享實戰經歷遊戲
- VR內容市場:推動元宇宙發展的消費引擎VR元宇宙
- 初次端內開發及node壓測優化優化
- js效能優化相關內容筆記整理JS優化筆記
- 如何找到適合網站優化的內容?網站優化
- php文章內容替換為內鏈,有助於SEO優化PHP優化
- 探索將scratch3移植到樹莓派樹莓派
- Cornfox & Bros.如何將手遊移植到SwitchROS
- 如何將 Google Auto Draw 移植到小程式上Go
- RSS 解析:全球內容分發的利器及使用技巧
- 活下來的 VR 遊戲開發者VR遊戲開發
- APP一鍵從iPad移植到Mac?蘋果新服務遭開發者吐槽APPiPadMac蘋果