Unity项目升级到HDRP后模型变成紫红色怎么办?

Unity的HDRP(高分辨率渲染管道)是专注于为开发者提供一种实现高清分辨率视觉效果的工具。

该工具的设计基于三个原理:

l 统一连贯的光照效果

l 独立于渲染路径的要素

基于物理的渲染依赖于三个支柱:照明、材质和摄相机。照明和材质依赖于物理相互作用,它们之间有一个明确的解耦关系,以在各种照明条件下获得一致的效果。摄像机决定了打光的最终效果将如何显示在屏幕上。目的是让艺术家更容易获得一个看似合理的打光效果。

统一打光是指场景中的所有对象和参与媒体都应该接收到相同的光源照射。不透明、透明或体积材料之间不应有任何区别。连贯照明意味着一种材料必须与任何光源(反射探头、面光源……)产生的照明正确地相互作用,即使例如被贴花修改过也不应该破坏这种连贯性。连贯的打光可以使外观更连贯。

在实时渲染中使用了各种渲染通道:延迟/前进、单通道/多通道、平铺/集群等等……在游戏开发中,由于渲染路径的选择限制了图形功能的设置是很常见的。对于HDRP来说,无论渲染路径如何,它都可以试图获得相同的图形特征集。而最终的结果是渲染路径的选择仅仅基于性能表现,而不是游戏所需的特性。

在HDRP的发展过程中,Unity尽可能遵循这些原则进行产品的研发。

HDPR可以应用于什么项目之中?

HDRP的目标是高端电脑和游戏主机,并优先考虑惊人的高清晰度视觉效果。Unity希望将3A图形特性带到更小的团队手中。HDRP会假设至少有一个DX11级别的功能集,并大量使用计算着色器。这里的权衡是,HDRP不会在功能较弱的平台上工作。目标支持的API有D3D11、D3D12、GNM (PlayStation 4)、Metal和Vulkan。HDPR的VR支持正在计划中,但在目前可用的预览版中还没有实现。

此外,HDRP为我们带来了一整套全新的功能和行为,你需要学习如何使用他们。Unity还专门为使用者提供了一个转换工具,用来将一个项目从Unity内置升级到HDRP中去,但它只能帮助你快速重新设置材料和纹理。所有的照明,所有的后期处理,场景设置,图形设置和自定义着色器都需要重新处理。

HDRP推出了一种新的照明架构:它使用了混合延迟/向前平铺/集群渲染器。这些词语意味着它可以比Unity内置的渲染更好地缩放场景中的灯光数量。这种新的照明架构十分注重性能。

调试模式可视化平铺灯列表

此外,HDRP还附带了各种额外的灯光属性和一个新的灯光编辑器:可以淡化灯光,只影响漫射或镜面照明,或者使用色温来设置灯光的颜色。聚光灯现在可以控制内部角度,并且可以有不同的形状(圆锥形、方形或金字塔形)。支持彩色cookies。

HDRP允许使用实时区域灯(目前没有阴影或烘焙),像矩形灯

最后,光遵循物理逆平方衰减并使用物理光单位。灯光和灯光控制是完全线性的,不再有Unity内置的“伽马模式”。太阳光强度是根据地面上的勒克斯指数来定义的,点和光斑是在流明中定义的。

在基于图像的照明方面,反射探头在HDRP得到了很大的提升。现在可以使用定向边界框或球体形状,代理形状(接近场景几何的区域)和影响形状(像素受影响的区域)是分开的,有各种影响衰减选项(每个面,基于正常方向……)。

HDRP有自己版本的标准着色器,名为灯光着色器。灯光着色器具有大量的功能,拥有比Unity内置渲染更丰富的材质。新增了双面选项,并可以自动连接到全局照明。先进的效果,如视差遮挡映射或镶嵌效果现在一键可用!

但是材质渲染最强的附加就是它的光照模型。

HDRP使用下面提到的BRDF:镜面层为各向同性多散射GGX,漫射层为迪士尼漫射。其与Unity内置渲染的区别在于多散射部分。

金色金属球从光滑(左)到粗糙(右):

默认参数化是金属/平滑度,但是可以在同一个着色器中切换到镜面反射颜色/平滑度。

HDRP允许我们增强或替换这个初始模型。各种选项可用于:

l 用各向异性GGX代替各向同性GGX

l 将表面下散射添加到迪士尼漫反射中

l GGX加一件透明外层

照明模型的这种变化帮助我们实现各种复杂的外观。

HDRP还允许一套新的透明材料选项,如先背面渲染,然后正面渲染,以帮助排序,深度后传递,帮助透明的景深效果等。

基于灯光着色器,HDRP提供了分层灯光着色器,允许将各种灯光着色器混合在一起。

对HDRP的另一个补充是贴花支持。贴花支持不透明和透明材料两种材料,并正确影响全局照明(光照贴图/光探针)的采样。

对HDRP的另一个补充是贴花支持。贴花支持不透明和透明材料两种材料,并正确影响全局照明(光照贴图/光探针)的采样。

HDRP最重要的特性加入是它的调试工具。调试对于理解数据创作和性能问题极其重要。

HDRP提供了一个新的可定制的调试窗口,允许控制调试视图模式和渲染管道设置。这个调试窗口既可以在Unity的编辑器中使用,也可以在任何播放器中使用。这意味着你现在可以在PlayStation 4等任何目标设备上使用所有的调试功能。

调试窗口允许显示不透明和透明材质的任何材质属性,无论是延迟还是正向渲染路径。

它允许照明调试视可视化:仅漫射照明,仅镜面照明。它还允许您覆盖整个场景的属性,如法线、反照率、平滑度。它可以显示中间渲染目标,如运动矢量,深度缓冲。它可以使用光照贴图或镶嵌来突出对象等属性,具有NaN检查器等。

一个有趣的模式也是一个拾色器模式,可以在后期处理之前查看当前画面值或HDR值。

调试窗口可以很容易地进行扩展,以支持你的游戏可能需要的任何调试工具,如人工智能或动画调试工具。

HDRP拥有一个不同于Unity内置渲染管道的新功能。

HDRP的延迟路径和渲染路径支持相同的功能集。表面下散射、屏幕空间环境遮挡、贴花对两种路径都有效。不需要选择特定的渲染路径来使用特定的功能。

HDRP使用摄像机进行相对渲染。这意味着即使远离真实世界也可以有很好的渲染精度。这对HDRP使用的所有着色器都有影响。

相机可以控制使用哪种照明架构(可以在场景中混合延迟和正向渲染器路径)以及为此渲染启用哪些功能。可以禁用雾、阴影、后处理等。

要设置场景设置,有一个基于容量设置的全新系统,类似于后期处理。场景设置(天空、阳光层叠阴影、屏幕空间阴影接触等)现在可以按体积设置,可以对参数进行插值使体积之间平滑过渡。

天空和雾也有一个新的选项,如基于高度的雾或由天空颜色着色的雾。雾会影响不透明和透明的材料。

最后,HDRP使用一个专用的渲染目标分配系统,以避免在调整屏幕大小时反复重新分配。这避免了额外的渲染目标分配,例如在进行动态解析时。

目前的一个重要限制是,HDRP不兼容用Unity粒子系统创作的亮粒子,只有不亮粒子是兼容的。

还有,内置地形系统有各种工件。

至于所有的SRP,以前在覆盖层渲染的任何东西,比如灯光下的镜头眩光,现在都不支持。因为Grabpass已经不存在了。

体积照明的区域灯将根据Unity实验室团队的研究进行改进。

基于物理的相机也是未来发展的重中之重。

HDRP作为Unity推出的一个全新的渲染管道,试图尽可能提高当前一代游戏的视觉质量。

目前的缺点是使用此软件有着相当长的学习曲线,因为与当前的内置渲染管道有显著的差异。

但优点也是显而易见的,通过全新的高分辨率渲染管道,游戏开发者可以将游戏的画面提升到一个全新的高度,这不仅保证了游戏的高质量也满足了游戏消费者对于游戏画面的需求。试想一下有哪个玩家会拒绝高画质的游戏呢?

在玩 HDRP 的内置 Lit 着色器的时候,对它的 Mask Map 贴图很感兴趣,感觉似乎能够为材质添加很多细节

查了下文档,发现 Mask Map 是分 RGBA 通道作为灰度蒙版,为材质添加金属度、环境光遮蔽、细节贴图蒙版与粗糙度效果的:

让我最感兴趣的是 A 通道的粗糙度蒙版,就像上图那样,能营造出非常类似物体表面的水雾的感觉。

恩 .. 如果我用 Shader 让这个 A 通道做一个平移,再加点噪声,说不定就能做出来类似下雨时物体表面潺潺流水的效果?

使用 ShaderGraph 的 Time 与 Tilling and Offset 节点将 UV 做一个平移,加上线性噪声节点做一些扭曲,添加一点随机性。最后直接复用原材质的 Mask Map 的 A 通道并应用扰动。用一个布尔来控制是否应用效果。添加各种属性值就不说了。应该还不错。

在实现过程中,由于 HDRP 的内置 Lit 着色器没有 ShaderGraph 版本,就从论坛上找了一个官方的 Lit 着色器的 ShaderGraph 版本,基于它进行修改。

整体(糊也没事 .. 大部分是官方给的,用于实现 Lit 的特性,核心就那上面的一小点)

核心效果实现(就这几个节点 .. 真的挺简陋的 ..)

这是个很粗糙的效果,用到的节点也很少,之后要实际应用的话肯定要补充很多细节,比如单独做水流的 Mask 应该会好很多

个人认为的效果优缺点:

和网上其他的雨水效果比起来,对性能影响应该蛮低的。加上天气效果以及一些点缀应该也能实现不错的效果

简单啊(连我都能做出来 ..),直接复用材质自己的 Mask Map 也懒省事了

因为不同材质的 Mask Map 不同,所以这个效果也会带有各自材质的特点,不会说效果千篇一律看着疲劳

对于较为光滑的平面类物体感觉效果比较一般

因为复用了原材质的 Mask Map,应用效果时材质自身的粗糙度会丢失,不太好

可远观而不可亵玩(bushi),在远处看起来还不错,如果离得太近的话就能比较明显的看出来违和的平移与噪声

总之还是个很粗糙的效果,不过这种思路应该还是有点意思的,必能活用于下一次 ..

把着色器图与材质传到 Github 上了,项目太大就不传了,直接拖入 Unity 窗口即可。使用贴图也是 HDRP 自带的示例。

我要回帖

更多关于 unity高版本转低版本 的文章

 

随机推荐