Unity中的渲染管线


Unity中的渲染管线

引言

在Unity开发过程中,我们经常会遇到资产没有正确显示材质(资产呈现粉红色)的情况,这是因为渲染管线与资产材质的Shader不匹配。

img.png

渲染管线是Unity中的一个重要概念,它决定了物体如何被渲染到屏幕上。

在这里补充一点,有时候资产呈现粉红色,也可能是因为找不到纹理贴图。比如,有时候纹理贴图会被打包到模型文件(.fbx)中,将纹理文件提取到模型相同文件夹即可。

img.png

一、渲染管线的概念

Unity中的渲染管线(Rendering Pipeline)是指处理图形渲染的一系列步骤和算法,负责将3D场景转换为2D图像。

常见的渲染管线有以下几种:

1. 内置渲染管线(Built-in Render Pipeline)

这是Unity默认的渲染管线,已经存在多年。

它支持大多数Unity项目,并且具有广泛的兼容性。

内置渲染管线提供了标准着色器和后处理效果,并且能够支持多种平台。

资产的Shader需要设置为Standard Shader,才能在内置渲染管线中正确显示。

Edit > Project Settings > Graphics中的 Scriptable Render Pipeline Settings字段为空时,Unity默认使用内置渲染管线。

img.png

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,可以看到很多资源,但是相对于内置渲染管线的资源数量还是少很多。

二、如何设置渲染管线

  1. 安装渲染管线包

    • 打开Unity的Package Manager(窗口 > Package Manager)。
    • 在Package Manager中,搜索并安装“Universal RP”或“High Definition RP”。
  2. 创建渲染管线资产

    • 右键点击项目窗口,选择Create > Rendering > Universal Render Pipeline > Pipeline Asset(Forward Renderer)或Create > Rendering > High Definition Render Pipeline > HDRenderPipelineAsset。
    • 这会创建一个新的渲染管线资产。
  3. 配置渲染管线

    • 打开Edit > Project Settings > Graphics。
    • 在Scriptable Render Pipeline Settings字段中,将刚才创建的渲染管线资产拖动到此处。
  4. 转换材质和设置

    • 如果从内置渲染管线转换到URP或HDRP,Unity会提示您升级材质和项目设置。按照提示进行操作,以确保材质和设置与新的渲染管线兼容。

三、如何对资产进行转换

有时候在开发URP和HDRP项目时,我们需要将内置渲染管线的资产转换为新的渲染管线。

  1. 逐个转换

Unity提供了一个内置工具,可以自动将内置材质转换为URP材质。

首先需要安装URP或HDRP包,并创建相应的渲染管线资产。

接下来,打开Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials。

这个工具将扫描项目并自动转换所有兼容的材质和着色器。

  1. 批量转换

打开Window > Rendering > Universal Pipeline Converter。

在转换的时候需要谨慎,因为这个过程是不可逆的。可能会造成材质丢失,一些资产无法正确显示。

img.png

四、参考资料

  1. 大模型
  2. Unity Render Pipelines | What are they and which one to use UPDATED 2023 (youtube.com)

文章作者: BITBCI
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BITBCI !
  目录