Unity5中的光照簡(jiǎn)介(上)

? ? ? Unity5中的光照可以用整本書(shū)來(lái)說(shuō)明,此文是過(guò)去幾個(gè)月使用Unity5的簡(jiǎn)單匯總。下面主要分6個(gè)部分來(lái)講解。

Forward(前向)與Deferred(延遲)渲染

Realtime(實(shí)時(shí))與Baked(烘焙)光照

引擎的光照工具

光照?qǐng)鼍?/p>

性能技巧

后期處理

上述的大部分對(duì)于Unity制作的內(nèi)容都是適用的,并不局限于虛擬現(xiàn)實(shí)應(yīng)用。這是非常高級(jí)的內(nèi)容介紹,需要讀者具備基礎(chǔ)的圖形和光照的概念。下面開(kāi)始吧!

前向與延遲渲染通道

如果心懷疑慮,請(qǐng)使用前向渲染通道。前向渲染通道對(duì)VR應(yīng)用來(lái)說(shuō)很理想,有以下幾點(diǎn)原因。前向渲染在前期的性能開(kāi)銷(xiāo)較低,DrawCall較少更宜在CPU運(yùn)行,在移動(dòng)VR設(shè)備上也同樣運(yùn)行的很好,它還支持抗鋸齒和半透明材質(zhì)。以下是能幫助你決定應(yīng)用適用渲染管線(xiàn)的簡(jiǎn)單指南。

延遲渲染

延遲渲染前期的性能開(kāi)銷(xiāo)很大,但它是一個(gè)固定的性能開(kāi)銷(xiāo),添加再多的幾何體和燈光也不會(huì)產(chǎn)生過(guò)多的額外開(kāi)銷(xiāo)。你有幾百個(gè)實(shí)時(shí)燈光?那就使用延遲光照吧。延遲光照的開(kāi)銷(xiāo)是與燈光照亮的像素?cái)?shù)量成正比的。場(chǎng)景復(fù)雜度(燈光照亮的物體數(shù)量)并不會(huì)影響性能。旁注:UE4 只有延遲渲染管線(xiàn),這就是UE4制作的Demo在較老的PC上運(yùn)行緩慢的一個(gè)原因。

優(yōu)點(diǎn)

延遲渲染最適用于包含大量小體積實(shí)時(shí)燈光的場(chǎng)景。

每個(gè)光照都可以當(dāng)作一個(gè)逐像素?zé)艄鈦?lái)渲染,以便在法線(xiàn)和深度貼圖中可以精確著色。

每個(gè)光照都有一個(gè)實(shí)時(shí)陰影。

權(quán)衡

延遲渲染器無(wú)法渲染半透明材質(zhì)。你需要為半透明材質(zhì)添加一個(gè)額外的前向通道。

平行光在延遲渲染器中開(kāi)銷(xiāo)很大。它們影響整個(gè)場(chǎng)景,且光照體積無(wú)限大。

產(chǎn)生大量Draw Call(場(chǎng)景中每個(gè)物體產(chǎn)生的兩個(gè)Draw Call乘以每個(gè)燈光產(chǎn)生的兩個(gè)Draw Call。)

不能抗鋸齒(這對(duì)于VR非常不利,因?yàn)閂R極度依賴(lài)MSAA來(lái)減少閃爍和忽隱忽現(xiàn)的線(xiàn))。

前向渲染

前向渲染的前期固定開(kāi)銷(xiāo)較小,因而最適合復(fù)雜度較低的場(chǎng)景,但其性能開(kāi)銷(xiāo)與場(chǎng)景復(fù)雜度成正比。如果你的場(chǎng)景中只有一對(duì)實(shí)時(shí)燈光,那就使用前向渲染吧。前向渲染器的成本與場(chǎng)景中燈光的數(shù)目成正比。像素?zé)粼缴賱t性能越高。

權(quán)衡

在每個(gè)渲染通道中,每個(gè)被像素?zé)艄庹盏降膶?duì)象都會(huì)被渲染。如果一個(gè)對(duì)象被10盞不同的燈光照亮,那它將被渲染十次(每個(gè)光照通道一次)。這就是前向渲染通道中被燈光照亮的物體越少越好的原因。

從設(shè)計(jì)上限制燈光數(shù)量。

基本通道用實(shí)時(shí)陰影渲染一個(gè)方向光,并用額外的通道來(lái)渲染其余的燈光。然而,這些額外的燈光不會(huì)有陰影。

像素光照數(shù)量有限,其余的都是頂點(diǎn)光照。和逐像素光照對(duì)象相比,頂點(diǎn)光照提供的效果較簡(jiǎn)單。

好處

Draw Call較少。每次像素光照射到物體,就會(huì)產(chǎn)生一次Draw Call。最壞的繪制調(diào)用計(jì)數(shù)情況是(場(chǎng)景中對(duì)象數(shù)量*照射到對(duì)象的像素光數(shù)量)。有很多降低Draw Call的方法(批處理等)

鋸齒(8XMSAA,非常適合VR)

支持半透明材質(zhì)

如果你的目標(biāo)平臺(tái)是移動(dòng)端(如GearVR),使用前向渲染通道,限制像素光數(shù)量為1~2個(gè)

當(dāng)在前向和延遲渲染間猶豫不決時(shí),別忘了我們這里只討論實(shí)時(shí)燈光。場(chǎng)景中有多少烘焙光照都是可以的。烘焙光照貼圖,并在運(yùn)行之前禁用它們。運(yùn)行時(shí)渲染器只會(huì)考慮場(chǎng)景中的實(shí)時(shí)燈光。

實(shí)時(shí)和烘焙光照

如果你在乎陰影的真實(shí),那就烘焙燈光。硬陰影或者軟陰影在一些情況下已足夠,但在很多情況下仍不能接受。(比如桌子上的點(diǎn)光源)。在實(shí)時(shí)光照下,你可以在地面上看到塊狀陰影。在烘焙光照下,你看見(jiàn)的是一個(gè)柔和的,散布在桌下的陰影。實(shí)時(shí)燈光只在光照有變化(顏色,位置等等)的情況下是必要的。烘焙光照和陰影不會(huì)隨著實(shí)時(shí)移動(dòng)的對(duì)象而改變,但可以用小技巧來(lái)彌補(bǔ)。(見(jiàn)下面的“光照探針”)。

提高烘焙光照貼圖質(zhì)量

在烘焙時(shí),你可以通過(guò)增大烘焙分辨率滑動(dòng)條(合理的紋理像素分辨率是40~100)來(lái)提高光照貼圖質(zhì)量。啟用環(huán)境光遮蔽(Ambient Occlusion)和最終聚集(Final Gather)。在烘焙之前,檢查工程的Quality 和Player 設(shè)置。在Quality選項(xiàng)卡中,使用高分辨率的硬陰影和軟陰影。在Player選項(xiàng)卡中,選擇延遲渲染器。在烘焙前禁用GI預(yù)計(jì)算。即使使用質(zhì)量較低的陰影,在運(yùn)行時(shí)采用前向渲染,采用這些設(shè)置會(huì)使烘焙期間效果達(dá)到最好。你可以在烘焙完成后切回前向渲染或低圖形質(zhì)量。

引擎燈光工具

區(qū)域光源

可以改變位置和旋轉(zhuǎn)。必須烘焙。

注意:鏡面反射顯示在表面的單一區(qū)域,與該區(qū)域光的大小和形狀無(wú)關(guān)。

用于窗口和盒狀的燈光(壁頂燈或燈管)。

點(diǎn)光源

可以調(diào)整位置,但旋轉(zhuǎn)無(wú)效。

一個(gè)光禿禿的燈泡,會(huì)向各個(gè)方向散射光線(xiàn)。用于普通的燈泡環(huán)境。

聚光燈

·可以設(shè)置位置和旋轉(zhuǎn)。

·用于手電筒,泛光燈,和天花板燈等。

方向光

位置無(wú)關(guān)緊要,但可以旋轉(zhuǎn)。

燈光影響整個(gè)場(chǎng)景(但可以被屋頂遮擋,這與環(huán)境光不同)

使用方向光模擬戶(hù)外太陽(yáng)或者月亮光,或者創(chuàng)建一個(gè)室外燈光通過(guò)天窗來(lái)照亮室內(nèi)場(chǎng)景。

方向光非常粗糙,產(chǎn)生的陰影也是生硬的。

環(huán)境光

會(huì)微微照亮整個(gè)場(chǎng)景(顏色可選)

這意味著即使未被照亮的區(qū)域也會(huì)有一絲光線(xiàn)

如果希望未照亮區(qū)域完全不可見(jiàn),就要禁用環(huán)境光。

使用環(huán)境光來(lái)改變場(chǎng)景氛圍。

全局光照

全局光照是為了實(shí)現(xiàn)更具有真實(shí)感的場(chǎng)景而計(jì)算來(lái)自直接光照的簡(jiǎn)單反射光和陰影。實(shí)時(shí)全局光照支持改變場(chǎng)景燈光,比如改變燈光顏色,移動(dòng)直射的太陽(yáng)光,從白天過(guò)渡到黑夜等等。為了提高實(shí)時(shí)全局光照的質(zhì)量,增加預(yù)計(jì)算的分辨率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 前言:最近在做一個(gè)美術(shù)館的場(chǎng)景,對(duì)于燈光的要求非常高,經(jīng)過(guò)幾天的調(diào)試和在網(wǎng)上查閱一些資料,總結(jié)一下。全局光照,簡(jiǎn)稱(chēng)...
    Tang7閱讀 2,434評(píng)論 0 9
  • 這一篇比較偏重于功能介紹,具體的實(shí)例操作請(qǐng)參考其他文章:未完成 游戲場(chǎng)景中燈光照明的構(gòu)成 現(xiàn)實(shí)生活中的光線(xiàn)是有反射...
    shimmery閱讀 53,543評(píng)論 6 59
  • 那年 我用一場(chǎng)雪 封住了這世間所有的 所有的退路 不留余地的…… 只為步入 那紙上的時(shí)光 與你相偎 那濺滿(mǎn)月色的桃...
    風(fēng)之諾言_919c閱讀 369評(píng)論 0 6
  • 可能我比較懶吧,也沒(méi)有想到用什么名字來(lái)形容,所以姑且偷了個(gè)懶隨意一點(diǎn)吧。總比我絞盡腦汁構(gòu)造了一個(gè)響當(dāng)當(dāng)?shù)呐铺?hào),然...
    司鐵閱讀 220評(píng)論 0 1
  • 托黃磊版電視劇《深夜食堂》的福,拍的豆瓣評(píng)分如此之低,以至于在熱搜榜呆了好幾天都下不去,讓我這個(gè)好多年不看...
    葉之萱揚(yáng)閱讀 763評(píng)論 2 1