可以对照着现有文档观看,如果有误,已现有官方文档为准

文章目录

  • Converting a Project from the Built-in Renderer to the High Definition Render Pipeline / 将项目从内置渲染器转换为高清渲染管线
  • Setting up HDRP / 设置HDRP
  • Upgrading Materials / 升级材质
  • Converting Materials manually / 手动转换材质
  • Mask Map
  • Detail maps
  • Adjusting lighting / 调整灯光照明
  • Post-processing /后处理
  • Result

Converting a Project from the Built-in Renderer to the High Definition Render Pipeline / 将项目从内置渲染器转换为高清渲染管线

高清晰度渲染管线(HDRP)使用了一组新的着色器和照明单元,两者均与内置渲染器不兼容。 要将Unity项目升级到HDRP,您必须首先转换所有的材质和阴影,然后相应地调整各个灯光设置。

本文档说明了如何将3D With Extras模板项目转换为HDRP,但是您可以使用相同的工作流程来转换自己的项目。 要遵循本文档并升级3D With Extras项目,请创建一个使用3D With Extras模板的项目。 去做这个:

  1. 打开Unity Hub。
  2. 在项目选项卡中,选择【新建】。
  3. 在模板选择种选择 3D With Extras。
  4. 输入项目名称并设置Unity的位置以将项目保存到该位置。
  5. 单击【创建】。
  6. Unity编辑器将打开,如下所示:

Setting up HDRP / 设置HDRP

首先,要安装HDRP,请将High Definition RP软件包添加到Unity项目中:

  1. 在Unity编辑器里打开包管理器(Package Manager)窗口:(menu: Window > Package Manager)
  2. 找到并选择 High Definition RP包,然后点击安装(Install)

现在可以在项目中使用HDRP。 请注意,当您安装HDRP时,Unity会自动将两个特定于HDRP的组件附加到场景中的GameObjects。 它将HD Additional Light Data组件附加到Lights,并将HD Additional Camera Data组件附加到Cameras。 如果未将项目设置为使用HDRP,并且场景中存在任何HDRP组件,则Unity会引发错误。 要解决这些错误,请参阅以下有关如何在Project中设置HDRP的说明。

要设置HDRP,请使用“渲染管道向导”。

  1. 打开渲染管道窗口(menu Window > Render Pipeline > HD Render Pipeline Wizard)
  2. 在Configuration Checking部分中,转到HDRP选项卡,然后单击Fix All。 这可以解决项目中的每个HDRP配置问题。

现在已在您的项目中设置了HDRP,但是您的场景无法正确渲染,并使用洋红色错误着色器显示GameObjects。 这是因为场景中的GameObjects仍使用为内置渲染器制作的着色器。 若要了解如何将内置着色器升级到HDRP着色器,请参阅“升级材质”部分。 HDRP已经有了自己的后处理实现,不再支持后处理包。 如果要转换3D With Extras项目,或者您自己的项目使用“后处理”包,请从项目中删除“后处理”包。 去做这个:

  1. 在Unity编辑器里打开包管理器(Package Manager)窗口:(menu: Window > Package Manager) 2。 找到并选择 Post Processing包,然后点击移除(Remove)

有关如何向模板项目添加和自定义后期处理效果的详细信息,请参见后期处理部分。

Upgrading Materials / 升级材质

要将场景中的材质升级为与HDRP兼容的材质,请执行以下任一操作:

  1. Upgrade Project Materials to High Definition Materials::将项目中的所有兼容材质转换为HDRP材料。 2.Upgrade Selected Materials to High Definition Materials: 将当前在“项目”窗口中选择的每个兼容材质转换为HDRP材质。

您可以在以下任一位置找到这些选项:

  • 菜单栏种打开:**Edit > Render Pipeline **。
  • Edit > Render Pipeline里面拥有HD Render Pipeline Wizard窗口内的部分用于快速迁移项目的按钮链接
  • HD Render Pipeline Wizard 窗口打开:(Window>Render Pipeline>HD Render Pipeline Wizard)

此过程无法自动将自定义材质或着色器升级到HDRP。 您必须手动转换自定义材质和自定义着色器。

Converting Materials manually / 手动转换材质

HDRP材质转换器自动将内置的标准材质和非发光材质分别转换为HDRP发光材质和非发光材质。这个过程使用叠加功能将颜色通道混合在一起,类似于在Photoshop等图像编辑软件中使用的过程。为了帮助您手动转换自定义材质,本节将描述从内置材质创建的材质的转换器的映射。

Mask Map

内置着色器到HDRP着色器的转换过程中将内置标准着色器的不同材质贴图分别合并合并到“ HDRP Lit Material”中的Mask Map的分别的RGBA通道中。有关每个贴图进入哪个颜色通道的信息,请参见Mask Map。

Detail maps

内置着色器到HDRP着色器的转换过程将内置标准着色器的不同Detail maps组合到HDRP Lit Material中Detail maps的分别的RGBA通道中。 它还增加了平滑度细节。 有关每个贴图进入哪个颜色通道的信息,请参见Detail maps。

Adjusting lighting / 调整灯光照明

HDRP使用物理光单元来控制光的强度。 这些单位与内置渲染管线使用的任意单位都不匹配。

对于光强度单位,定向光源使用勒克斯(Lux),所有其他光源可以使用流明(Lumen),坎德拉(Candela),EV或模拟一定距离的勒克斯(Lux))。

要在HDRP项目中设置照明,请执行以下操作:

  1. 将默认的Sky Volume添加到场景中以设置环境照明(menu: Window > Rendering > Lighting Settings)。
  2. 将 Environment Lighting 设置为使用新的sky:
  1. 打开照明窗口 (menu: Window > Rendering > Lighting Settings)
  2. 对于Profile属性,选择 Sky and Fog Volume使用的相同的 Volume Profile。
  3. 对于Static Lighting Sky属性,选择PhysicallyBasedSky。
  4. (可选)如果您不希望Unity在本节中进行其余更改时重新烘烤场景的灯光,则可以禁用窗口底部的Auto Generate复选框
  1. 当前,阴影质量很差。要提高其质量,可以更改阴影属性:
  1. 新建一个Global Volume物体 (menu: GameObject > Volume > Global Volume),并将其命名为Global Settings
  2. 为新建的这个Volume 创建一个新的Volume Profile。为此,请打开该Volume的Inspector面板 ,然后单击 【新建(New)】按钮。
  3. 添加一个Shadows override (Add Override > Shadowing > Shadows),启用Max Distance并将其设置为50
  1. 在表示太阳光(这是定向光游戏对象上的光组件 Directional Light)上,将Intensity (强度)设置为100000,将Color(颜色)设置为白色。 然后,要查看天空中的太阳,请转到General (常规)面板,启用More Options(更多选项),并将Angular Diameter(角直径),设置为3。
  2. 场景现已经曝光过度。 要解决此问题,请选择在步骤3a中创建的Global Settings 游戏对象(GameObject)),然后向其Volume 组件(component )添加Exposure override替代(Add Override > Exposure)。 然后,将Mode设置为Automatic。
  3. 要刷新exposure,请转到Scene视图并启用Animate Materials。
  4. unity 项目hdr渲染管线占用电脑内存大吗 unity怎么加hdr_着色器

  5. 纠正Light cookie,因为HDRP支持彩色light cookie,而内置light cookie使用仅包含alpha的纹理格式:
  1. 在Project窗口,选择 Assets > ExampleAssets> Textures > Light_Cookies > Spotlight_Cookie。
  2. 在Inspector窗口,将Texture Type 从Cookie改为Default。
  3. 设置Wrap Mode为Clamp。
  1. 修复construction Light:
  1. 在Hierarchy窗口,选择ExampleAssets > Props > ConstructionLight > Spot Light并在Inspector窗口查看灯光组件(Light)
  2. 改变Intensity(强度)到17000 Lumen(流明),这代表两个8500流明灯泡。
  3. 在Emission部分,启用More Options。
  4. 开启Reflector复选框,这模拟了聚光灯后面的反射表面来调整视觉强度。
  1. 制作一个灯泡发光材质
  1. 在Project窗口,选择Assets/ExampleAssets/Materials/Lightbulb_Mat.mat
  2. 在Inspector窗口的Emission Inputs部分,启用Use Emission Intensity,设置Emissive Color为白色,设置Emission Intensity为8500 Luminance
  3. 最后,如果你在第二个步骤里禁用了Auto Generate,你可以前往Lighting窗口点击Generate Lighting ,也可以重新启用Auto Generate

Post-processing /后处理

HDRP不再支持Post Processing包,而是自己做了后期处理的实现,要将场景转换为HDRP后处理:

  1. 在Hierarchy窗口,删除Post-process Volume游戏物体(GameObject)
  1. 如果你的项目里使用了后处理包API编辑了后处理效果,你需要更新你的脚本,使用心得后处理效果。
  1. 创建一个新的Global Volume游戏物体(GameObject)(menu: GameObject > Volume > Global Volume)并且将其重命名为Post-processing,选择这个GameObject在Inspector窗口,制定好Profile字段属性后,你可以通过点击Add Override在Post-processing中看到所有后处理效果。
  2. 添加一个Tonemapping override到Volume(Add Override > Post-processing > Tonemapping),然后启用Mode并且将它设置为ACES
  3. 添加一个Bloom override到Volume(Add Override > Post-processing > Bloom),然后启用 Intensity(强度)并且设置为0.2,请注意,Bloom的结果和Post Processing包的结果有些不一样,这是因为HDRP的Bloom效果在物理上是准确的,并且正确模拟相机镜头的光晕效果。
  4. 添加一个Motion Blur(运动模糊) override到Volume(Add Override > Post-processing > Motion Blur)然后启用Intensity(强度)并且设置为0.1
  5. 添加一个Vignette override到Volume(Add Override > Post-processing > Vignette)然后设置以下属性的值:
  1. 启用Intensity并且设置值为0.55。
  2. 启用Smoothness并且设置值为0.4。
  3. 启用Roundness并且设置值为0。
  1. 添加一个Depth Of Field override(景深)到Volume(Add Override > Post-processing > Depth Of Field)然后设置以下属性的值:
  1. 启用Focus Mode(对焦模式)并且设置为Manual(手动)。
  2. 在Near Blur(近景模糊)部分,启用Start并且设置它为0,然后启用End并且设置值为0.5。
  3. 在Far Blur(远景模糊)部分,启用Start并且设置值为2,然后启用End并且设置值为10,请注意,这个视觉效果仅限于Game窗口视图可以看见。
  1. 最后,选择Global Settings GameObject(游戏物体)在Inspector窗口里查看,在Volume组件,添加一个Ambient Occlusion(环境光遮蔽)override(Add Override > Lighting > Ambient Occlusion),然后启用Intensity并且设置值为0.5。

Result

现在的场景,游戏窗口视图看起来应该像这样:

unity 项目hdr渲染管线占用电脑内存大吗 unity怎么加hdr_HDRP_02