源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 

78 рядки
2.7 KiB

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "MyShader/Water"
{
Properties
{
_farColor("far-Color", Color) = (1,1,1,1)
_ColorStrong ("Color-Change", Range (0.1, 2)) = 1
_nearColor("near-Color", Color) = (1,1,1,1)
_MainTex("zhezhao-R,wave-G,NoiseScale-B", 2D) = "white" {}
_wave("waveScale-x,WaveSpeed-y NoiseScale-z,NoiseSpeed-w",vector)=(1.7,0.02,7.3,0.04)
_transparent("transparent", Range(0.5, 1)) = 1
_opaque("near-opaque", Range(0, 0.8)) = 0
_EColor("EnvironmentalColor", Color) = (1,1,1,1)
}
SubShader
{
tags{"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"}
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fog
#include "UnityCG.cginc"
sampler2D _MainTex;
fixed4 _MainTex_ST,_farColor,_nearColor,_EColor,_wave;
fixed _ColorStrong,_transparent,_opaque;
struct a2v {
float4 vertex : POSITION;
fixed4 color : COLOR;
fixed4 texcoord : TEXCOORD0;
};
struct v2f {
float4 pos : POSITION;
fixed2 uv : TEXCOORD0;
fixed4 color : COLOR;
fixed diff : TEXCOORD1;
UNITY_FOG_COORDS(2)
};
v2f vert(a2v v){
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord.xy;
o.diff = 0.5;
o.color = v.color;
UNITY_TRANSFER_FOG(o,o.pos);
return o;
}
half4 frag(v2f i):COLOR
{
fixed2 waveOffset =(tex2D(_MainTex, i.uv.xy*_wave.z + float2(0, _Time.y * _wave.w)).b + tex2D(_MainTex, i.uv.xy*_wave.z + float2(_Time.y * _wave.w, 0)).b);
fixed2 ruv = float2(i.uv.x, 1 - i.uv.y) + waveOffset * 0.01;
float4 tex = tex2D (_MainTex, ruv.xy*float2(_wave.x,_wave.x)+float2(0, _Time.y * _wave.y)) ;
fixed3 near = i.diff * _ColorStrong;
fixed3 far = max((1 - near), 0);
fixed3 ap = i.diff*_opaque;
float4 result;
result.rgb = (far*_EColor*tex.g + far*_farColor + near*_nearColor);
result.a = _transparent-ap;//
float4 c = result*i.color;
UNITY_APPLY_FOG(i.fogCoord, c);
return c;
}
ENDCG
}
}
}