天天看点

HDRP UI上渲染模型的解决方式及常见问题综述

HDRP UI上渲染模型的解决方式及常见问题

  • 综述
    • 1.RT+RawImage
    • 2.CameraStacking/Compositor

综述

这是个很常见的需求,在SRP中一般有两种方式,分别是CameraStacking和使用RenderTexture缓存纹理,输出到RawImag进行渲染的方式,但由于SRP的版本迭代,当前主流的UnityLTS版本所适配的URP/HDRP版本都有些老旧,甚至没有CameraStacking功能,所以经常需要使用常规的RT+RawImage方案,过程中又会遇到SRP中的各种问题。笔者会基于不同的版本进行讲解。

1.RT+RawImage

Unity:.2019.4.10f

HDRP 7.3.1(verified version)

由于官方消息显示2020.2版本才会正式加入HDRP Compositor,而笔者为了稳定性使用的都是LTS版本进行开发,所以只能使用常规方案。

  • 新建RT相机,RawImage,先使用默认设置
    HDRP UI上渲染模型的解决方式及常见问题综述
  • 区分SkyFog以及PPV2的Layer,同时修改MainCamera的VolumeLayerMask,保证GameInspector的显示正确
    HDRP UI上渲染模型的解决方式及常见问题综述
    HDRP UI上渲染模型的解决方式及常见问题综述
    HDRP UI上渲染模型的解决方式及常见问题综述
  • 对于RTCamera同样也要设置VolumeLayerMask,每一层Layer都对应着相应的图像处理,如果遭遇了类似的问题,很有可能是Layer设置有误所致,ProbeLayerMask类似,不再赘述
变更前 SkyFog PPV2
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
  • 剔除Background显示
通常做法 减去Fog
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
通常设置Background为None,但是HDRP中存在Volume,所以需要剔除SkyFog部分(也可能是其他Layer,需要一一排查) 去除多余的Layer后,仍然有莫名其妙的图像存在于下层,根据FrameDebugger分析,这是其他相机(MainCamera)纹理叠加所致,目测是HDRP的相机规则
  • 所以要换个思路,采用

    Color背景

    ,再用

    HDRenderPipelineAsset.ColorBufferFormat

    设置解决.
切换为Color背景 修改ColorBuffer
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
HDRP UI上渲染模型的解决方式及常见问题综述
需要开启A通道的Buffer用以剔除Background
HDRP UI上渲染模型的解决方式及常见问题综述
背景色 Alpha可以调节Background的透明度

2.CameraStacking/Compositor

笔者所用版本无法使用,先占个坑。