Unity學(xué)習(xí)筆記 Vol.82 運(yùn)用光線投影遮罩在HDRP制作高質(zhì)量燈具光照效果
內(nèi)容概要
·光線投影遮罩的介紹
·在Unity HDRP中如何設(shè)置
Unity 2018.3.6f1 + HDRP 4.10
光線投影遮罩(Light Cookie)
????光線投影遮罩是用于遮擋部分光源的遮罩,以控制發(fā)射的光線形狀。它們也可以被稱為“遮光片”、“剪影”或“標(biāo)識(shí)”,所用的名稱取決于應(yīng)用行業(yè)和具體用例。
為什么要使用光線投影遮罩?
·光線投影遮罩能很好控制陰影
·為實(shí)時(shí)點(diǎn)光源提供性能的保證
光線投影遮罩種類
·2D紋理(2D Texture)
·立方體貼圖(Cubemap)
2D紋理
·一般用于聚光燈(Spot Light)
·內(nèi)置渲染管線 - 灰度投影遮罩(Grayscale)
·HDRP - 有色投影遮罩(Colored)
?? ?? ??? ??-> 彩色邊緣效果、折射效果
獲取參考2D Texture Light Cookie
Standard Assets
Demo
聚光燈2D紋理制作流程:(使用Photoshop)
1.徑向模糊(Radial Blur)來制作圓形和非對(duì)稱形狀
2.顏色漸變(Color Gradient)濾鏡生成徑向衰減(Radial Attenuation)和更清晰的彩色細(xì)節(jié)
3.紋理邊緣是100%黑色

Texture Type在HDRP時(shí)設(shè)置為Default,在默認(rèn)時(shí)設(shè)置為Cookie

立方體貼圖
使用Unity漸進(jìn)式光照貼圖生成(Unity Progressive Lightmapper)
制作過程
·準(zhǔn)備烘焙用球體
·對(duì)球體進(jìn)行烘焙
·使用反射探針生成HDR立方體貼圖
·將立方體貼圖用作光線投影遮罩
準(zhǔn)備烘焙用球體
1.準(zhǔn)備一個(gè)法線朝內(nèi)的球體

2.將燈具放在球體中心,添加一個(gè)點(diǎn)淘汰(Point)
3.為投射陰影(燈具)和接收光線(球體)的幾何體設(shè)置Lightmap Statics標(biāo)簽,Layer還是Default

4.請(qǐng)確認(rèn)所有燈具 、光源對(duì)象Transform清零
5.通過Window >Rendering >Lighting Settings,打開光照設(shè)置,啟用Baked Global Illumnation

6.找到球體中的光照(LIght)游戲?qū)ο螅瑢⒛J剑∕ode)設(shè)置為Baked
7.將Indirect Multiplier設(shè)置為0
? ? ->只獲取直接光照?

8.找到Shadow ->Baked Shadow,設(shè)置Radius為 0.015
?? ?->模擬較大光源,創(chuàng)建柔和陰影

9.回到光照設(shè)置窗口->光照貼圖設(shè)置(Lightmapping Settings)
10.根據(jù)硬件配置,設(shè)置Lightmap Resolution為1024
?? ?->分辨率越高,烘焙細(xì)節(jié)越多,烘焙時(shí)間越長(zhǎng)

對(duì)球體進(jìn)行烘焙:
1.在光照設(shè)置窗口點(diǎn)擊“生成光照”(Generate Lighting),進(jìn)行烘焙

使用反射探針生成HDR立方體貼圖:
1.在球體內(nèi)添加反射探針(Light -> Reflection Probe)
2.設(shè)置捕獲設(shè)置(Capture Settings)->Near Clip Plane為0.01?->確保近端剪裁在球體之內(nèi)

3.設(shè)置燈具Layer為ReflectionProbeMask
4.找到反射探針->捕獲設(shè)置(Capture Settings),取消勾選Culling Mask?->ReflectionProbeMask


5.再次點(diǎn)擊Generate Lighting,進(jìn)行烘焙探針獲取光照信息

6.烘焙生成的反射探針數(shù)據(jù)作為立方體貼圖的原料

7.反射探針的最大分辨率在HDRP配置文件有全局設(shè)置

8.將反射探針生成文件(一般為ReflectionProbe-0.exr)使用Photoshop打開,進(jìn)行編輯
9.立方體貼圖是6X1紋理形式,UV結(jié)構(gòu)映射

10.添加曝光度(Exposure)圖層,調(diào)節(jié)曝光度負(fù)數(shù)值改進(jìn)顯示效果

11.另存為EXR或PNG圖片
12.可以將顏色模式降低為8位,減小文件大小
13.立方體貼圖生成基本完成
漸進(jìn)式光照貼圖的限制:
1.光線與材質(zhì)
·漸進(jìn)式光照貼圖不支持多數(shù)HDRP的高級(jí)著色器
·為烘焙過程創(chuàng)建獨(dú)立的材質(zhì)組,烘焙專用的預(yù)制件
·模擬燈罩半透明效果:材質(zhì)Opaque ->Transparent
·發(fā)射(Emission)
·設(shè)置間接采樣(Indirect Samples)> 2000
·設(shè)置反彈值 (Bounce)為1

2.縫隙
·提高陰影烘焙半徑(Baked Shadow?->Radius)
·使用間接光線反彈(Bounce)

3.條帶效應(yīng)
·原因:通過反射探針獲取投影遮罩
·特別在處理光強(qiáng)度比較低的發(fā)光道具
·建議:調(diào)高光強(qiáng);提取光照貼圖,整合到立方體貼圖里
DCC工具渲染立方體貼圖的優(yōu)點(diǎn):
·模型本身就在工具中制作,不會(huì)影響Unity
·幾何體可使用高級(jí)修改器離線渲染,制作平滑陰影
·專用工具把對(duì)象渲染到貼圖上,自動(dòng)處理烘焙過程
·離線渲染器可在短時(shí)間內(nèi)創(chuàng)建無(wú)噪聲紋理
立方體貼圖
使用3ds Max + Arnold生成

在Unity HDRP中如何設(shè)置
·投影遮罩導(dǎo)入
·光照設(shè)置
·材質(zhì)設(shè)置
投影遮罩導(dǎo)入
1.將立方體貼圖導(dǎo)入Assets相關(guān)文件夾
2.內(nèi)置渲染管線

3.高清晰渲染管線 HDRP:

4.HDRP配置文件中,所有投影遮罩最大全局分辨率設(shè)置

5.在場(chǎng)景中一處墻面放置與創(chuàng)建投影遮罩相同的Wallamp對(duì)象
6.Wallamp ->LightCookie,勾選色溫(Color Temperture)
7.將Cookie設(shè)置為wallamp_light_cookie

8.在光照設(shè)置窗口,點(diǎn)擊Generate Lighting旁箭頭,選擇Clear Baked Data清理數(shù)據(jù)
9.點(diǎn)擊Generate Lighting重新生成光照數(shù)據(jù)

光照設(shè)置:
1.曝光度(Exposure)
·屬于PPS V2功能
·Settings?->Scene
? Settings?->Post
? Process Volume?->Auto Exposure

·單位是EV100,對(duì)應(yīng)ISO 100曝光值
·常見陽(yáng)光場(chǎng)景EV 15
·月光場(chǎng)景EV -5
·室內(nèi)光照 EV 4~7
·Unity 支持EV -9~9
·游戲開發(fā)常用方法:
·將陽(yáng)光強(qiáng)度設(shè)置為 5000~10000lux
·設(shè)置Exposure Compensation 為1.0
·減小Minimum(EV)
2.色調(diào)映射(Tone mapping)
·屬于PPS V2功能
·Settings?->Scene
? Settings?->Post
? Process Volume?->Color Grading

·學(xué)院色彩編碼系統(tǒng) (ACES)
·可以使用Contrast或Gamma等參數(shù),降低對(duì)比度并提高中間色調(diào)
3.屏幕空間環(huán)境遮蔽(SSAO)
·屬于PPS V2功能
·Settings?->Scene
? Settings?->Post
? Process Volume?->Ambient Occlusion

4.光線強(qiáng)度單位
·流明(Lumen)它的光照是沒有方向的
·坎德拉(Candela)
·勒克斯(Lux at Meter)
·EV
·聚光燈(Spot Light)需要小心處理流明
·建議:打開Reflector模式

4.色溫(Color temperature)
·處理白熾燈模型(單位:開爾文Kelvin)
·使用顏色濾鏡(Filter)模擬不同光照效果(彩色玻璃、反射板、彩色膠體)

4.色溫(Color temperature)- 白平衡
·Color Grading ->White Balance

5.最大平滑度(Max Smoothness)
·Light ->Space

6.陰影(Shadow)
·同時(shí)啟用實(shí)時(shí)和烘焙投影遮罩的陰影
·點(diǎn)光源實(shí)時(shí)陰影比聚光燈陰影消耗高,烘焙投影遮罩比較高效
·點(diǎn)光源使用實(shí)時(shí)陰影時(shí),Light ->Shadows ->Shadow Map,調(diào)整陰影近端平面(Near Plane),避免燈具幾何體出現(xiàn)陰影剪裁
·平面需要延伸到燈具外,否則產(chǎn)生雙重陰影及相關(guān)瑕疵
·HDRP實(shí)時(shí)陰影高質(zhì)量過濾模式(消耗高)
·HDRP Settings -> Render Pipeline Supported
? Features -> Default Frame Settings Fro Camera -> Render
·設(shè)置Lit Shader Mode 為Forward

·設(shè)置Shadows ->Filtering Qualities -> ShadowQuality 為High

材質(zhì)設(shè)置:
1.發(fā)射率(Emissivity)
·模擬光線透過燈罩性能最低且最簡(jiǎn)單方法:
·不透明(Opaque)表面類型+自發(fā)光紋理(Emissive Texture)
·針對(duì)低端硬件


2.透明表面(Transparent Surface)
·模擬透明玻璃常用方法
·透明(Transparent)表面類型+標(biāo)準(zhǔn)材質(zhì)(Standard Material)
·Base Map(或Base Color)設(shè)置Alpha或自定義紋理來控制透明度
·透明部分分離為單獨(dú)游戲?qū)ο?/p>
·啟用折射中出現(xiàn)(Appear in Refraction)
·啟用從后向前的渲染順序(Back Then Front Rendering)
·啟用雙面(Double Sided)可以避免分類問題

3.半透明度(Translucency)
·仿制非常厚的磨砂玻璃或半透明材質(zhì)(方法一):
·不透明(Opaque)表面類型+半透明材質(zhì)(Translucency Material)
·創(chuàng)建Diffusion配置調(diào)整半透明度
·使用厚度圖(Thickness Map)半透明效果像平面

4.帶折射的透明表面(Transparent surface with refraction)
·仿制非常厚的磨砂玻璃或半透明材質(zhì)(方法二):
·透明度(Transparency)+折射率(Refraction)+透明度(Transmission)
·消耗較高,針對(duì)高端平臺(tái)設(shè)備

5.幾何高光抗鋸齒(Geometric specular anti-aliasing)
·針對(duì)傳統(tǒng)抗鋸齒比較難解決的問題:
·高頻光滑表面產(chǎn)生的鏡面抗鋸齒效果
·HDRP材質(zhì)表面選項(xiàng)提供Geometric Specular AA

了解更多:《Create High-Quality Light Fixtures in Unity》
https://docs.unity3d.com/Manual/ExpertGuides.html