UE4 渲染半透明物体进深度剔除(复制物体)

在渲染半透明材质时会出现半透明物体重叠的现象,用深度剔除的方式可以解决。

很多教程有详细讲解,可以参考附录。

主要是在此基础上增添一个render in main pass 和Custom depth pass 勾选时候出现的显示错误。

UE4 渲染半透明物体进深度剔除(复制物体)_第1张图片

 UE4 渲染半透明物体进深度剔除(复制物体)_第2张图片

 

原理

利用CustomDepth 进行半透明物体深度写入,将Custom Depth 和Pixel Depth 相比较,如果Custom Depth 小于Pixel Depth,相减以后为负数剔除,便可解决重叠问题。

优化方法:可以参考Deep Peeling 的方式,在每一层透明物体上做混合。或者根据相减之后得到的厚度信息做颜色的变化。

在UE4中实现Depth Peeling - 知乎 (zhihu.com)

操作

 首先复制一个模型,将复制出来的模型进行以下设置:

1.关闭Render in Main Pass

2.关闭Depth Pass

3.开启Custom Depth

UE4 渲染半透明物体进深度剔除(复制物体)_第3张图片

UE4 渲染半透明物体进深度剔除(复制物体)_第4张图片

4.在要剔除的半透明物体的材质里输入以下节点:

UE4 渲染半透明物体进深度剔除(复制物体)_第5张图片

 UE4 渲染半透明物体进深度剔除(复制物体)_第6张图片

5.重叠模型

可以将Custom Depth 偏移一个单位距离,这样防止PixelDepth 和Custom Depth 相等时候剔除表面。

bug解决:

当出现黑色时:

是因为原本的第二个物体(渲染深度的不透明物体)勾选了render in Depth Pass

解决方法:取消勾选render in Depth Pass,只需要将custom Depth pass勾选

UE4 渲染半透明物体进深度剔除(复制物体)_第7张图片

UE4 渲染半透明物体进深度剔除(复制物体)_第8张图片

附录

 参考文章:

UE中的各种depth的解释及应用 | 不思議な箱 (fushigi-hako.site)

UE4里的自定义深度功能 - Bill Yuan - 博客园

技术博客 | UE4透明材质的理解和应用

https://mp.weixin.qq.com/s/nKVC3GGyb05FvYbCLkQrbg?st=&vid=1688857671235409&cst=0D9DA1EDBE7A5BE5B6C2C6FF4218936B9CB66752883DBC835FD5C4C3FD12E1339A77003FA42A8482156C3DD912698209&deviceid=16c2d11b-244c-4c5d-a72e-8c68955596b9&version=3.1.11.3009&platform=win

材质学习笔记之体积感半透 - 哔哩哔哩 (bilibili.com)

你可能感兴趣的:(UE4,学习笔记,unreal)