HDRP和LWRP简介
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,修改光照等并重新烘焙
详细步骤可以参考官方教程链接https://connect.unity.com/p/gao-qing-xi-xuan-ran-guan-xian-hdrpru-men-zhi-nan
这里总结几个重要的点:
1.HDRP目前还是preview阶段,还不是非常成熟,如果使用该管线,自动能升级的shader只有官方自带的shader。
2.以前自己写的传统管线的shader只能自己手动重新写(目前支持shader graph,不用shader graph如何写我暂时还没研究)。
3.同理粒子特效也需要修改,用 visual effect graph
4.天空盒的设置不在以前的project setting中,由volume setting设置
5.volume setting 和 Post process Volume很重要,具体可以参考模板工程多试试
6.现有工程升级为hdrp渲染管线后,各个场景和模型效果可能都需要重新调整,个人感觉工作量还是挺大的。如下图所示,右侧为升级后的,想做出升级前效果的话,各个光照参数及模型参数等都需要修改调整。
关于HDRP的一些链接:
官方直播教程:https://www.bilibili.com/video/av36008052
github:https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Getting-started-with-HDRP
官方文字指南:https://connect.unity.com/p/gao-qing-xi-xuan-ran-guan-xian-hdrpru-men-zhi-nan
关于LWRP的一篇不错的文章:https://blog.csdn.net/qq_37043683/article/details/80989492