T.TAO
返回博客
/3 min read/Technical Art

URP #1 Universal Lit 与 URP ShaderLab

#Unity#Shader#TechnicalArt
URP #1 Universal Lit 与 URP ShaderLab

#UnityEngine #UnityShader #GameEngine #TechnicalArt 这篇笔记主要写一下怎么将 Built-in RP 的 shader 文件升级成 URP 文件。 结构 SubShader 在 Tags 中 添加新的渲染管线...

#UnityEngine#ComputerGraphics#GameEngine#GameDevelopment#Shader

本系列的博客主要是关于 Unity 引擎中的 URP(Universal Render Pipeline) 渲染管线中的一些介绍。Unity 在 2019.3 版本中对 LWRP 进行了升级,将名称改变为 URP,并且一直在推进用户使用 URP 创建新的项目。虽然至今 Built-in RP 还是主流的渲染管线之一,但是随着时代的发展,具有更多灵活性的 URP 最终肯定会取代 Built-in RP。

本篇笔记主要从 Unity URP 中自带的几个材质开始深入介绍 Unity 的 URP 管线。

URP 内置 Shader

URP 的材质系统中,自带的材质着色器已经全部处于 Universal Render Pipeline 这个分支下了。

这个分支中我们需要介绍的是内置的四个着色器:Lit, Simple Lit, Baked Lit 和 Unlit。

Lit

Lit 着色器是 URP 中创建一个材质时默认使用的着色器。Lit 着色器已经按照 PBR 着色的方式处理好了光照,并且暴露了一系列物理光学参数给用户。这是 URP 中最容易使用的、最基本的着色器。

Simple Lit / Baked Lit

Simple-Lit 使用 Blinn-Phong 模型着色,并非基于物理,但是它计算更少,因此可以在低端设备上运行。

Baked-Lit 是在项目不需要实时光照和高光反射等渲染效果的时候使用的,同样也并非基于物理,甚至不是 Blinn-Phong,而是使用来自 Unity 已经烘焙的光照贴图(lightmaps)和光照探针(light probes),因此不支持实时光照。它比 Simple-Lit 更快。

Unlit

Unlit 不与任何灯光交互,因此是最快的 Shader 。

以上所有的 Shader 均可以在项目的 Packages / Universal RP / Shaders 路径中查看,或者也可以直接在 Material 的 Inspector 面板中点击 Edit 查看其内部详细信息。

Lit Shader

我们重点了解 Lit Shader 的结构,同时也可以通过 Lit Shader 结构总结出 ShaderLab 在 URP 中做出的改动。

属性

SubShader

FallBack

URP ShaderLab

Include 文件的使用

本系列文章

Unity Shader
  1. 01Unity Shader #0 数学基础
  2. 02Unity Shader #1 渲染管线
  3. 03Unity Shader #2 代码基础
  4. 04Unity Shader #2.1 基础指令
  5. 05Unity Shader #3 升级到 URP
  6. 06Unity Shader #4 在 UV 上画图形
  7. 07Unity Shader #5 边缘光
  8. 08Unity Shader #6 扫描与全息
  9. 09Unity Shader #7 日式卡通渲染
  10. 10Unity Shader #8 溶解
  11. 11Unity Shader #9 镜头上的雨滴
  12. 12Unity Shader #13 屏幕后处理
  13. 13URP #1 Universal Lit 与 URP ShaderLab