// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
|
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
|
Shader "Environment/Water"
|
{
|
Properties
|
{
|
_Distortion("Distortion", Range(0, 0.02)) = 0.01
|
_NormalSpeed("Ripples: UV Speed (xy), UV Speed (zw)", Vector) = (1.3,-1.4,-1.5,1.6)
|
_WaterNorms("Water Normals", 2D) = "white" { }
|
_WaterColor("Water Color", 2D) = "white" {}
|
_Color("Vexter Color",Color) = (1,1,1,1)
|
}
|
|
SubShader{
|
|
LOD 100
|
|
Tags {
|
"Queue" = "Transparent"
|
"IgnoreProjector" = "True"
|
"LightMode" = "Always"
|
}
|
|
Pass {
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
Cull Back
|
Fog {Mode Off}
|
|
CGPROGRAM
|
#pragma target 3.0
|
#pragma vertex vert
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
#pragma exclude_renderers flash
|
|
#include "UnityCG.cginc"
|
#include "SnxxzCG.cginc"
|
|
struct vertInput
|
{
|
float4 vertex : POSITION;
|
float4 color : COLOR;
|
float2 texcoord : TEXCOORD0;
|
float2 texcoord1 : TEXCOORD1;
|
};
|
|
struct vertShader {
|
float4 pos : SV_POSITION;
|
float4 color : COLOR;
|
float2 uv0 : TEXCOORD0;
|
float2 uv1 : TEXCOORD1;
|
float2 uv2 : TEXCOORD2;
|
float2 uv3 : TEXCOORD3;
|
};
|
|
// resources
|
uniform sampler2D _WaterNorms;
|
uniform float4 _WaterColor_ST;
|
uniform sampler2D _WaterColor;
|
uniform float4 _Color;
|
uniform float4 _WaterNorms_ST;
|
|
// properties
|
uniform float _Distortion;
|
uniform float3 _WaterColTemp;
|
uniform float4 _NormalSpeed;
|
uniform float _Reflect;
|
|
vertShader vert(appdata_full v)
|
{
|
vertShader o;
|
float3 worldVertex = mul(unity_ObjectToWorld, v.vertex).xyz;
|
|
// pos and uv tex coord
|
o.pos = UnityObjectToClipPos(v.vertex);
|
o.color = v.color*_Color;
|
|
o.uv0 = v.texcoord;
|
// texcoord Ground
|
o.uv1 = v.texcoord * _WaterColor_ST.xy + _WaterColor_ST.zw;
|
|
// texcoord Water
|
float4 waveSpeed = _NormalSpeed * _Time.x * 0.1;
|
o.uv2 = v.texcoord1 * _WaterNorms_ST + waveSpeed.xy;
|
o.uv3 = v.texcoord1 * _WaterNorms_ST * 1.2 + waveSpeed.zw;
|
|
return o;
|
}
|
|
fixed4 frag(vertShader i) : COLOR
|
{
|
// normal calc
|
fixed3 norms = tex2D(_WaterNorms, i.uv2) - tex2D(_WaterNorms, i.uv3);
|
// water
|
fixed4 c = tex2D(_WaterColor, i.uv1 + norms.rb * _Distortion)*i.color;
|
|
return c;
|
}
|
ENDCG
|
}
|
}
|
Fallback "Diffuse"
|
}
|