【UE5】可以实时绘制的体积渲染 【第三章 体积纹理绘制 - 3.绘制体积】
紧接上文!
Tip
所说的Pawn
指的是角色蓝图,也就是BP_FirstPersonCharacter
VolumePainter
修改 Traces Target
进入VolumePainter
的Traces Target
函数。做如下修改:
增加的内容为①和②,他们的作用分别是:
- ① 增加一个序列和判断:这一部分的目的是让我们能够控制是否开启Debug绘制。在函数中新增一个布尔变量,其默认值设置为true(真)。
- ② 增加函数返回:为画笔计算相对于Cube的点“位置”和“半径”。
创建笔刷材质PaintMaterial
在 Beginplay
为笔刷材质 M_VolPaint
创建动态实例 PaintMaterial
:
创建SetPaint
新建函数 SetPaint
,它负责将笔刷参数同步设置到实例材质:
对应笔刷材质中三个变量:
创建DrawRT
新建函数 DrawRT
,他和上一篇临时制作的 BP_VolPainter
一样,负责将画笔绘制到渲染目标:
串联功能
我们将三个函数连接到Tick
:
其中黄色的是新增的变量。其中Draw
是绘制的开关。
处于安全性考虑,执行每一步前,先判断了资产是否存在。(因为不能假定资产是按顺序生成)
这时,你可能会注意到,变量 Paint Location
需要从Pawn获取实时数据。稍后解决这个问题。
Pawn接口
我们需要制作两个函数,方便Pawn调用功能进行设置。
创建SetVolmePainter
在VolumePainter中
在VolumePainter
中,创建函数SetVolmePainter
,新建了变量PaintScene
,类型为场景组件。
在Pawn中
在Pawn
中,使用SetVolmePainter
,将参数连入,对VolmePainter
进行设置。
将CubeMesh、渲染目标、代表笔刷的Scene连入:
创建DrawVolmePainter
在VolumePainter中
在VolumePainter
中,创建函数DrawVolmePainter
,它负责让Pawn设置画笔
在Pawn中
在Pawn
中,使用DrawVolmePainter
设置笔刷。
不会做输入?
复制一个IA_Jump
,起名为IA_Draw
打开IMC_Default
,将IA_Draw
加入并指定为左键:
获取笔刷位置
我们现在可以通过Scene对象直接获取位置了:
测试
来到 Pawn
,在Beginplay后面,对笔刷和画板进行一次初始化:
看看现在的效果
连续绘画
使其可以连续绘画非常简单,打开笔刷材质 M_VolPaint
,增加画板RT_VolTexture
:
绘制:
擦除:
Tip:做擦除,就是将笔刷密度改成负数
这篇教程终于告一段落了!后续还会更新一些针对这个体积渲染的妙妙玩法扩展。
例如自定义笔刷,体积的颜色绘制等等。
现在你们可以尝试把功能做到第一人称武器的炮弹上!
到时候见~
原文地址:https://blog.csdn.net/Utwelve/article/details/143434323
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!