(学习笔记)流动的照片效果

本文介绍了一个使用Unity Shader实现的折叠效果。该效果通过调整顶点位置来模拟纸张折叠,利用sin函数和floor函数生成动态变化的形状。同时,还包括了UV平移动画效果,使纹理随时间变化而移动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shader "Custom/FoldEffect" {
	Properties {
		_MainTex("Main Tex",2D)="white"{}
		_Scale("Scale",float)=1
		_ZScale("ZScale",int)=100
	}
	SubShader {
		Tags{"LightMode"="ForwardBase"}

		Pass{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			
			sampler2D _MainTex;
			float4 _MainTex_ST;
			float _Scale;
			int _ZScale;

			struct a2v{
				float4 vertex:POSITION;
				float4 texcoord:TEXCOORD0;
			};

			struct v2f{
				float4 pos:SV_POSITION;
				float2 uv:TEXCOORD0;
			};

			v2f vert(a2v v){
				v2f o;
				float4 p=v.vertex;
				//三角函数曲线-梯形曲线
				p.y=sin(v.vertex.x*_Scale+_Time.y)-floor(v.vertex.z/_ZScale);
				//转换到裁切坐标系
				o.pos=UnityObjectToClipPos(p);
				//UV平移动画
				o.uv.xy=v.texcoord.xy*_MainTex_ST.xy+_MainTex_ST.zw-float2(_Time.x,0);
				return o;
			}

			fixed4 frag(v2f i):SV_TARGET{
				fixed3 c=tex2D(_MainTex,i.uv.xy);
				return fixed4(c,1);
			}

			ENDCG
		}
	}
	FallBack "Diffuse"
}

动画比较简陋,初学者水平.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值