Shader "Custom/ClickWaterEffect" {
Properties {
_MainTex ("MainTex", 2D) = "White" {}
_F("波长", range(1, 30)) = 10
_A("幅度值", range(0, 0.1)) = 0.01 //幅度值
_R("波动半径", range(0, 1)) = 0
_S("水波速度", range(0, 30)) = 1
}
SubShader {
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_ST;
float _F;
float _A;
float _R;
float _S;
struct v2f {
float4 pos:POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(appdata_full v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
//o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag (v2f IN) : COLOR
{
float2 uv = IN.uv;
float dis = distance(uv, float2(0.5, 0.5));
float scale = 0;
// if(dis < _R)
// {
// //衰减效果
// _A *= 1 - dis / _R;
//
// scale = _A * sin(-dis *
一个简单的水波浪效果Shader
最新推荐文章于 2026-04-14 11:15:41 发布
这篇博客介绍了一个使用Shader实现的简单水波浪效果,通过调整波长、幅度值、波动半径和水波速度参数来控制视觉效果。Shader代码中包含了关键的数学运算和纹理采样,以模拟水面波动并产生颜色变化。


1万+

被折叠的 条评论
为什么被折叠?



