11 Unity HDRP渲染管线基础指南

Unity2018中引入了可编程渲染管线(Scriptable Render Pipeline,简称SRP),是一种在Unity中通过C#脚本配置和执行渲染的方式。至2018.1版本,Unity中除了默认渲染管线,还提供了轻量级渲染管线(Lightweight Pipeline)和高清晰渲染管线(HD Pipleline)二种SRP渲染管线。当然也支持自定义渲染管线。与高清晰渲染管线相比,轻量级渲染管线的开发已经比较成熟。

为了解决仅有一个默认渲染管线,造成的可配置型、可发现性、灵活性等问题。Unity在管线设计的概念上做了转移,决定在C++端保留一个非常小的渲染内核,让C#端可以通过API暴露出更多的选择性,也就是说,Unity会提供一系列的C# API以及内置渲染管线的C#实现;这样一来,一方面可以保证C++端的代码都能严格通过各种白盒测试,另一方面C#端代码就可以在实际项目中调整,有任何问题也可以方便地进行调试。

新的管线对用户而言主要是C# 端的API以及由这些API编写的一系列定制化的内置渲染管线。而在内部实现上,引擎C++端会负责多线程实现性能关键的部分,如上图所示,而C#端负责更高层的渲染指令调度。

用户可以直接使用开源的内置管线,或者在内置管线的基础上进行修改,甚至直接编写定制化的管线。具体使用上渲染管线在工程中会生成特定的Asset,如下图所示,这个Asset序列化了这条管线的一些公共设置变量,并负责在运行时创建实际的渲染上下文;当这个Asset的设置变量在运行时发生变化,引擎会销毁当前上下文然后重新创建管线(这个操作在现有固定管线中无法做到)。

  •  HDRP:只支持pc mac linux等支持cpu shader的平台 ;   支持cluster deferred/forward lighting
  •  LWRP:全平台支持;   single pass forward

HDRP 相对于传统的渲染管线,有许多优点,如下图所示。其中Debug视图模式支持可视化的调试

对于新项目如何使用HDRP
1.请使用Unity Hub,它可以帮助你管理项目和已安装Unity版本的信息。使用Unity Hub创建新项目时,在Template下可以看到High-Definition RP (Preview)选项。选择该模板即可创建使用HDRP渲染管线的项目

对于已有项目如何升级到HDRP
1.Window > Package Manager 安装最新版本HD Render Pipeline

2.Edit > Project Settings > Graphics ,指定用于HDRP的可编程渲染管线资源。

3.升级材质

4.设置volume setting 和 Post process Volume,修改光照等并重新烘焙