Shader动画之UV动画与顶点动画

用Shader实现动画主要包括两种方式:

1.UV动画

主要用于 序列帧、模拟无限重复的背景

让模型顶点对应的uv随时间变化,使其对应纹理像素不断随时间变化

但是无法达到让物体“变形”的效果

例如:

			v2f vert(a2v v){
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
				o.uv.xy = TRANSFORM_TEX(v.texcoord,_FirstLayer) + frac(float2(_MoveSpeed1,0.0) * _Time.y); 
				o.uv.zw = TRANSFORM_TEX(v.texcoord,_SecendLayer) + frac(float2(_MoveSpeed2,0.0) * _Time.y); 
				return o;
			}
			float4 frag(v2f i):SV_Target{
				float4 color1 = tex2D(_FirstLayer,i.uv.xy);
				float4 color2 = tex2D(_SecendLayer,i.uv.zw);
				float4 color = lerp(color1,color2,1 - color1.a);
				return color;
			}
其中 
TRANSFORM_TEX()方法使用时必须注意,需要提前声明 纹理名_ST  变量,这是因为该方法的作用是计算模型空间下的顶点UV,对应的 纹理UV,
可以理解成,为模型的每个顶点指定其所对应的是纹理贴图上的哪一个像素。
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值