【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

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl