虚幻4渲染编程(程序化纹理篇)【第三卷:Dynamic Texture Mask】

我的专栏目录:

YivanLee:专题概述及目录​zhuanlan.zhihu.com图标

简介:

我们常常会用到一些Dynamic Texture Mask来配合程序制作各种效果,比如我要动态遮蔽贴图的某个部分,这些算法都将成为日后做各种复杂效果的基础。下面就这个问题来做专门的研究。


【1】横向换行遮蔽贴图的某个部位

v2-58c8cc6dd5d4088f080a6767b7a74cf5_b.gif

代码如下

v2-0070b435a21b2f226a721deeedcb0083_b.jpg

CustomNode种的代码:

v2-da8604325638eebc5b0fc9b9755599a6_b.jpg

这个东西很常用,可以动态遮蔽贴图的某个部分对于程序控制Tile贴图的某块显示。

首先把UV空间分为若干格,上面的示例种我分了8X8格,然后用n*y+x函数填充每个格子中的值,这样就能得到从左往右递增换行的数值分布

v2-aa7fc5f2f7c9c39ba076437a26bb3f8a_b.jpg

最后用Step算出Mask即可。

如果是想做单纯的这种UI动画只需要把格子分细一点就可以感觉连续了。


【2】横向来回乒乓换行遮蔽贴图的某个部位

v2-5cf4bec59e070bb831db6ee848ba675a_b.gif

节点如下:

v2-0a29908d61da0a340182939f08266534_b.jpg

需要注意的是材质编辑器的sin和cos的周期不是2PI,所以这里我直接用CustomNode写了个sin(x)

这里主要是要算出UV的乒乓交错即可

v2-7e0b567eed285501d7a1585fd7c9c188_b.jpg
v2-170f5390258adf47f4090901cb3a3fa5_b.jpg

【3】特殊朝向的区块遮蔽

有时候想要一些特殊朝向的区块遮蔽,这时候如果还用纯公式算的话计算量就太大了,所以可以考虑预生成贴图的方式

v2-f0ac0c9348ab9b8fca0d6acfc8ad75de_b.jpg

比如螺旋方式的话可以做一张螺旋型的IndexTexture然后直接查询即可按照我们设定的方式进行遮蔽了。


Enjoy it

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cpongo11

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

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

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

打赏作者

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

抵扣说明:

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

余额充值