UE5中实现后处理深度描边

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

后来解决了开启TAA十字线和锯齿问题,若遇到这2个问题请至文章底部查看。

参考:https://www.bilibili.com/video/BV11e4y1n7dD


1.创建材质函数

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

2.编写材质函数蓝图

该材质蓝图传入偏移值,输出5个UV采样坐标信息。

3.编写核心后处理材质

新建材质球PPS,设置材质球参数类型为Post Process(后处理材质球)。

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

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

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

4.使用自定义深度优化

这不是想要的效果,我们将场景深度改为自定义深度。

框选材质球PPS内的所有SceneTexture:SceneDepth节点 ,进行修改。

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

最终完成描边效果。


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

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

相关推荐
繁花与尘埃4 小时前
HTML5简介与基本骨架(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
笔记·学习·html5
Rock_yzh5 小时前
AI学习日记——卷积神经网络(CNN):完整实现与可视化分析
人工智能·python·深度学习·神经网络·学习·cnn
Test.X6 小时前
学习16天:pytest学习
学习·pytest
XISHI_TIANLAN6 小时前
【多模态学习】Q&A6: 什么是MOE架构?Router Z Loss函数是指什么?负载均衡损失(Load Balancing Loss)又是什么?
学习·算法·语言模型
Diligence8156 小时前
计算机网络学习总结(二)应用层
学习·计算机网络
小墨宝7 小时前
web前端学习LangGraph
前端·学习
尘似鹤7 小时前
微信小程序学习(五)
学习·微信小程序·小程序
计算机毕业设计小帅7 小时前
【2026计算机毕业设计】基于微信小程序的英语在线学习系统
学习·微信小程序·毕业设计·课程设计
千忧散8 小时前
Unity Socket学习笔记 (三)TCP&UDP
笔记·学习·unity·c#
今天只学一颗糖8 小时前
Linux学习笔记--触摸屏驱动
笔记·学习