Unity中的渲染管线
引言
在Unity开发过程中,我们经常会遇到资产没有正确显示材质(资产呈现粉红色)的情况,这是因为渲染管线与资产材质的Shader不匹配。
渲染管线是Unity中的一个重要概念,它决定了物体如何被渲染到屏幕上。
在这里补充一点,有时候资产呈现粉红色,也可能是因为找不到纹理贴图。比如,有时候纹理贴图会被打包到模型文件(.fbx)中,将纹理文件提取到模型相同文件夹即可。
一、渲染管线的概念
Unity中的渲染管线(Rendering Pipeline)是指处理图形渲染的一系列步骤和算法,负责将3D场景转换为2D图像。
常见的渲染管线有以下几种:
1. 内置渲染管线(Built-in Render Pipeline)
这是Unity默认的渲染管线,已经存在多年。
它支持大多数Unity项目,并且具有广泛的兼容性。
内置渲染管线提供了标准着色器和后处理效果,并且能够支持多种平台。
资产的Shader需要设置为Standard Shader,才能在内置渲染管线中正确显示。
当 Edit > Project Settings > Graphics
中的 Scriptable Render Pipeline Settings
字段为空时,Unity默认使用内置渲染管线。
2. 通用渲染管线(Universal Render Pipeline, URP)
URP(以前称为Lightweight Render Pipeline, LWRP)是Unity的一种现代渲染管线,设计用于在多个平台上提供高性能和高质量的图形效果。
URP适合大多数游戏项目,尤其是移动平台和性能敏感的应用。
它提供了一个更简化的着色器模型和可配置的渲染功能。
资产的Shader需要设置为Universal Render Pipeline/Lit Shader。
3. 高级渲染管线(High Definition Render Pipeline, HDRP)
HDRP是Unity的另一种现代渲染管线,主要针对高端平台(如高性能PC和游戏主机)和需要高保真图形效果的项目。
HDRP提供了更先进的图形功能,如物理光照、体积雾、屏幕空间反射等。
它适用于需要极高视觉质量的项目,如AAA级游戏和影视制作。
资产的Shader需要设置为High Definition Render Pipeline/Lit Shader。
4. 区别
- 性能与质量:URP专注于性能优化,适合移动设备和低端平台,而HDRP专注于提供最先进的图形效果,适合高端平台。
- 功能:HDRP提供了更复杂和先进的图形功能,而URP则更简化和高效。
- 适用范围:URP适合需要在多个平台上运行的项目,而HDRP则适合对视觉效果要求极高的项目。
5. 如何选择渲染管线
大多数个人开发场景下,应当选择内置渲染管线,因为这可以满足绝大多数应用场景。
而URP和HDRP虽然已经推出很多年,但是仍然存在 参考资料少
、开发人员少
和 Assert Store资源少
等问题,因此在选择时需要谨慎。
比如,接下来进入Unity 资源商店搜索 Human
,可以看到很多资源,但是相对于内置渲染管线的资源数量还是少很多。
二、如何设置渲染管线
安装渲染管线包:
- 打开Unity的Package Manager(窗口 > Package Manager)。
- 在Package Manager中,搜索并安装“Universal RP”或“High Definition RP”。
创建渲染管线资产:
- 右键点击项目窗口,选择Create > Rendering > Universal Render Pipeline > Pipeline Asset(Forward Renderer)或Create > Rendering > High Definition Render Pipeline > HDRenderPipelineAsset。
- 这会创建一个新的渲染管线资产。
配置渲染管线:
- 打开Edit > Project Settings > Graphics。
- 在Scriptable Render Pipeline Settings字段中,将刚才创建的渲染管线资产拖动到此处。
转换材质和设置:
- 如果从内置渲染管线转换到URP或HDRP,Unity会提示您升级材质和项目设置。按照提示进行操作,以确保材质和设置与新的渲染管线兼容。
三、如何对资产进行转换
有时候在开发URP和HDRP项目时,我们需要将内置渲染管线的资产转换为新的渲染管线。
- 逐个转换:
Unity提供了一个内置工具,可以自动将内置材质转换为URP材质。
首先需要安装URP或HDRP包,并创建相应的渲染管线资产。
接下来,打开Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials。
这个工具将扫描项目并自动转换所有兼容的材质和着色器。
- 批量转换:
打开Window > Rendering > Universal Pipeline Converter。
在转换的时候需要谨慎,因为这个过程是不可逆的。可能会造成材质丢失,一些资产无法正确显示。