博客 / 詳情

返回

【URP】Unity[內置Shader]着色器模型分類

【從UnityURP開始探索遊戲渲染】專欄-直達
  • 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))表面,光線被部分反射。

光衰減僅受光照強度的影響,這意味着不必增大光的範圍來調整衰減。

更多物理基於渲染 (PBR) 的原理,參閲 Joe Wilson 在 Marmoset 編寫的詳細介紹。

特點‌:

  • 使用微表面理論模擬表面細節
  • 區分金屬和非金屬材質的光照響應
  • 支持環境光遮蔽和間接光照
  • 提供高度可定製的材質參數

內置着色器‌:

  • 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元素。


【從UnityURP開始探索遊戲渲染】專欄-直達
(歡迎點贊留言探討,更多人加入進來能更加完善這個探索的過程,🙏)
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.