improve water, cleanup

This commit is contained in:
Crispy 2023-02-12 17:02:21 +01:00
parent 3bbd3d9aaf
commit 93c2d5407c

View file

@ -22,9 +22,9 @@
_StarTint ("Star tint", Range(0, 1)) = 0.4 _StarTint ("Star tint", Range(0, 1)) = 0.4
[Header(Water)] [Header(Water)]
_WaterCol ("Water color", Color) = (0.03, 0.08, 0.12, 1.0) _WaterCol ("Water color", Color) = (0.03, 0.08, 0.12, 1.0)
_WaveStrength ("Wave scale", Range(0, 1)) = 1
[NoScaleOffset] [NoScaleOffset]
_WaterSurface ("Surface Normal", 2D) = "white" {} _WaterSurface ("Surface Normal", 2D) = "white" {}
_Temp ("Wave scale", Range(0, 1)) = 0
[Header(Debug)] [Header(Debug)]
_Grid ("Grid visibility", Range(0, 1)) = 0 _Grid ("Grid visibility", Range(0, 1)) = 0
@ -78,7 +78,7 @@
sampler2D _WaterSurface; sampler2D _WaterSurface;
fixed4 _WaterCol; fixed4 _WaterCol;
float _Temp; float _WaveStrength;
float _Grid; float _Grid;
@ -93,10 +93,12 @@
fixed3 get_water_normal(float2 pos) { fixed3 get_water_normal(float2 pos) {
float3 normal = 0.0; float3 normal = 0.0;
float t1 = _Time.x * 0.2; float t1 = _Time.x * 0.18;
normal += (tex2D(_WaterSurface, pos * 1.0 + float2(t1, t1*0.5)) - 0.5); normal += (tex2D(_WaterSurface, pos * 1.04 + float2(t1, t1 * 0.5)) - 0.5);
float t2 = _Time.x * 0.5; float t2 = _Time.x * 0.37;
normal += (tex2D(_WaterSurface, pos * 0.2 + float2(t2*0.5, t2)) - 0.5) * 0.25; normal += (tex2D(_WaterSurface, pos * 0.276 + float2(t2 * 0.8, t2)) - 0.5);
float t3 = _Time.x * 0.08;
normal += (tex2D(_WaterSurface, pos * 0.07 + float2(t3 * 0.8, -t3)) - 0.5);
return normalize(normal.zxy); return normalize(normal.zxy);
} }
@ -116,6 +118,7 @@
camera_local_pos.z - camera_local_pos.y / (real_dir.y / real_dir.z) camera_local_pos.z - camera_local_pos.y / (real_dir.y / real_dir.z)
); );
float3 water_normal = get_water_normal(surface_pos.xz); float3 water_normal = get_water_normal(surface_pos.xz);
water_normal = lerp(UP, water_normal, _WaveStrength);
dir = reflect(dir, water_normal); dir = reflect(dir, water_normal);
water_mod = dot(dir, water_normal); water_mod = dot(dir, water_normal);