1、上面的水面波纹效果是从一个大神代码里面扣出来的。
为了看算法,尽量减少变量,只实现效果,减去了 Alpha 值随 Y 值变化效果
里面有很多数据可以写成变量,便于调整效果,为了方便查看关键代码,尽量减少可变属性。关键代码已有片段编辑中的一行,已经写了很长的注释
Shader "Custom/RippleShaderMy"
{
Properties
{
_Color("Base Color", Color) = (1,1,1,1)
_MainTex("Base(RGB)", 2D) = "white" {}
_DecorativeTex("DecorativeTex (RGB)", 2D) = "white"{}
}
SubShader
{
tags{
"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"}
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float4 _Color;
sampler2D _MainTex;
sampler2D _DecorativeTex;
struct v2f
{
float4 pos:POSITION;
float4 uv:TEXCOORD0;
};
struct appdata{
float4 vertex : POSITION