UE4中材质基于高度的颜色渐变

在数据可视化领域,颜色是非常重要的一个视觉通道,在UE4中想要通过材质颜色的变化来编码一些高度等信息,比如Mesh最高点处为红色,最低点处为蓝色。在此记录一下我找到的一种实现方式。

基于高度(Z轴)的渐变颜色材质蓝图示例
  • 首先World Position节点(World Position官方文档),它返回的是像素的绝对世界位置,该位置以世界场景中(0,0,0)为坐标原点,Object Position节点返回的是对象的世界场景空间中心位置(Object Position官方文档),二者相减得到的是像素相对于对象的位置。
像素位置减去对象场景位置
  •  Object Bounds节点(Object Bounds官方文档)返回对象在每个轴的大小,第一步获得的位置与对象的大小相除获得该位置占对象大小的比例,范围是(-1,1),因此我们可以通过加1再除以2将其映射到(0,1)方便后边的插值。
位置与对象大小相除并重新映射到(0,1)
  •  最后以上述的得到的结果的Z值作为Alpha(材质中X,Y,Z分别对应R,G,B)对颜色进行插值,当然也可以基于这个值对对象的亮度,透明度进行插值,以此实现亮度的渐变以及透明度的渐变。同时X,Y方向的渐变与Z的思路一致,即只需要使用R或G作为Alpha进行插值即可。
基于Z值对颜色进行插值
基于Z值对亮度进行插值
  •  最后使用UE4中自带的楼梯进行测试,为方便展示,已将材质变为不透明。
效果展示

参考文章

创建渐变颜色

  • 21
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值