這一篇比較偏重于功能介紹,具體的實例操作請參考其他文章:未完成
游戲場景中燈光照明的構(gòu)成
現(xiàn)實生活中的光線是有反射、折射、衍射等特性的。對這些基本特性的模擬一直以來都是計算機圖形圖像學(xué)的重要研究方向。
在CG中,默認的照明方式都是不考慮這些光線特性的,因此出來的效果與現(xiàn)實生活區(qū)別很大。最早期的時候,人們利用各種方式來模擬真實光照的效果,比如手動在貼圖上畫上柔和陰影,或者用一盞微弱的面積光源去照明物體的暗部以模擬漫反射現(xiàn)象等等。
然后出現(xiàn)了所謂的高級渲染器,用計算機的計算來代替我們的手工勞動來進行這個“模擬”的工作。在漫長的發(fā)展過程中,出現(xiàn)過很多很多計算方案,總體上分為這樣幾類:
- 直接模擬光線從被光源發(fā)出到最終被物體完全吸收的正向過程,也就是常說的GI(Global Illumination);
- 不直接模擬光線,而是反向搜集物體表面特定點的受光照強度來模擬現(xiàn)實照明效果,也就是常說的FG(Final Gathering);
- 完全不考慮光線的行為,單純基于“物體上與其他物體越接近的區(qū)域,受到反射光線的照明越弱”這一現(xiàn)象來模擬模擬現(xiàn)實照明(的一部分)效果,也就是常說的AO(Ambient Occlusion);
- 將場景光照結(jié)果完全烘焙到模型貼圖上,從而完完全全的假冒現(xiàn)實光照效果,也就是我們所說的Lightmap。
不論是GI還是FG,計算量都是非常大的,一幀圖片需要幾十分鐘甚至幾十小時來渲染,所以很難被應(yīng)用在游戲設(shè)計領(lǐng)域。
因此在游戲設(shè)計領(lǐng)域,光照貼圖技術(shù)依然是目前的主流方式。
由于光照貼圖需要事先烘焙(baking)出來,且僅支持靜態(tài)物體(Static Object),而我們的游戲場景中幾乎不可能全都是靜態(tài)物體,所以通常游戲場景中的燈光照明是多種照明方式的混合作用。
- 對于靜態(tài)物體來說,大多使用光照貼圖來模擬間接光的照明效果,然后加上直接光源的動態(tài)照明效果;
- 對于運動物體來說,則僅用直接光源的動態(tài)照明效果,或者使用光照探針來模擬間接光的照明效果。
隨著技術(shù)的發(fā)展以及計算機計算能力的提高,也許在未來,我們能夠直接在游戲場景中進行動態(tài)的全局光照模擬也說不定呢。新版Unity3D中就已經(jīng)出現(xiàn)了Realtime Global Illumination,雖然這個技術(shù)還處于雛形階段,所需要的計算量依然龐大,但確實為我們展示了一個令人激動的前景。
當(dāng)然,技術(shù)是技術(shù),產(chǎn)品是產(chǎn)品。技術(shù)是為產(chǎn)品服務(wù)的,再先進的實時全局光照系統(tǒng),對于像素風(fēng)格的游戲場景的提升也是幾近于0。
“選擇合適的技術(shù)來完善我們的產(chǎn)品和制作流程”,以及“根據(jù)現(xiàn)有技術(shù)來設(shè)計產(chǎn)品和制作流程”,說的其實是同一個意思。
1. 直接照明(Direct Lighting)
Unity3D中的直接照明主要來源于各種燈光物體,而燈光物體本質(zhì)上是空物體加上燈光組件。直接照明可以產(chǎn)生陰影,但光線不會反射、也不會折射,但可以穿透半透明材質(zhì)物體。
1.1 燈光類型(Lights)
Unity3D中默認可以創(chuàng)建這么幾種燈光:聚光燈、點光源、平行光、面積光,另外還可以創(chuàng)建兩種探針(Probe):反射探針(Reflection Probe)和光照探針組(Light Probe Group)。
平行光
平行光通常用來做陽光,Unity3D新建場景后會默認在場景中放置一盞平行光。平行光不會衰減。
-
Type
:燈光類型,所有類型的燈光都其實共用一個組件,本質(zhì)上是一樣的。 -
Color
:燈光顏色 -
Mode
:燈光照明模式,每種模式對應(yīng)Lighting面板中一組設(shè)定-
Realtime
:對應(yīng)Realtime Lighting -
Mixed
:對應(yīng)Mixed Lighting -
Baked
:對應(yīng)Lightmapping Setting
-
Realtime Lighting是新出現(xiàn)的一種烘焙光照技術(shù),它并不像傳統(tǒng)的烘焙技術(shù)一樣直接烘焙間接光照顏色和亮度信息到光照貼圖上,而是烘焙物體和物體之間的關(guān)系信息,比如A面對B面有漫反射效果,B面對C面有漫反射效果等等。這樣一來,只要物體之間的關(guān)系不變(也就是所有的靜態(tài)物體都不移動位置),就不需要重新烘焙,從而使得我們可以在場景中隨意運用動態(tài)光源(dynamic lights)。而傳統(tǒng)的Lightmapping光照貼圖方式則不支持動態(tài)光源效果(改變光源不會改變場景光照)。Realtime Lighting比Lightmapping要更耗費系統(tǒng)資源,所以手游上就不要考慮了。
-
Intensity
:燈光強度 -
Indirect Multiplier
:在計算該燈光所產(chǎn)生的間接光照時的強度倍乘 -
Shadow Type
:陰影貼圖的類型-
No Shadows
:無陰影貼圖 -
Hard Shadows
:硬陰影貼圖 -
Soft Shadows
:光滑陰影邊緣(也就是陰影模糊效果)
-
-
Baked Shadow Angle
:烘焙陰影的角度 -
Realtime Shadows Strength
:實時陰影強度 -
Resolution
:陰影貼圖分辨率 -
Bias
:陰影偏移,通常適當(dāng)增加這個值來修正一些陰影的artifact -
Normal Bias
:法線偏移,通常適當(dāng)減少這個值來修正一些陰影的artifact(不同于Bias
的使用場合) -
Near Plane
:陰影剪切平面,對于與攝影機距離小于這個距離的場景物體不產(chǎn)生陰影 -
Cookie
:Cookie相當(dāng)于在燈光上貼黑白圖,用來模擬一些陰影效果,比如貼上網(wǎng)格圖模擬窗戶柵格效果 -
Cookie Size
:調(diào)整Cookie貼圖大小 -
Draw Halo
:燈光是否顯示輝光,不顯示輝光的燈本身是看不見的 -
Flare
:Flare可以使用一張黑白貼圖來模擬燈光在鏡頭中的“星狀輝光”效果 -
Render Mode
:渲染模式 -
Culling Mask
:
點光源
點光源模擬一個小燈泡向四周發(fā)出光線的效果,點光源在其照亮范圍內(nèi)隨距離增加而亮度衰減
-
Range
:光線射出的范圍,超出這個范圍則不會照亮物體
聚光燈
聚光燈模擬一個點光源僅沿著一個圓錐體方向發(fā)出光線的效果,聚光燈在其照亮范圍內(nèi)隨距離增加而亮度衰減
-
Spot Angle
:燈光射出的張角范圍
面積光
面積光模擬一個較大的發(fā)光表面對周圍環(huán)境的照明效果,通常面積光的燈光亮度衰減很快,陰影非常柔和。
Unity3D的面積光僅在烘焙光照貼圖時有效,并不像Maya的Area Lights一樣能動態(tài)照亮場景。
-
Width
:面積光寬度 -
Height
:面積光的高度
總的來說,Unity3D中自帶燈光比較簡單,根據(jù)我們在Maya中使用燈光的經(jīng)驗,可以很快熟悉這些燈光類型的使用。
1.2 陰影類型(Shadow)
Unity3D的燈光可以設(shè)置不同的陰影類型,分別是:無陰影、硬陰影、軟陰影。要注意的是,不論是硬陰影還是軟陰影,本質(zhì)上都是用陰影貼圖模擬的陰影效果,而不是真實光照而自然形成的暗色區(qū)域。
燈光上陰影設(shè)置部分會隨著Mode
參數(shù)的不同而變化,Realtime Lighting Mode對應(yīng)的選項很多,而Baked Mode僅對應(yīng)Baked Shadow Angle一項。
無陰影
燈光不產(chǎn)生陰影,新建場景后默認生成的平行光就是無陰影的。
硬陰影
陰影邊緣清晰
軟陰影
陰影邊緣柔和,有過渡效果
陰影質(zhì)量設(shè)置
雖然我們在燈光的陰影設(shè)置中可以調(diào)節(jié)Resolution以提高陰影質(zhì)量,但真正的陰影質(zhì)量調(diào)節(jié)應(yīng)該在Quality面板中來進行,燈光中的陰影Resolution參數(shù)默認設(shè)置是Use Quality Settings,就是從Quality面板的設(shè)定中來選擇。
從菜單Edit
> Project Settings
> Quality
打開Quality面板,這里可以針對不同質(zhì)量等級設(shè)置不同的參數(shù)。
我們現(xiàn)在先不在這里對Quality面板做全面介紹,僅介紹關(guān)于陰影的那一部分設(shè)置內(nèi)容:
-
Shadows
:在當(dāng)前質(zhì)量下是不渲染陰影,還是只渲染硬陰影,還是軟硬陰影都渲染 -
Shadow Resolution
:在當(dāng)前質(zhì)量下陰影貼圖分辨率,這就對應(yīng)了燈光面板中的Resolution參數(shù)。 -
Shadow Projection
:陰影貼圖的投影方式,Close Fit方式會優(yōu)化近處的陰影質(zhì)量,缺點是運動狀態(tài)下可能會出現(xiàn)一些波動,Stable Fit方式不會有波動,但質(zhì)量比較差
有的時候陰影貼圖會出錯,比如無緣無故多出一條亮縫之類,通常可以選擇切換到
Close Fit
方式來解決,如果不想切換的Close Fit
方式,可以適當(dāng)降低燈光陰影參數(shù)中的Normal Bias
參數(shù),或者將對應(yīng)場景物體設(shè)置成雙面顯示。
-
Shadow Near Plane Offset
:很近處不渲染陰影 -
Shadow Cascades
:陰影貼圖疊加方式,可以是單層、2層或者4層-
Cascade Splits
:不同層所對應(yīng)場景區(qū)域的比例分配劃分
-
Shadow Cascades
是一種陰影貼圖算法,比如我們選擇4層疊加,那么實際上會計算4次陰影貼圖,每次對應(yīng)距離攝影機一定距離范圍以內(nèi)的場景物體,而這個距離范圍的劃分就通過Cascade Splits
中所顯示的紫、綠、黃、紅四種顏色區(qū)域所占比例來區(qū)分。紫色代表最近處的區(qū)域,而紅色代表最遠處的區(qū)域。紫色條越窄代表其對應(yīng)的那一層陰影貼圖所對應(yīng)的場景區(qū)域越小,這樣一來該區(qū)域的陰影貼圖精度就很高了。
我們可以看到這里的Shadow Resolution就對應(yīng)了燈光面板中的Resolution參數(shù)。
1.3 渲染路徑(Rendering Path)
Unity3D提供兩種渲染路徑(Rendering Path),對于初學(xué)者來說,渲染路徑這個概念不是很好理解,大家可以理解成是兩種不同的渲染器,分別有利弊就好了。
1.3.2 Forward
在Forward渲染路徑下,每個物體會被每個光源渲染成一個“通道”,因此物體受到越多燈光的影響,其渲染次數(shù)就會越多。
Forward渲染路徑的優(yōu)勢在于,在燈光比較少的情況下,F(xiàn)orward方式的渲染速度會非常快,處理透明貼圖也非常快,還可以使用諸如“多重取樣抗鋸齒(MSAA)”這樣的硬件處理技術(shù)技術(shù)。
但Forward渲染路徑的渲染速度會隨著燈光的增多而迅速變慢,在一些有很多燈光照明的特定場景中(比如高科技室內(nèi)環(huán)境)并不適合使用Forward渲染路徑。
1.3.1 Deferred
使用Deffered渲染路徑,渲染時間不會隨著燈光的增多而提高,而是會隨著受整體光照影響區(qū)域的擴大而提高(也就是說,場景中越多像素被照亮,渲染速度就越慢,但全屏被照亮的情況下,燈光設(shè)置復(fù)雜度不會進一步影響渲染速度了)。
Deffered渲染路徑在整體上需要更多的計算量,對于一些移動設(shè)備,Deffered渲染路徑還不能支持。
新版Unity3D的默認渲染路徑是Deffered渲染,如果場景非常簡單,或者希望使用MSAA,可以自行修改成Forward渲染路徑。
2. 間接照明
間接照明有這么幾種來源:
- 天光,也就是環(huán)境光(Ambient Light),特指來自于天空的漫反射。在Unity3D中可以繼承“天空球”的顏色作用環(huán)境光顏色,也可以自行指定環(huán)境光顏色。
- 反射光,特指天空漫反射之外的所有環(huán)境漫反射。在Unity3D中主要通過光照貼圖或燈光探針來模擬。
- 自發(fā)光物體。在Unity3D中自發(fā)光物體本身的亮度僅使用顏色來模擬,自發(fā)光物體對于環(huán)境的影響則通過光照貼圖或燈光探針來模擬。
2.1 天空盒(Skybox)與環(huán)境光(Ambient)
Unity3D的天空盒類似于Maya中的天空球的概念,都是在場景外圍生成一個封閉并正面向內(nèi)的環(huán)境,用來模擬天空的顏色和照明效果。但Unity3D的天空盒采用的是Box形狀的天空環(huán)境而非球形,用6張不同的貼圖而非1張全景貼圖來作為天空貼圖。
我們可以將Maya中常用的全景HDR環(huán)境貼圖轉(zhuǎn)換為適用于Skybox的方形貼圖,來創(chuàng)建我們自己的Skybox。這種轉(zhuǎn)換可以在貼圖設(shè)置中完成:
將
Default
類型的貼圖的Texture Shape
從2D
改為Cube
,然后修改Mapping
為6 Frames Layout (Cubic Environment)
,點擊Apply
就可以了。
Skybox的貼圖都是高動態(tài)顏色深度的.exr
圖片格式(也就是俗稱的HDR圖片)。最好不要使用.jpg
或者.png
這種傳統(tǒng)8位色深的圖片來做Skybox,除非我們確認不需要對場景進行貼圖烘焙(這樣的話天空盒就只起到環(huán)境貼圖的作用了)。
簡單的場景(或者刻意追求一種純粹的效果)可以不使用Skybox而使用純色天空,甚至游戲不需要看到天空的,可以直接設(shè)置成None。
天空盒對于場景的照明影響主要來源于其對于環(huán)境光的影響。天空盒貼圖所產(chǎn)生的環(huán)境光肯定比純色環(huán)境光要更為豐富,也更為契合天空顏色一些。
環(huán)境光所需要的計算量很小,所以是很有效的照明手段,大家不要忽視了。
2.2 光照貼圖(Lightmap)與烘焙(Baking)
簡單來說,Lightmap就是用貼圖來模擬全局照明的效果,但當(dāng)今游戲引擎的Lightmap的功能卻遠遠不是一張貼圖那么簡單。按照官方的說法,Lightmap中不僅可以包括物體表面的光照顏色信息(傳統(tǒng)的Lightmap功能),還可以包括物體和物體之間的光線滲透關(guān)系信息(新版中的Realtime Lighting功能),也就是說,動態(tài)光源也可以對于烘焙了光照貼圖的靜態(tài)場景物體產(chǎn)生正確的光照。
光照貼圖需要將所有參與的場景物體的UV重新排列組合成互不重疊且盡量少形變的方形結(jié)構(gòu),然后再把光照信息烘焙到一張或幾張較大尺寸(最大到4K)的貼圖中。這些烘焙好的貼圖會被儲存在場景文件所在目錄下與場景文件同名的子目錄中,所以烘焙光照貼圖之前需要保存場景。
光照貼圖烘焙參數(shù)設(shè)置
Environment:關(guān)于環(huán)境的參數(shù)設(shè)置
-
Skybox Material
:設(shè)置天空盒材質(zhì) -
Sun Source
:設(shè)置太陽,可以指定一個平行光作為太陽,然后該平行光的旋轉(zhuǎn)角度會影響其亮度和顏色 - Environment Lighting:關(guān)于環(huán)境光照的設(shè)置
-
Source
:環(huán)境光照來源
-Skybox
:來源于天空盒
-Gradient
:來源于一個從地平線到穹頂?shù)念伾珴u變
-Color
:來源于單色 -
Intensity Multiplier
:環(huán)境光照明強度強化 -
Ambient Mode
:環(huán)境光照明模式
-Baked
:烘焙在光照貼圖中
-Realtime
:實時 - Environment Reflections:關(guān)于環(huán)境反射的設(shè)置
-
Source
:環(huán)境反射來源
-Skybox
:來源于天空盒
-Custom
:來源于一個自定義的Cubemap(方盒貼圖) -
Resolution
:環(huán)境反射貼圖分辨率 -
Compression
:是否壓縮環(huán)境反射貼圖 -
Intensity Multiplier
:環(huán)境反射強度強化 -
Bounces
:環(huán)境反射計算次數(shù)
Realtime Lighting:關(guān)于實時光照烘焙的設(shè)置
-
Realtime Global Illumination
:是否進行實時光照烘焙
Mixed Lighting:關(guān)于混合光照烘焙的設(shè)置
-
Baked Global Illumination
:是否進行混合光照烘焙 -
Lighting Mode
:光照模式Baked Indirect
Distance Shadowmask
Shadowmask
Subtractive
Lightmapping Settings:關(guān)于光照烘焙的通用設(shè)定
-
Lightmapper
:選擇光照烘焙器-
Enlighten
:這是常用的一種烘焙器 -
Progressive (Preview)
:這是新版的一種烘焙器,還處于預(yù)覽狀態(tài),它會先烘焙攝影機可見區(qū)域,再烘焙其他區(qū)域,所以預(yù)覽較快
-
-
Indirect Resolution
:間接光照分辨率(每單位長度多少體素(texel)),數(shù)值越高,光照細節(jié)越高 -
Lightmap Resolution
:光照貼圖分辨率(每單位長度多少體素),通常設(shè)置為Indirect Resolution
的10倍左右 -
Lightmap Padding
:修正兩個物體的Lightmap之間的距離,以避免顏色滲透 -
Lightmap Size
:光照貼圖大小(最大4096) -
Compress Lightmaps
:是否壓縮光照貼圖 -
Ambient Occlusion
:是否烘焙環(huán)境光遮罩 -
Final Gather
:是否對最后一次GI光線反射后的光照結(jié)果再進行一次FG計算,勾選上會有較好的質(zhì)量表現(xiàn),但烘焙時間會增加 Directional Mode
-
Indirect Intensity
:間接光照的強度 Albedo Boost
-
Lightmap Parameters
:設(shè)置詳細的光照貼圖參數(shù)(可以使用幾個默認值,或者創(chuàng)建新設(shè)置,應(yīng)該是給熟手用的吧)
Other Settings:其他設(shè)置
-
Fog
:添加場景霧效-
Color
:霧效顏色 -
Mode
:霧效衰減模式 -
Density
:霧效密度
-
設(shè)置完成后別忘了點擊
Generate Lighting
按鈕烘焙光照貼圖!
光照貼圖的烘焙(baking)是很需要時間的,新版Unity3D提供了自動烘焙的功能:Auto Generate
選項,可以讓我們在調(diào)試場景的時候無需頻繁手動點擊Bake按鈕,但自動烘焙的結(jié)果并不會被儲存起來,所以最終發(fā)布前還是需要手動烘焙光照貼圖的。
注意,從名字上,很容易將“自動烘焙”和“實時全局光照”這兩個設(shè)置等同起來,這是非常大的誤解。
定義光照貼圖比例
既然所有的場景物體都被Pack成一個大的貼圖,那么一個多邊形面片上的光照信息精度就受限于這個多邊形面片所對應(yīng)的UV在貼圖中所占據(jù)的面積大小了。出于場景優(yōu)化考慮,我們當(dāng)然希望將有限的光照貼圖面積盡量多的分配給更需要的物體咯,所以Unity3D在Mesh Render組件中提供了修改物體所占光照貼圖比例的參數(shù):
-
Scale In Lightmap
就是控制該物體的UV在Lightmap的重排中比例縮放的,數(shù)字越小占比越少。
怎么決定哪些物體的UV占比低哪些物體的UV占比高呢?通常遠景物體占比比近景物體低,表面很平滑的物體占比比表面細節(jié)豐富的物體占比低,處于內(nèi)部不太可見的模型占比通常要盡量低,地面或者地形這種很大面積的物體,占比中等就好了,否則就擠占了其他物體的燈光貼圖細節(jié)了。
2.3 燈光探針(Light Probes)
光照烘焙對于動態(tài)物體(Dynamic Object),也就是沒有被設(shè)置成Lightmap Static的物體來說都是不起作用的,如果希望動態(tài)物體也能被正確的照明,則需要創(chuàng)建Light Probe Group。
Light Probe可以被認為是在場景中的一個小“光源”,而多個Light Probe組成的網(wǎng)絡(luò),就是Light Probe Group。這些小光源通過烘焙得到場景中該點的亮度信息,然后整個網(wǎng)絡(luò)用這個信息來照明動態(tài)物體。
同一時間內(nèi)只會有最靠近動態(tài)物體的那些Probes會起作用,而且Light Probe離運動物體越近,其照明效果越強。我們可以根據(jù)場景光照環(huán)境特征來設(shè)置合適的Light Probe Group。
為場景添加Light Probe Group可以很好的將動態(tài)物體與靜態(tài)場景融合,尤其是在光照環(huán)境復(fù)雜的室內(nèi)場景中,尤其需要添加Light Probe Group。
3. 如何提高圖像的渲染質(zhì)量
Unity3D中圖像質(zhì)量是由很多因素共同決定的,而且默認的參數(shù)設(shè)置常常都不是最佳的。而我們在制作游戲的時候,需要在游戲運行效率和游戲畫面質(zhì)量上做出選擇。
有些游戲(比如2D游戲)的游戲畫面基本與渲染質(zhì)量無關(guān),這時候就可以關(guān)閉一些影響性能的功能或選項來提高運行效率。
但有些游戲(比如3D游戲,或者仿真應(yīng)用如虛擬樓盤效果圖之類)對于圖像渲染質(zhì)量有較高要求,我們也需要知道可以通過哪些手段來增強畫面效果,同時明白這樣做會犧牲多少運行性能。
設(shè)置質(zhì)量等級(Quality Level)
Unity3D允許用戶設(shè)置多個質(zhì)量等級,并在各個等級中運用不同的質(zhì)量參數(shù),前面講陰影的時候涉及過這方面的內(nèi)容。
對于新手來說,常常會犯錯的地方是明明設(shè)置好了高等級的圖像質(zhì)量,卻在較低等級預(yù)覽場景,或者明明需要輸出成WebGL(默認使用中等質(zhì)量等級),卻不停地調(diào)整最高質(zhì)量等級的參數(shù)。
選擇渲染路徑
簡單來說,Deferred渲染路徑的圖像質(zhì)量比較高,但Forward渲染路徑在燈光不多的情況下速度比較快。
陰影質(zhì)量
陰影出現(xiàn)Artifacts的時候請調(diào)整Bias
參數(shù)和Normal Bias
參數(shù)。
復(fù)雜場景的陰影質(zhì)量需要手動調(diào)整Cascade Splits
參數(shù)中多個層的占比,以保證近處陰影有足夠的質(zhì)量。
光照準(zhǔn)確性
使用反射探針(Reflection Probe)
Unity3D中并沒并真實的Raytrace反射,而是通過反射貼圖來模擬所有的反射效果。
如果我們在場景中放置一個非常強反射的小球,我們就能看到這個小球上實際反射的是我們的Skybox,完全不會反射場景物體。這樣一來不僅影響到場景中反光物體的反射正確性,同時也會嚴(yán)重影響整體場景的光照準(zhǔn)確性。
我們可以為場景添加Reflection Probe
來矯正不正確的反射貼圖。
Reflection Probe可以看做是一個帶有6個攝影機的點,它會渲染該點的6個方向(前后左右上下),將渲染結(jié)果拼成一個Cubemap,并應(yīng)用給一個特定方框范圍內(nèi)的所有物體作為反射貼圖。
對于比較復(fù)雜的環(huán)境,比如有多個區(qū)域的大房間,我們可以放置多個Reflection Probe并手動設(shè)置其影響范圍。
Reflection Probe默認不會計算動態(tài)物體,僅計算烘焙物體,我們可以修改屬性讓其將動態(tài)物體也包括在內(nèi),同時還可以修改屬性為Every Frame
使其每幀更新以準(zhǔn)確反射動態(tài)物體的運動過程,還可以增加Lighting Setting中的Reflection Bounces提高反射次數(shù)(這樣就不會出現(xiàn)強反射物體在另一個反射物體中是黑色的情況了)。但要注意,這些修改都會占用更多的系統(tǒng)資源,尤其是每幀更新反射貼圖這樣的設(shè)置。
4. 如何提高烘焙效率
烘焙效率雖然不影響最終游戲的表現(xiàn),但對我們制作過程有很大的影響。沒人會希望每次修改了場景布局或者燈光布局之后都要花費幾個小時甚至幾十個小時的時間來烘焙光照貼圖。
一個小技巧是不要將所有物體都設(shè)置成Lightmap Static參與光照貼圖的烘焙。很多細碎的物體(比如地上的小碎石)并不需要很精確的間接光照效果,而且也可能根本沒有足夠的光照貼圖精度來對應(yīng)這些細碎物體,這時候用燈光探針可能比用光照貼圖更有效率。
在Unite 2017關(guān)于燈光烘焙的專場演講中,演講者通過將細小物體設(shè)置為動態(tài)物體,并添加簡單的Light Probe,讓渲染時間從3.5分鐘下降到20秒。