談談VR遊戲的效能優化

2021-07-10 15:10:42 字數 1065 閱讀 5581

vr遊戲相對傳統遊戲,個人認為主要有三個方面的不同:玩法設計,輸入方式,效能壓力。今天就來談一下vr遊戲中的效能優化。

為什麼vr遊戲的效能壓力很大?

高解析度:dk2為1920 * 1080,最新的cv1為2160 * 1200;htc vive為2160 * 1200;ps4 vr為1920 * 1080

即使以dk2的資料:1920 * 1080 @75hz來說,每秒的畫素處理量為283 millions, 這個資料4倍於一般的主機遊戲!更別忘了,最新硬體的這個資料提公升至457 millions

畫兩遍

關於畫素處理部分

關於畫兩遍

批次翻倍加上面數翻倍因此vr遊戲中優化批次和面數較傳統遊戲的意義更大。

面數:對ue4而言,其消耗體現在生成gbuffer的base pass階段,要善用統計工具去定時定性得分析遊戲場景;

另外關於面數除了美術提供的靜態場景和角色之外一定要關注下自動生成的東西,如tessellation;工具可能也會統計不到。

其他

當然,前面講的都是針對vr遊戲的特點來重點強調的,其他的優化方法同樣使用,根據之前的經驗做下總結,包括但不限於:

其他方案

除了這些,業界還有些全新的優化方案,這裡也做下介紹。

stencilmesh的思想,同樣是culling,不過在另外的層面上。ue4中的實現叫做hmd distortion mask,實際也是節省掉周圍四角區域的畫素計算。

補充和總結

其實真正做優化之前,有兩點怎麼強調都不為過:

(遊戲執行效能)優化

當基本遊戲功能到位時,就要確保遊戲執行表現能夠達標。我們衡量遊戲執行表現的乙個基本工具是unity內建分析器以及xcode分析工具。使用unity分析器來分析裝置上的執行 真是一項寶貴的功能。我們總結了這種為將目標裝置的幀率控制在60fps而進行衡量 調整 再衡量過程的中相關經驗。一 遇到麻煩時要呼...

Flex遊戲程式設計效能優化

1.首先,元件的座標必須是整數 x 整數 y 整數 2.對於按鈕元件啟用cache as bitmap,會生成四個位圖 對不需要使用disable屬性的按鈕,盡量使用 button,因為4.避免for var i int 0 i arr.length i 的寫法,先用var i int arr.le...

遊戲效能優化(基礎)

資源在遊戲中會大量頻繁地使用,而在記憶體中是按照2的冪次方來載入的,例如一張大小是2020畫素的,在程式執行中是按照3232來處理的,而且從磁碟上載入每一張都屬於io操作,非常耗費cpu時間,尤其是在android的低端裝置上。所以通過打包工具 例如texturepacker 把多張小合併到一張大圖...