Files
ProjectBall.Unity/Assets/Shaders/WaterSimple.shader
T
2025-05-13 05:18:03 +03:00

61 lines
1.5 KiB
Plaintext

Shader "Custom/WaterSimple" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_NormalMap ("Normal map", 2D) = "bump" {}
_Bumpiness ("Bumpiness", Float) = 1.0
_Shininess ("Specular Shininess", Float) = 0.078125
_Gloss ("Specular Gloss", Float) = 0.078125
_Fresnel("Fresnel Coef.", Float) = 0.35
_SpecColor ("Spec Color", Color) = (1.0,1.0,1.0,1.0)
_WorldS("World Scale", Float) = 1.0
_Opacity("Opacity", Float) = 0.5
_Scroll("Scroll", Vector) = (0,0,0,0)
}
SubShader {
Blend SrcAlpha OneMinusSrcAlpha
Tags { "RenderType"="Transparent" "Queue"="Transparent"}
LOD 200
CGPROGRAM
#pragma surface surf BlinnPhong
#pragma target 3.0
sampler2D _MainTex;
sampler2D _NormalMap;
float _Bumpiness;
float _Shininess;
float _Gloss;
float _Fresnel;
float _WorldS;
float _Opacity;
float4 _Scroll;
struct Input {
float2 uv_MainTex;
float3 worldPos;
};
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
float2 uvSrc = IN.worldPos.xz * _WorldS;
float2 uv1 = uvSrc + _Time.y * _Scroll.xy;
float2 uv2 = uvSrc + _Time.y * _Scroll.zw;
float3 nm1 = UnpackNormal (tex2D (_NormalMap, uv1));
float3 nm2 = UnpackNormal (tex2D (_NormalMap, uv2));
float3 nm3 = (nm1 + nm2) * 0.5f;
float3 nm = lerp(float3(0,0,1), nm3, _Bumpiness);
o.Normal = nm;
o.Gloss = _Gloss;
o.Specular = _Shininess;
o.Alpha =_Opacity;
}
ENDCG
}
FallBack "Diffuse"
}