Blueprints - Render Targets相关节点

一些以前的学习笔记归档;

UE4中的Render Target(以下简称RT)非常有用,比如需要与Mesh上的材质互动,最基础的思路为

在BP中,把Mesh赋予带有贴图参数(因为RT可以直接作为Texture输入到材质)的材质,还需要一个“笔刷”材质,这一般在初始化的时候就可以完成:

运行时新建一张RT(HeightField RT)赋予给Mesh上的Texture材质参数: 

触发相关事件后,改写笔刷材质的参数,再把笔刷材质Draw到HeightField RT上去,Mesh上的材质自然就变化而达成互动了:

注意在接触点有一个计算的过程,把贴图的UV位置转换为Mesh位置;笔刷材质是Additive的,每一次变化的时候,Draw到RT上去,由于没有变化的部分是透明的,所以不会覆盖RT上之前原有的信息,因此最后所表现的变化效果是累加的; 

 

以上为Draw Material to RT的思路,在游戏中的一些常用互动效果,如在画布上绘制图案的互动等,是使用材质配合BP直接在RT上绘制达成,主要思路是使用Begin Draw Canvas to Render Target节点把画布上的RT转成可绘制的Canvas对象,这样就能使用Draw Material节点把笔刷材质按特定的位置和大小绘制到Canvas上去了:

以上为把一张RT转为可绘制材质的“画布”对象,几个节点的配合使用;

在使用Begin Draw Canvas to Render Target转换一张RT后,可输出转换出的Canvas对象,Size值是RT的大小值;

使用Draw Material把材质绘制在RT上的时候,Render Material是绘制所用的材质,Screen PositionScreen Size的含义如下图,下图中绿色部分为可绘制的RT部分,箭头所指为Screen Position,蓝色框为Screen Size部分,也即为材质绘制上去的内容范围:

注意最后需要调用End Draw Canvas to Render Target来结束绘制;

其实Begin Draw Canvas to Render Target后Draw Material与直接Draw Material to Render Target最大的区别也就是Draw Material可以指定绘制在RT上的区域和位置

还有就是很常见的雪地材质互动效果,如能改变深度的雪地痕迹等;主要思路是把RT(RT_Capture)做为雪地材质中的一张Mask Texture,来区分痕迹部分和正常的雪地部分;而这张RT_Capture的信息来源是靠相关2D Capture来拍摄并判断所需要的信息(判断哪些特定的物件接触了雪地并写成为一张黑白Mask,其逻辑可写在2D Capture的Postprocess材质中),2D Capture拍摄特定的雪地区域(拍摄的信息经过了Postprocess的处理),不断的把变化的RT信息(RT_Capture)记录在一个新的RT(RT_Record)中(因为RT_Capture中的信息是不断刷新的,需要另一个RT来记录之前的信息),然后再把RT_Record中的信息累加到之前的Postprocess材质信息中,2D Capture再通过Postprocess材质把累加后的信息返写到RT_Capture中,这样雪地材质也自然随之变化了;


 

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoomGT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值