【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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解