【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内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF