【Unity开发小技巧】创建HDRP工程,把内置管线工程升级为HDRP工程

2023-10-23 20:10

本文主要是介绍【Unity开发小技巧】创建HDRP工程,把内置管线工程升级为HDRP工程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.通过模板创建HDRP项目工程

1.创建模板示例工程

2.单击High Definition RP

3.命名并创建项目

4.研究并学习后续开发

二.通过HdrpCore模块创建HDRP项目工程

1.通过Core模块快速构建HDRP的空项目工程

 2.依赖项自动加载并导入

 3.然后我们就可以在里面愉快的进行后续开发了

三.普通3D内置管线工程升级为HDRP工程

1.创建普通3D场景

 2.设置HDRP

1.安装hdrp依赖项

2.修复冲突报错

 3.创建hdrpAsset资源​编辑

4.着色器冲突材质失效

3.Upgrading Materials升级材质

4.手动转换材质

5.Adjusting lighting调整灯光

1.添加skyandFog Volume

3.修改阴影属性 

6.Post-process后期处理

 6.结果


一.通过模板创建HDRP项目工程

unityHub给用户提供了HDRP的示例项目,用户可以直接创建演示示例项目,后续在里面进行自己的项目开发。

1.创建模板示例工程

打开 Unity Hub,转到Projects选项卡,然后单击New

2.单击High Definition RP

在Sample_Template部分中,单击High Definition RP

3.命名并创建项目

4.研究并学习后续开发

项目场景如下,然后我们就可以研究并学习这个示例工程,也可以新建场景进行我们的后续开发

二.通过HdrpCore模块创建HDRP项目工程

1.通过Core模块快速构建HDRP的空项目工程

 2.依赖项自动加载并导入

这个core会把hdrp工程所需要的依赖项自动加载并导入,默认创建了一个Outdoor场景,后续我们可以创建Indoor也可以创建默认

 3.然后我们就可以在里面愉快的进行后续开发了

三.普通3D内置管线工程升级为HDRP工程

以上两种模式是常规创建hdrp工程的方式,适合在立项初期和刚开始着手hdrp的时候使用,但是实际情况是很多开发者在开发初期并没有确定使用哪种渲染管线,而是在后面需要升级为hdrp这时候我们就需要自己手动导入hdrp工程所需要的依赖项。高清渲染管线 (HDRP) 使用一组新的着色器和照明单元,它们都与内置渲染器不兼容。要将 Unity 项目升级到 HDRP,您必须首先转换所有材质和着色器,然后相应地调整各个灯光设置。

1.创建普通3D场景

创建场景后简单设置一下场景内容

 

 2.设置HDRP

1.安装hdrp依赖项

在 Unity 编辑器中,打开 Package Manager 窗口(菜单:Window > Package Manager)。
查找并选择High Definition RP包,然后单击Install。

当您安装 HDRP 时,Unity 会自动将两个 HDRP 特定组件附加到场景中的游戏对象。它将HD Additional Light Data组件附加到 Lights,并将HD Additional Camera Data组件附加到 Cameras。如果您未将项目设置为使用 HDRP,并且场景中存在任何 HDRP 组件,则 Unity 会引发错误。

2.修复冲突报错

打开渲染管线向导窗口(菜单Window > Render Pipeline > HD Render Pipeline Wizard)。
配置检查部分,转到HDRP选项卡,然后单击全部修复。这修复了项目的每个 HDRP 配置问题

 3.创建hdrpAsset资源

4.着色器冲突材质失效

 HDRP 现在已在您的项目中设置,但您的场景无法正确渲染并使用洋红色错误着色器来显示游戏对象。这是因为场景中的游戏对象仍然使用为内置渲染器制作的着色器。如何解决稍后讲

3.Upgrading Materials升级材质

要将场景中的材质升级为与 HDRP 兼容的材质,请执行以下任一操作:
将项目中的所有兼容材质转换为 HDRP 材质
将项目窗口中当前选择的所有兼容材质转换为 HDRP 材质。
将场景中每个地形中的内置默认标准地形材质替换为HDRP 默认地形材质

 因为地面材质使用的是unity默认材质,这项操作可以直接修复材质兼容,但是此过程无法自动将我们自己的材质或着色器升级到 HDRP。您必须手动转换自定义材质和着色器。此外,由于 HDRP 支持更多的高度图置换技术和解压缩选项,因此该过程无法正确升级高度图相关属性。这意味着您的高度贴图材质可能看起来不正确。如果升级使用高度图的材质,请修改材质的AmplitudeBase属性,直到结果更接近内置渲染器版本。

此过程也无法升级粒子着色器。尽管 HDRP 不支持粒子着色器,但它确实提供了一些与内置粒子系统兼容的着色器图。这些着色器图的工作方式与内置粒子着色器类似。要使用这些 Shader Graphs,请导入Particle System Shader Samples示例

4.手动转换材质

1.HDRP 材质转换器自动将内置标准和无光照材质分别转换为 HDRP 光照和无光照材质。该过程使用叠加功能将颜色通道混合在一起

2.Mask maps遮罩贴图

Built-in Shader 到 HDRP Shader 的转换过程将 Built-in Standard Shader 的不同 Material 贴图组合到 HDRP Lit Material中遮罩贴图的单独 RGBA 通道中,有关每个贴图进入哪个颜色通道的信息请 ---参考

3.Detail maps详细细节贴图

Built-in Shader 到 HDRP Shader 的转换过程将 Built-in Standard Shader 的不同细节贴图组合到 HDRP Lit Material中细节贴图的单独 RGBA 通道中。它还增加了平滑细节。 有关每个贴图进入哪个颜色通道的信息请 ---参考

5.Adjusting lighting调整灯光

hdrp使用Physical light units物理灯光单元这些单位与内置渲染管线使用的所有单位不匹配。对于光强度单位,定向灯使用勒克斯,所有其他灯光可以使用流明、坎德拉、EV,或在一定距离处模拟勒克斯。要在 HDRP 项目中设置照明

1.添加skyandFog Volume

将默认的天空体积添加到场景以设置环境照明(菜单GameObject > Volume > Sky and Fog Volume)2.设置环境光照

打开 Lighting 窗口(菜单:Window > Rendering > Lighting Settings);
Profile属性,选择Sky and Fog Volume 使用的相同Volume Profile ;
对于静态光照天空属性,选择PhysicallyBasedSky

3.修改阴影属性 

1.创建一个新的Global Volume GameObject(菜单:GameObject > Volume > Global Volume)并将其命名为Global Settings
2.为此卷创建一个新的卷配置文件。为此,请打开卷的检查器并单击新建按钮

3.添加阴影覆盖(Add Override > Shadowing > Shadows),然后启用Max Distance并将其设置为200

 4.设置Directional Light
Intensity设置为100000,将Color设置为白色。然后,要查看天空中的太阳,请转到“形状”部分并将“角直径”设置为3


5.场景现在过度曝光。要解决此问题,请选择您在步骤3a中创建的Global Settings GameObject并将Exposure override 添加到其 Volume 组件(Add Override > Exposure)。然后,将模式设置为自动

6.Post-process后期处理

1.创建一个新的Global Volume GameObject(菜单:GameObject > Volume > Global Volume)并将其命名为“ Post-processes ”。当您在 Volume Inspector 中选择Add Override时,您可以在Post-processing子菜单中找到所有后期处理。

 2.将Tonemapping覆盖添加到 Volume(Add Override > Post-processing > Tonemapping)然后启用Mode并将其设置为ACES

3.将Bloom覆盖添加到 Volume(Add Override > Post-processing > Bloom),然后启用Intensity并将其设置为0.2。请注意,bloom 的结果与 Post Processing 包中的结果不同。这是因为 HDRP 的光晕效果在物理上是准确的,并且模仿了相机镜头的质量。

4.将Motion Blur覆盖添加到 Volume(Add Override > Post-processing > Motion Blur),然后启用Intensity并将其设置为0.1

 5.将Vignette覆盖添加到卷(Add Override > Post-processing > Vignette),然后设置以下属性值,启用强度并将其设置为0.55;启用Smoothness并将其设置为0.4;启用圆度并将其设置为0

 6.将景深覆盖添加到体积(Add Override > Post-processing > Depth Of Field),然后设置以下属性值,启用Focus Mode并将其设置为Manual。在Near Blur部分,启用Start并将其设置为0 ,然后启用End并将其设置为 0.5,在Far Blur部分,启用Start并将其设置为2然后启用End并将其设置为10。请注意,此效果仅在 Game 视图中可见。

 7.最后,选择Global Settings GameObject 以在 Inspector 中查看它。在 Volume 组件中,添加一个Ambient Occlusion覆盖(Add Override > Lighting > Ambient Occlusion),然后启用Intensity并将其设置为0.5

 6.结果

这篇关于【Unity开发小技巧】创建HDRP工程,把内置管线工程升级为HDRP工程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270177

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.