UE5中实现后处理深度描边

举报
UE5技术哥 发表于 2024/03/21 21:04:20 2024/03/21
【摘要】 后处理深度描边可以通过取得边缘深度变化大的区域进行描边,一方面可以用来做角色的等距内描边,避免了菲尼尔边缘光不整齐的问题,另一方面可以结合场景扫描等特效使用,达到更丰富的效果

后处理深度描边可以通过取得边缘深度变化大的区域进行描边,一方面可以用来做角色的等距内描边,避免了菲尼尔边缘光不整齐的问题,另一方面可以结合场景扫描等特效使用,达到更丰富的效果:

Q1.png

后来解决了开启TAA十字线和锯齿问题,若遇到这2个问题请至文章底部查看。
参考:https://www.bilibili.com/video/BV11e4y1n7dD

1.创建材质函数
我们通过一种卷积算子计算边缘,先创建该算子的材质函数

Q2.png


2.编写材质函数蓝图
该材质蓝图传入偏移值,输出5个UV采样坐标信息。

Q3.png


3.编写核心后处理材质
新建材质球PPS,设置材质球参数类型为Post Process(后处理材质球)。

Q4.jpeg

连接材质球节点,计算描边结果并与场景颜色合并。

Q5.png

将后处理材质挂载于Volume上:

Q6.png


因为直接使用的场景深度,这时候整个场景都被深度描边了:

Q7.png


4.使用自定义深度优化
这不是想要的效果,我们将场景深度改为自定义深度。
框选材质球PPS内的所有SceneTexture:SceneDepth节点,进行修改。

Q8.png

多选所有需要深度描边的物体,勾选Render CustomDepth Pass:

Q9.png

最终完成描边效果。

补充,开启TAA时会有十字线的问题,可缩小该系数解决:

Q10.jpeg


关于锯齿问题,可以将后处理的执行位置移动至ToneMapping之前,让引擎自带抗锯齿来进行处理:

Q11.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。