UE 实时地形高度检测(二)。利用Niagara及虚拟纹理(virtualTexture)生成动态——立体的热力图。

接上文,利用Niagara 粒子的特性,来动态生成三维热力图,高程图!

传统的平面热力图已经很清晰的表达出热力的效果了。

但是,在三维引擎中,看起来没有那么的炫酷,那就增加第三个维度Z轴,来让其“看起来”更加科幻(注意:只是看起来)。

补充:niagara 创建动态Mesh相比蓝图来说,“性价比”更高!

 老规矩,先上图: 

接下来直接跳过创建说重点:

1、Spawn Particles in Grid——网格体渲染器

居然要依据黑白图生成,那么首先就要用规则的在范围内生成长方体,那么网格体就少不了。

通过Spawn Particles in Grid与GridLocation节点的配合,即可在范围内生成规范的网格体粒子。

有了基础粒子后,就可以在材质方向大展拳脚了!(目前没有找到在Niagara引用virtualTexture的方法,所以只能换一种解决思路了)当然,如果是直接使用噪波图的话,就更加方便了,可以直接在Niagara里面进行修改。

2、材质上色及偏移。

 然后就是材质的问题,统合上篇文章输出Lerp值,进行缩放与偏移。

UE 实时地形高度检测(一)。利用虚拟纹理(virtualTexture)低成本生成热力图/高度图/等高线。_丶冒泡的博客-CSDN博客

这里不做累赘,直接说拿到lerp值后的事情。感兴趣的可以看我上一篇文章。

 大家都清楚,如果要做材质动画的话,就涉及到worldOffset,
我们的需求是:BOX基于轴点向上进行伸长与偏移(在材质内进行缩放偏移来达到同样的效果)。

 在材质中。通过轴点 - 顶点世界坐标,* 缩放值 + 偏移值,可以得到以上效果。

//大小及位置偏移
float3 OutWorldOffset = float3(0.f,0.f,0.f);
OutWorldOffset.z = (ObjectScale-1) * (WS - OPP).z + ObjectScale * 50;
return OutWorldOffset;

 把Scale 替换成黑白图(及virtualTexture 输出的worldHeight)即可。

 可以看到有基本的隆起了,worldHeight *系数 进行放大即可。

10倍效果进行展示 

 不过现在还是静态的,并没有动态效果,只需要简单增加一个Time 节点就可以有动态效果。

通过sine 曲线及 黑白系数,即可得到这个效果

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值