URP中主要包含以下幾種着色模型
- Lit 光照
- Complex Lit 複雜光照
- Simple Lit 簡單光照
- Baked Lit 烘焙光照
- Unlit 非光照
- Terrain Lit 地形光照
- Particles Lit 粒子光照
- Particles Simple Lit 粒子簡單光照
- Particles Unlit 粒子非光照
物理基準着色器 (Physically Based Shading)
原理:
物理基準着色器是基於物理渲染(PBR)原理的着色模型,它模擬光線與材質表面的物理交互行為。該模型遵循能量守恆定律,使用金屬度/粗糙度工作流或鏡面反射/光澤度工作流來描述材質屬性。
- 該着色模型遵循以下原則:
- 能量守恆 Energy conservation:表面反射光的量不會超過其接收到的全部光能,除非對象本身會發光(如霓虹燈)。
- 微觀幾何 Microgeometry:物體表面在微觀層面存在幾何結構。一些物體擁有平滑的微觀幾何,呈現出類似鏡面的反射;另一些物體較粗糙,看起來更暗淡。在 URP 中,你可以通過調節物體表面的平滑度來模擬這種效果。
光線照射到物體表面時,部分光會被反射,部分光會折射。反射光被稱為鏡面反射(Specular Reflection),其強度取決於攝像機方向和光線入射角(angle of incidence)。該模型中,鏡面高光的形狀用 GGX 函數進行近似。
對於金屬表面,表面會吸收並改變光線;對於非金屬(也稱介電質(dielectric))表面,光線被部分反射。
光衰減僅受光照強度的影響,這意味着不必增大光的範圍來調整衰減。
特點:
- 使用微表面理論模擬表面細節
- 區分金屬和非金屬材質的光照響應
- 支持環境光遮蔽和間接光照
- 提供高度可定製的材質參數
內置着色器:
- Universal Render Pipeline/Lit (標準PBR着色器)
- Universal Render Pipeline/Complex Lit (支持更多貼圖通道的高級PBR着色器)
- Universal Render Pipeline/TerrainLit (地形標準PBR着色器)
- Universal Render Pipeline/Baked Lit (用於光照貼圖的PBR着色器)
- Universal Render Pipeline/Particles Lit (用於粒子光照貼圖的PBR着色器)
簡單着色 (Simple Shading)
原理:
簡單着色模型提供基本的漫反射和高光計算,不遵循嚴格的物理規則,計算量較小。它使用蘭伯特漫反射和馮氏高光模型,適合性能要求較高的場景或風格化渲染。
在簡單着色模型中,材質分別反射漫反射和鏡面光,但二者之間並無能量關聯。由於材質屬性的設置,物體反射的總光量可能會超出入射光量。此外鏡面反射強度僅隨攝像機方向變化。
光衰減僅受光照強度影響。
特點:
- 計算開銷低
- 不依賴複雜的材質參數
- 適合移動平台或低端硬件
- 可用於卡通渲染等非真實感渲染
內置着色器:
- Universal Render Pipeline/Simple Lit (基礎光照着色器)
- Universal Render Pipeline/Particles Simple Lit (粒子基礎光照着色器)
烘焙着色 (Baked Shading)
原理:
烘焙着色模型使用預計算的光照信息(光照貼圖)來渲染物體,運行時不需要進行實時光照計算。光照信息在編輯器階段通過光照烘焙生成,存儲在紋理中。
採用烘焙着色模型的材質不支持實時光照,只能通過烘焙光照(如 lightmaps 或 Light Probes)接收光照。這在性能開銷較小的前提下為場景增加一定深度,非常適合運行在低端平台上的遊戲。
URP 的 Baked Lit Shader 是唯一使用烘焙着色模型的着色器。
特點:
- 運行時性能極高
- 光照效果是靜態的
- 支持全局光照效果
- 需要提前烘焙光照
內置着色器:
- Universal Render Pipeline/Baked Lit (支持光照貼圖的着色器)
- Universal Render Pipeline/Lit (當配置為烘焙光照時)
無光照 (Unlit)
原理:
無光照模型完全跳過光照計算,僅使用材質的基礎顏色或紋理進行渲染。它是最簡單的着色模型,適用於UI元素、全息效果或特殊視覺風格。
URP 提供了一些無光照類型(unlit-type)的着色器。使用此類着色器的材質既不會受到實時光照,也不受烘焙光照影響。無光照着色器能讓你為場景中的對象創造獨特的視覺風格,其編譯速度也比含光照的着色器快得多。
特點:
- 完全不考慮光照
- 性能最優
- 可用於發光物體或自發光效果
- 適合需要完全控制外觀的情況
內置着色器:
- Universal Render Pipeline/Unlit (基礎無光照着色器)
- Universal Render Pipeline/ParticlesUnlit (粒子基礎無光照着色器)
對比總結
|
着色模型 |
光照類型 |
性能需求 |
典型場景 |
|
PBR |
實時物理光照 |
高 |
寫實3D、高端平台 |
|
Simple Lit |
簡化實時光照 |
中 |
風格化渲染、移動端 |
|
Baked Lit |
烘焙光照 |
低 |
靜態場景、性能優化 |
|
Unlit |
無光照 |
最低 |
特效、UI、低端設備 |
每種着色模型在URP中都有特定的應用場景,開發者可以根據項目需求在性能和質量之間做出權衡選擇。物理基準着色器適合追求真實感的場景,簡單着色適合移動或風格化項目,烘焙着色適合靜態環境,而無光照則用於特殊效果或UI元素。