旗帜实现思路是根据物理上的波动方程实现
这里直接粘贴源码
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Custom/WevaShader" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Arange("Anmlitute",float) = 1//振幅
_Frenquncy("Frenquncy",float) = 0.5//波动频率
_Speed("Speed",float) = 8
}
SubShader {
Pass{
CGPROGRAM
sampler2D _MainTex;
float _Arange;
float _Frenquncy;
float _Speed;
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct a2v
{
float4 vertex : POSITION;//告诉Unity把模型空间下的顶点坐标填充给vertex
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv :TEXCOORD0;
float4 vertex :SV_POSITION;///告诉Unity存储剪裁空间下的顶点坐标