Unity Shader 纹理采样UV动画代码理解

// Transforms 2D UV by scale/bias property
#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)

上面这段代码是对uv坐标进行缩放偏移的宏,对应inspectors中的
在这里插入图片描述
也就是说我们如果想打印图片的某一帧需要减小Tiling,因为他表示出的是一整张图,可以将他看成帧大小,而offset可以看成帧起始位置,我们可以在unity中自由调试验证,所以对uv动画可以有如下的解释,需要注意的是,uv坐标系是左下角为0,0而帧图是从左上角。

 //类似TRANSFORM_TEX()代码,先将纹理缩放到单帧大小
half2 uv = float2(i.uv.x /_HorizontalAmount, i.uv.y / _VerticalAmount);
//在进行纹理偏移,由于uv是左下角为原点。当row=0时对应最上面的1
uv.x += column / _HorizontalAmount;
uv.y -= row / _VerticalAmount;

结合上面这段代码和TRANSFORM_TEX()的代码,便能理解了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值