[我給Unity官方視頻教程做中文字幕]beginner Graphics – Lessons系列之燈光介紹Lights


[我給Unity官方視頻教程做中文字幕]beginner Graphics – Lessons系列之燈光介紹Lights

上一篇分享了中文字幕的攝像機介紹Cameras后,本篇分享一下第2個已完工的視頻,即《beginner Graphics – Lessons系列之燈光介紹Lights》。聽譯、時間軸、壓制者均為本人。請勿將視頻用於非法目的。

有需要本篇高清視頻的同學麻煩支付100元並留下你的Email~

有視頻有真相

視頻中的重點

類似現實世界,Unity中用燈光照亮場景

沒有燈光,場景中的物體在攝像機中是不可見的

 

寬泛的說,Unity中有兩種燈光

動態(Dynimic)光烘焙(Bake)光

動態光在游戲運行中是實時計算的

你只需在場景中添加燈光對象就可以了

烘培光是在線下(Off-line)計算並保存成紋理(Texture)的

這些燈光紋理被貼到烘培的物體上以提升性能

 

為了照亮場景,要使用燈光組件(light component)

和其它組件一樣,燈光組件也要附加到游戲對象(Game Object)上

我們可以用這個游戲對象的Transform屬性來移動燈光

 

燈光組件提供了4種燈光類型

點光(Point Light)

平行光(Directional Light)

聚光燈(Spot Light)

和只用於烘培的面光(Area Light)

不同類型的燈光對游戲的照明效果差異很大

點光就像一個小光球

點光根據其所在位置照射場景中的物體

對點光進行旋轉是沒有意義的

因為點光照射到各個方向的光是相同的

平行光就像太陽

平行光能夠照射到場景中所有的物體

根據旋轉角度進行照射

位置屬性對平行光是沒有意義的

聚光燈就像是手電筒

或者汽車的頭燈

它根據其位置和旋轉角度對一個圓錐體范圍內的物體進行照射

所以聚光燈的位置和旋轉角度屬性都是有意義的

面光只用在烘培時

面光從平面的一側向一個矩形范圍內發射任意方向的光

 

除了這4種燈光外,還有另外兩種光源

環境光(Ambient Light)發光材質(Emissive Material)

環境光控制場景中的無方向全局光

環境光在動態光和烘培光中都發揮作用

如果想去掉環境光的影響

就把環境光的顏色設置為黑色(在RenderSettings里)

然后在場景中添加上文介紹的4種燈光

想用發光材質的話

只需給物體設置合適的自發光着色器(shader)

自發光材質只在烘培光中發揮作用

 

燈光有一些屬性供你設置

燈光組件的"Range"屬性決定了光線照射的距離遠近

"Range"只對點光或聚光燈類型的燈光有意義

在聚光燈下還可以設置"Spot Angle"屬性

"Spot Angle"屬性決定了聚光燈的圓錐體照射范圍的角度大小(單位為度)

"Color"控制燈光的顏色

場景會根據燈光顏色的變化而改變顏色

"Intensity"控制燈光的強弱

這個屬性和"Range"是相互獨立的

在場景中使用燈光時,需要配合使用各項屬性才能做出令人動容的效果

無論是增大"Intensity"還是增大"Range"屬性

燈光看上去的確會顯得更亮

但是他們照亮場景的方式是不同的

 

除了基本的渲染外

我們還可以使用一些高級設置

陰影(Shadows)、光暈(Halos)、耀斑(Flare)和Cookie

Cookie是一個虛擬遮罩或者標記

它擋在光源前面來產生某種陰影

Cookie使用貼圖的Alpha通道來給光源產生陰影

聚光燈和平行光使用Cookie時,Cookie必須使用2D貼圖

點光使用Cookie時,Cookie必須使用立方體貼圖(Cube map)

這很符合常識

因為聚光燈和平行光只沿着一個方向照射

點光卻向所有方向照射

使用平行光時,有一個改變Cookie大小的選項

讓你可以縮放Cookie陰影

面光不能使用Cookie

在烘培時,只有聚光燈能使用Cookie

Cookie對點光和平行光則無效

 

光照有2種陰影類型

硬陰影(Hard)和軟陰影(Soft)

硬陰影能滿足大部分情況

軟陰影看起來更舒服,但渲染更耗時

渲染陰影有一些調節選項

"Strength"控制陰影的黑色程度

調整這個屬性直到陰影在場景中看起來很和諧

"Strength"調整到1的時候往往太強

"Resolution"(分辨率)是渲染質量選項

其默認選項是"Use Quality Settings"

你可以在此修改

 

"Bias"(乖離率)控制某一光照產生的陰影外圍強度

"Bias"影響影子起始點到物體的距離

"Bias"太小會使物體的影子太假(artifact)

太大則會使物體看起來漂浮着(hovering)

使用平行光+軟陰影時,會有2個額外配置項

柔和度(Softness)和柔化淡出(Softness Fade)

柔和度是指陰影邊界清晰程度

柔化淡出是指從多遠開始給物體繪制軟陰影

 

"Draw Halo"(繪制光暈)會在燈光周圍繪制場景默認的光暈

光暈和"Range"、"Intensity"屬性都相關

光暈的詳細設置可以在場景的"Render Settings"中找到

想重寫(Override)默認光暈的話

必須關閉燈光的"Draw Halo"選項

然后給燈光添加一個"Halo"組件

眩光(Flare)和光暈很像

但是它是模仿透過玻璃照射的亮光源的效果

當"Flare"屬性被賦予一個光暈材質后

燈光會被渲染成具有鏡頭光暈(Lens Flare)的樣子

"Flare"只受"Intensity"屬性控制

你可以直接給燈光物體添加一個鏡頭光暈(Lens Flare)組件

不過燈光的"Flare"屬性就應當清空了

否則這個燈光會有2個光暈

必須給攝像機添加一個"Flare Layer"組件

攝像機才能渲染光暈

 

渲染動態燈光的方式有2種

頂點光照(vertex lighting)和像素光照(per-pixel lighting)

頂點光照一般是最快的渲染方式

它通過計算物體的網格頂點的顏色來渲染場景

然后通過插值(interpolate)渲染網格的表面

像素光照是逐個像素渲染的,所以更耗時

雖然像素光照渲染時慢

但是它能實現一些頂點光照無法實現的效果

法線貼圖(normal mapping)、燈光cookies和實時陰影(Realtime shadow)

只在像素光照下才能使用

聚光燈形狀、某些特殊高光(high light)在像素光照下的效果也更好

光照對渲染速度有很大的影響

像素光照的數量可以在"Render Settings"中設置

只要設置"Pixel Light Count"屬性即可

當你使用正向渲染路徑(forward rendering path)時

燈光組件提供給你一個選項"Render Mode"來指定其渲染模式

"important"會強制此燈光逐個像素地渲染

"not important"會強制此燈光使用更快的方式渲染

例如逐個頂點的方式或球面調和(Spherical?Harmonics)的方式

 

有需要本篇高清視頻的同學麻煩支付100元並留下你的Email~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM