UE4 ZenGarden Rake 材质分析

ZenGarden Rake 材质分析

![image1.png][1]

今天要讨论的问题就是这个随着鼠标的拖动,能够形成痕迹的效果是怎么实现的

逻辑控制

![image2.png][2]

主要的逻辑控制实在这个actor里面,和之前的讨论一样,如果它被点击的花,会触发它的interaction
interface 事件。它会做如下的事情:

  1. 将点击点信息存储到LastHitResult中,并将HasLearned打开。

  2. 重置SplinePoint数组,LastHitResult加入数组(这个事情只在开始的时候和重置的时候做)。

  3. 判断新加入的点是否和之前的痕迹有关联(也就是是不是和之前的是连在一起的),如果不是的话,说明是从其他地方另开了一个线,那么就修改材质中的N1值为当前的坐标。如果是的话,那么说明是鼠标进行的拖动,是连续的,这个时候直接进行··时间相关的`TouchDeltaTime`和1`LastTouchTime`的设置,然后根据这个点和之前的点的距离与参数Segment的大小比较,判断是使用哪一个,最后更新数组和LastHitResult。

  4. 最主要的一步就是DrawSplineWithMesh

  5. 最后就是播放动画,音效等信息。

1.1DrawSplineWithMesh

我们主要来看一下DrawSplineWithMesh主要实现的逻辑有哪些:

![image3.png][3]

其首先是有一个针对segment片段的最大限度的判断,如果超过了这个,会对一开始的进行删除。

![image4.png][4]

之后,动态创建StaticMesh,并添加到Actor里,然后设置它的Translucent优先值。然后把新的组件添加到SplineMeshList,之后还有一个判断,最多有5个,如果多于5个的话,把第一个的材质参数值修改为现在的,而不是简单的删除再创建。如果是还有有到5个的话,动态的创建材质。然后传给材质参数值。

![image5.png][5]
具体的意义我们按下不表,基本的流程大概就这么多

材质分析

2.1曲线效果

对于曲线效果

![image6.png][6]
主要是根据给出的参数值,建立B-样条曲线,修改Mesh的顶点值,来完成弯曲的效果,最后在传入世界场景偏移当中。

我们将变换的顶点法线信息的XY值传入CUV1中,方便之后使用

2.2 突出的山脊凹凸效果

我们将存储的法线(NX,NY)

![image7.png][7]

进行操作,使得越接近(0,0)的法线越搞,这要就能呈现一个拱形的结构

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Papals

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

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

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

打赏作者

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

抵扣说明:

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

余额充值