先简单了解一下各种渲染管线之间的区别
Unity 从 2019.3 版本开始正式支持通用渲染管线(URP,Universal Render Pipeline)。URP 是轻量渲染管线(LWRP,Lightweight Render Pipeline)的升级和重命名版本,它提供了更高的性能和可扩展性,并且支持更多的功能,如更高级的光照、阴影和后处理效果。
Unity 提供了三种主要的渲染管线:内置渲染管线(Built-in Render Pipeline)、通用渲染管线(URP,Universal Render Pipeline)和高清渲染管线(HDRP,High Definition Render Pipeline)。它们在性能、图形质量和使用场景上各有侧重。
1. 内置渲染管线(Built-in Render Pipeline)
- 渲染模式:传统的前向渲染(Forward Rendering)和延迟渲染(Deferred Rendering)。
- 性能:比较灵活,但由于没有深度优化,可能在高负载场景下性能不佳。
- 可扩展性:无法像 URP 和 HDRP 一样通过 SRP(Scriptable Render Pipeline)轻松定制。
- 适用场景:虽然老旧,但兼容性好,适用于中小型项目,特别是对图形效果没有太高要求的项目。
2. 通用渲染管线(URP,Universal Render Pipeline)
- 渲染模式:前向+自定义渲染路径(支持前向渲染、延迟渲染和更多优化技术)。
- 性能:相对于内置渲染管线,URP 针对性能做了优化,特别适用于移动设备、VR、AR 和需要跨平台支持的项目。渲染效率更高,降低了性能开销。
- 图形质量:提供了现代渲染特性,比如 PBR(基于物理的渲染)、更优化的阴影、光照和后处理效果,但不如 HDRP 提供的高端效果。
- 可扩展性:URP 是基于 SRP 架构的,可通过 Shader Graph 和自定义 Pass 扩展和定制渲染效果。
- 适用场景:适用于需要兼顾性能和视觉效果的项目,特别是移动游戏、独立游戏、以及需要在多个平台上发布的项目。
3. 高清渲染管线(HDRP,High Definition Render Pipeline)
- 渲染模式:延迟渲染(Deferred Rendering),支持复杂的光照、反射和后处理效果。
- 性能:HDRP 主要面向高性能平台,如高端 PC 和次世代主机,追求画面质量优先,因此性能开销较大,不适合低性能设备(如移动设备或低端硬件)。
- 图形质量:提供了顶级的视觉效果,包括复杂的光照模型、体积光照、反射、次表面散射、全局照明、细节阴影等。非常适合 AAA 级别的项目。
- 可扩展性:同样基于 SRP,HDRP 提供了非常高的灵活性,允许开发者定制几乎所有的渲染过程。
- 适用场景:适用于追求极高画质的 AAA 游戏、电影制作、建筑可视化等,主要面向高端硬件和高分辨率显示器。
总结:
- 内置渲染管线:兼容性好,适合中小型项目,但图形性能和效果较弱,难以定制。
- URP:性能和质量平衡,适合需要跨平台支持的项目,如移动游戏和独立游戏,提供了现代的渲染特性和定制化能力。
- HDRP:追求顶级画质,适用于高端设备和高要求的视觉项目,但性能要求高,不适合低端设备。
Shader Graph
Shader Graph 是 Unity 提供的一种可视化工具,允许开发者通过节点编辑器创建着色器,而不需要直接编写代码。这种方式大大降低了开发复杂着色器的难度,特别适合没有深厚编程背景的艺术家和设计师。
我们接下来了解一下在2019.3版本以后,我们怎么打开ShaderGraph的操作界面
选择SRP模板工程
首先在UnityHub界面,我们在创建项目工程的时候,需要选择前面有SRP的模板
Scriptable Render Pipeline(可编程渲染管线)里面包含了两个主要的预设管线(URP、HDRP)
URP基础设置
在我们创建好URP工程后,在PlayerSetting中,Graphics里面已经默认设置好了渲染管线为URP
确认好这个设置之后,就可以创建一个ShaderGraph文件
创建
在URP栏,先选择一个最基础的Shader模板,LitShaderGraph
界面布局
- 全局设置和节点设置属性面板
- GraphSettings:是对Shader整体的一个设置面板。NodeSettings:对添加的节点进行设置。
- 公开参数列表
- 对外开放参数,支持使用者编辑
- 预览窗口
- Shader编辑的效果,会展示在这里
- 节点编辑窗口
- 用于显示当前ShaderGraph的节点及其连接关系,并支持拖拽、缩放等操作进行对Shader的编辑
- 菜单栏和工具栏:提供了创建、保存、导出等操作的功能按钮,以及常用的工具和快捷键。
之后的Shader编辑,就在这个页面中。