61 lines
1.5 KiB
Plaintext
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"
|
||
|
|
}
|