VR開發(fā)教程:Unity開發(fā)VR眼鏡中文入門教程七

優(yōu)化Unity中的VR

簡(jiǎn)介

為確保用戶有極棒,無惡心的虛擬現(xiàn)實(shí)體驗(yàn),而達(dá)到推薦幀率,優(yōu)化是很關(guān)鍵的一個(gè)部分.因?yàn)楝F(xiàn)在VR硬件剛剛起步,所以要盡可能多的在硬件設(shè)備上進(jìn)行測(cè)試.

VR相對(duì)于非VR項(xiàng)目的主要不同點(diǎn)就是它要為每只眼睛渲染一次圖像,當(dāng)你了解這一點(diǎn),創(chuàng)建項(xiàng)目時(shí)圍繞它進(jìn)行相關(guān)優(yōu)化將節(jié)省大量的開發(fā)時(shí)間.

手機(jī)上的配置遠(yuǎn)比不上桌面級(jí)電腦硬件,所以在移動(dòng)設(shè)備上的VR做優(yōu)化是至關(guān)重要的.

當(dāng)然不要忘記要盡可能的優(yōu)化程序代碼,查看有關(guān)代碼優(yōu)化更詳細(xì)的指導(dǎo):”docs.unity3d.com/Manual/MobileOptimizationPracticalScriptingOptimizations.html”.

OCULUS 資源

在Oculus網(wǎng)站上有大量的資源文檔,非常值得你去看:

https://developer.oculus.com/documentation/

http://static.oculus.com/sdk-downloads/documents/Oculus_Best_Practices_Guide.pdf

https://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game/

https://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game-continued/

UNITY 編輯器優(yōu)化工具

在Unity中有一些很有用的工具和技術(shù),有助于您優(yōu)化VR游戲內(nèi)容.

Profiler

Profiler可以幫你了解每一幀渲染的時(shí)間,并且將其拆分為CPU,渲染,內(nèi)存,音頻,物理和網(wǎng)格.通過使用Profiler檢查性能消耗從而針對(duì)性的優(yōu)化.更多關(guān)于Profiler的使用請(qǐng)參閱這些鏈接:

http://docs.unity3d.com/Manual/Profiler.html

https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/profiler-overview

https://unity3d.com/learn/tutorials/modules/intermediate/editor/intro-to-profiler

Frame 調(diào)試器

Frame調(diào)試器步進(jìn)式的查看每幀Draw Call,看每幀是如何構(gòu)造出眼前的場(chǎng)景的,確定哪些可以優(yōu)化,哪些是不需要的東西,這將大大有助于減少Draw Call.

更多Frame 調(diào)試器的信息請(qǐng)參閱下列鏈接:

http://docs.unity3d.com/Manual/FrameDebugger.html

https://unity3d.com/learn/tutorials/modules/intermediate/graphics/frame-debugger

VR優(yōu)化原理

雖然優(yōu)化是個(gè)巨大的門類,每個(gè)平臺(tái),每個(gè)需求都會(huì)有不同的優(yōu)化方法.

現(xiàn)有的優(yōu)化技術(shù)可以很好的用于VR項(xiàng)目開發(fā)優(yōu)化

Geometry

移除VR中任何看不到的三角形,比如如果用戶看不到后背,納悶我們完全可以把角色模型后背的三角面和貼圖刪除優(yōu)化掉.另外根據(jù)目標(biāo)平臺(tái),試著添加一些細(xì)節(jié)紋理,比如視差貼圖等,雖然這會(huì)影響到性能,但是也許它非常適合在特定的目標(biāo)平臺(tái).

Overdraw

Overdraw視圖讓你可以了解什么對(duì)象被繪制在了另一個(gè)對(duì)象上面,這種無謂的渲染會(huì)浪費(fèi)GPU渲染時(shí)間,通過場(chǎng)景視圖中(docs.unity3d.com/Manual/ViewModes.html)開啟Overdraw模式查看場(chǎng)景中的覆蓋情況.

普通視圖模式:

Overdraw 模式:

Level of Detail

Level Of Detail (LOD) 可以讓你根據(jù)模型物體與相機(jī)的距離動(dòng)態(tài)的切換物體三角形面數(shù),只要你的模型距離相機(jī)有一定距離,LOD會(huì)顯示一個(gè)低面數(shù)的模型來減少對(duì)硬件的負(fù)載,提升渲染性能.

用Simplygon(https://www.assetstore.unity3d.com/en/#!/content/10144) 插件可以自動(dòng)化處理模型的LOD.

Draw Call batching

盡可能的將Batch Draw Call,使用

Static Batching 和 Dynamic Batching會(huì)大大提高性能.詳見Unity手冊(cè)

Draw Call Batching(docs.unity3d.com/Manual/DrawCallBatching.html).

Lightmapping

減少動(dòng)態(tài)光照使用,增加烘焙照明,避免實(shí)時(shí)光影,詳見

avoid realtime shadows(https://twitter.com/ID_AA_Carmack/status/592385473894461441)和??Lighting and Rendering(unity3d.com/es/learn/tutorials/modules/beginner/graphics/lighting-and-rendering) .

Light Probes

Light probes (docs.unity3d.com/Manual/LightProbes.html) 可以讓烘焙光照的場(chǎng)景中動(dòng)態(tài)對(duì)象的動(dòng)態(tài)光照實(shí)現(xiàn)出來,這個(gè)運(yùn)算很快,但是經(jīng)常會(huì)有很大視覺效果提升.

Reflection Probes

Reflection probes (docs.unity3d.com/Manual/class-ReflectionProbe.html) 會(huì)根據(jù)場(chǎng)景位置將環(huán)境貼圖存儲(chǔ)于Cubemaps中,來增加環(huán)境反射貼圖的真實(shí)性,但是實(shí)時(shí)反射在VR中會(huì)很慢.

Occlusion Culling

Occlusion Culling (docs.unity3d.com/Manual/OcclusionCulling.html)能禁止對(duì)看不到的場(chǎng)景渲染,例如一扇門關(guān)閉時(shí),我們不想讓門那邊的另外房間渲染,就可以使用它.使用它可以顯著提升性能.

沒有進(jìn)行遮擋裁切的示例:

使用了遮擋裁切的示例:

Anti-Aliasing

Anti-Aliasing 抗鋸齒在VR中是很有用的,因?yàn)樗兄谄交瑘D像,減少鋸齒狀邊緣.如果你是用了 Forward Rendering, 你可以在畫質(zhì)設(shè)置中起啟用MSAA(docs.unity3d.com/Manual/class-QualitySettings.html),你也應(yīng)該在Gear VR中啟用它來提升效果.

在Deferred Rendering時(shí),你可以用圖像腳本(docs.unity3d.com/420/Documentation/Components/script-AntialiasingAsPostEffect.html)或看論壇上啟用SMAA的例子:”https://github.com/Chman/SMAA-Unity”.

Textures

一般情況下,可以用??Texture Atlasing (https://en.wikipedia.org/wiki/Texture_atlas)把場(chǎng)景中的貼圖整合起來以盡可能的減少材質(zhì)球數(shù)量.

我們也可以用MeshBaker (https://www.assetstore.unity3d.com/en/#!/content/5017)簡(jiǎn)化加快這一優(yōu)化過程.Meshbaker可以用來烘焙紋理,網(wǎng)格,材質(zhì)來優(yōu)化游戲性能.

詳見下面鏈接:

用MeshBaker的視頻教程(https://www.youtube.com/watch?v=9vZ8SfXOlpI)

Oculus渲染文檔

https://developer.oculus.com/doc ... s/bp_app_rendering/)

Shaders

盡量使用Basic著色器,在Gear VR中,推薦使用”Mobile > Unlit (Supports Lightmap) shader”.

Fullscreen Effects

Fullscreen effects(docs.unity3d.com/Manual/comp-ImageEffects.html)是非常消耗資源的,在GearVR上要盡可能避免使用.

Quality Settings

Quality Settings(docs.unity3d.com/Manual/class-QualitySettings.html)決定項(xiàng)目中畫質(zhì)的各個(gè)方面,改變這些屬性可以提高游戲性能,但是會(huì)犧牲視覺效果.

RenderScale

VRSettings.renderScale(docs.unity3d.com/ScriptReference/VR.VRSettings-renderScale.html)渲染比將改變圖像銳度,可以用來提高畫質(zhì)或者降低畫質(zhì)提升幀率.

Asynchronous Loading

如果把游戲拆分成若干個(gè)單獨(dú)的場(chǎng)景,在加載時(shí),為了避免畫面凍結(jié)導(dǎo)致惡心不適感,建議使用異步加載來載入下一個(gè)場(chǎng)景數(shù)據(jù):SceneManager.LoadSceneAsync(docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html)

轉(zhuǎn)載自http://blog.1vr.cn

聯(lián)系方式:0755-81699111

課程網(wǎng)址: http://www.vrkuo.com/course/vr.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蛇损,隨后出現(xiàn)的幾起案子沫屡,更是在濱河造成了極大的恐慌系瓢,老刑警劉巖裂逐,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異替劈,居然都是意外死亡赔硫,警方通過查閱死者的電腦和手機(jī)岩调,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門巷燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人号枕,你說我怎么就攤上這事缰揪。” “怎么了葱淳?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵钝腺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我赞厕,道長(zhǎng)拍屑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任坑傅,我火速辦了婚禮僵驰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唁毒。我一直安慰自己蒜茴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布浆西。 她就那樣靜靜地躺著粉私,像睡著了一般。 火紅的嫁衣襯著肌膚如雪近零。 梳的紋絲不亂的頭發(fā)上诺核,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音久信,去河邊找鬼窖杀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛裙士,可吹牛的內(nèi)容都是我干的入客。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼腿椎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼桌硫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起啃炸,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤铆隘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后南用,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膀钠,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掏湾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了托修。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恒界,死狀恐怖睦刃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情十酣,我是刑警寧澤涩拙,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站耸采,受9級(jí)特大地震影響兴泥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜虾宇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一搓彻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘱朽,春花似錦旭贬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岸军,卻和暖如春奋刽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艰赞。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工佣谐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人方妖。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓台谍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親吁断。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趁蕊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容