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

本文介绍了使用Shader实现动画的两种主要方法:UV动画和顶点动画。UV动画常用于序列帧和无限背景,通过改变顶点的UV坐标来实现纹理像素的动态效果,但无法实现物体变形。而顶点动画则能在使物体动起来的同时达到变形效果,通过在顶点着色器中偏移模型顶点,结合正弦函数模拟水流等动态效果。
摘要由CSDN通过智能技术生成

用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,
可以理解成,为模型的每个顶点指定其所对应的是纹理贴图上的哪一个像素。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值