From 6dd0fd10cd4c39f2cfc878793d18a19441b51ce0 Mon Sep 17 00:00:00 2001 From: Le Duc Anh Date: Tue, 13 Jan 2026 09:45:32 +0700 Subject: [PATCH] update water for android build --- .../Art/Shaders/Water/ClearWaterShader.shader | 375 ++++++++---------- .../ModelRenderer/Art/Shaders/Water/Water.mat | 101 ++++- Assets/water.meta | 8 + Assets/water/caust00.dds | Bin 0 -> 16511 bytes Assets/water/caust00.dds.meta | 21 + Assets/water/caust10.dds | Bin 0 -> 16511 bytes Assets/water/caust10.dds.meta | 21 + 7 files changed, 309 insertions(+), 217 deletions(-) create mode 100644 Assets/water.meta create mode 100644 Assets/water/caust00.dds create mode 100644 Assets/water/caust00.dds.meta create mode 100644 Assets/water/caust10.dds create mode 100644 Assets/water/caust10.dds.meta diff --git a/Assets/ModelRenderer/Art/Shaders/Water/ClearWaterShader.shader b/Assets/ModelRenderer/Art/Shaders/Water/ClearWaterShader.shader index 2359b47354..8b46d6abd7 100644 --- a/Assets/ModelRenderer/Art/Shaders/Water/ClearWaterShader.shader +++ b/Assets/ModelRenderer/Art/Shaders/Water/ClearWaterShader.shader @@ -1,250 +1,217 @@ -Shader "Custom/ClearWaterShaderV3" +Shader "Custom/WaterWithShore_Unity6" { Properties { - [Header(Water Colors)] - _ShallowColor ("Shallow Water Color", Color) = (0.325, 0.807, 0.971, 0.8) - _DeepColor ("Deep Water Color", Color) = (0.086, 0.407, 1, 0.95) - _DepthMaxDistance ("Depth Max Distance", Float) = 1 - - [Header(Shore Visibility)] - _ShoreDistance ("Shore Visibility Distance", Range(0, 5)) = 1.0 - _ShoreFade ("Shore Fade Smoothness", Range(0.01, 2)) = 0.5 - - [Header(Foam)] - _FoamColor ("Foam Color", Color) = (1, 1, 1, 1) - _FoamDistance ("Foam Distance", Range(0, 2)) = 0.4 - _FoamIntensity ("Foam Intensity", Range(0, 2)) = 1 - _EdgeFoamWidth ("Edge Foam Width", Range(0.001, 0.5)) = 0.1 - _VertexColorFoamWidth ("Vertex Color Foam Width", Range(0, 1)) = 0.3 + _ShallowColor ("Shallow Color", Color) = (0.2, 0.6, 0.7, 0.8) + _DeepColor ("Deep Color", Color) = (0.0, 0.15, 0.25, 0.9) + _DepthMax ("Depth Max", Range(0.1, 10)) = 3 + + _WaveNormal ("Wave Normal", 2D) = "bump" {} + _NormalStrength ("Normal Strength", Range(0,2)) = 1 + + _WaveSpeed1 ("Wave Speed 1", Vector) = (0.05, 0.03, 0, 0) + _WaveSpeed2 ("Wave Speed 2", Vector) = (-0.03, 0.04, 0, 0) + + _FoamNoise ("Foam Noise", 2D) = "white" {} + _FoamColor ("Foam Color", Color) = (1,1,1,1) + _FoamIntensity ("Foam Intensity", Range(0,2)) = 1 + _FoamDepth ("Foam Depth", Range(0.01, 5)) = 0.6 + _FoamNoiseScale ("Foam Noise Scale", Range(0.1, 5)) = 1 + _FoamSpeed ("Foam Speed", Vector) = (0.1, 0.1, 0, 0) + + _Smoothness ("Smoothness", Range(0,1)) = 0.85 [Header(Wave Animation)] - _WaveHeight ("Wave Height", Range(0, 0.5)) = 0.05 - _WaveFrequency ("Wave Frequency", Range(0, 10)) = 2 - _WaveSpeed ("Wave Speed", Range(0, 5)) = 1 - _WaveDirection ("Wave Direction", Vector) = (1, 0, 0, 0) - - [Header(Textures)] - _SurfaceNoise ("Surface Noise", 2D) = "white" {} - _SurfaceNoiseCutoff ("Surface Noise Cutoff", Range(0, 1)) = 0.6 - _SurfaceNoiseScale ("Surface Noise Scale", Float) = 1 - - _NormalMap ("Normal Map", 2D) = "bump" {} - _NormalStrength ("Normal Strength", Range(0, 2)) = 0.5 - _NormalScale ("Normal Scale", Float) = 1 - - [Header(Reflection)] - _Smoothness ("Smoothness", Range(0, 1)) = 0.9 - _FresnelPower ("Fresnel Power", Range(0, 10)) = 5 - _ReflectionStrength ("Reflection Strength", Range(0, 1)) = 0.3 - - [Header(Movement)] - _TextureSpeed ("Texture Speed", Float) = 0.1 + _WaveHeight ("Wave Height", Range(0, 1)) = 0.1 + _WaveFrequency ("Wave Frequency", Range(0, 20)) = 5 + _WaveSpeed ("Wave Speed", Range(0, 10)) = 2 + _WaveDirection ("Wave Direction", Vector) = (1, 1, 0, 0) } - + SubShader { Tags { - "Queue" = "Transparent" - "RenderType" = "Transparent" - "RenderPipeline" = "UniversalRenderPipeline" + "RenderPipeline"="UniversalPipeline" + "Queue"="Transparent" + "RenderType"="Transparent" } - + Pass { + Name "ForwardLit" + Tags { "LightMode"="UniversalForward" } + Blend SrcAlpha OneMinusSrcAlpha ZWrite Off - + HLSLPROGRAM #pragma vertex vert #pragma fragment frag - + #pragma target 3.0 + #pragma prefer_hlslcc gles + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" - #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" - + + TEXTURE2D(_WaveNormal); + SAMPLER(sampler_WaveNormal); + + TEXTURE2D(_FoamNoise); + SAMPLER(sampler_FoamNoise); + + TEXTURE2D_X_FLOAT(_CameraDepthTexture); + SAMPLER(sampler_CameraDepthTexture); + + CBUFFER_START(UnityPerMaterial) + float4 _ShallowColor; + float4 _DeepColor; + float _DepthMax; + + float4 _WaveSpeed1; + float4 _WaveSpeed2; + float _NormalStrength; + + float4 _FoamColor; + float _FoamIntensity; + float _FoamDepth; + float _FoamNoiseScale; + float4 _FoamSpeed; + + float _Smoothness; + + float _WaveHeight; + float _WaveFrequency; + float _WaveSpeed; + float4 _WaveDirection; + CBUFFER_END + struct Attributes { float4 positionOS : POSITION; - float3 normalOS : NORMAL; - float4 tangentOS : TANGENT; float2 uv : TEXCOORD0; - float4 color : COLOR; }; - + struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; float4 screenPos : TEXCOORD1; - float3 normalWS : TEXCOORD2; - float3 tangentWS : TEXCOORD3; - float3 bitangentWS : TEXCOORD4; - float3 viewDirWS : TEXCOORD5; - float3 positionWS : TEXCOORD6; - float waveValue : TEXCOORD7; - float4 vertexColor : COLOR; + float3 positionWS : TEXCOORD2; + float3 normalWS : TEXCOORD3; }; - - sampler2D _SurfaceNoise; - sampler2D _NormalMap; - - CBUFFER_START(UnityPerMaterial) - float _SurfaceNoiseCutoff; - float _SurfaceNoiseScale; - float _FoamDistance; - float _FoamIntensity; - float _EdgeFoamWidth; - float _VertexColorFoamWidth; - float _DepthMaxDistance; - float _NormalStrength; - float _NormalScale; - float _Smoothness; - float _FresnelPower; - float _ReflectionStrength; - float _TextureSpeed; - float _ShoreDistance; - float _ShoreFade; - float _WaveHeight; - float _WaveFrequency; - float _WaveSpeed; - float4 _WaveDirection; - float4 _ShallowColor; - float4 _DeepColor; - float4 _FoamColor; - CBUFFER_END - - float3 TriplanarSample(sampler2D tex, float3 worldPos, float3 worldNormal, float scale, float2 offset) + + Varyings vert (Attributes v) { - float3 blendWeights = abs(worldNormal); - blendWeights = blendWeights / (blendWeights.x + blendWeights.y + blendWeights.z); + Varyings o; - float3 xSample = tex2D(tex, worldPos.zy * scale + offset).rgb; - float3 ySample = tex2D(tex, worldPos.xz * scale + offset).rgb; - float3 zSample = tex2D(tex, worldPos.xy * scale + offset).rgb; - - return xSample * blendWeights.x + ySample * blendWeights.y + zSample * blendWeights.z; - } - - float3 TriplanarNormal(sampler2D tex, float3 worldPos, float3 worldNormal, float scale, float2 offset) - { - float3 blendWeights = abs(worldNormal); - blendWeights = blendWeights / (blendWeights.x + blendWeights.y + blendWeights.z); - - float3 xNormal = UnpackNormal(tex2D(tex, worldPos.zy * scale + offset)); - float3 yNormal = UnpackNormal(tex2D(tex, worldPos.xz * scale + offset)); - float3 zNormal = UnpackNormal(tex2D(tex, worldPos.xy * scale + offset)); - - return xNormal * blendWeights.x + yNormal * blendWeights.y + zNormal * blendWeights.z; - } - - Varyings vert(Attributes input) - { - Varyings output; - - VertexPositionInputs positionInputs = GetVertexPositionInputs(input.positionOS.xyz); - VertexNormalInputs normalInputs = GetVertexNormalInputs(input.normalOS, input.tangentOS); - - float3 worldPos = positionInputs.positionWS; + // Transform to world space first + float3 worldPos = TransformObjectToWorld(v.positionOS.xyz); + // === WAVE ANIMATION === float2 waveDir = normalize(_WaveDirection.xy); - float waveDist = dot(worldPos.xz, waveDir); - float wavePhase = waveDist * _WaveFrequency - _Time.y * _WaveSpeed; - float wave = sin(wavePhase); - worldPos.y += wave * _WaveHeight; + // Primary wave (moving wave) + float wave1 = sin( + dot(worldPos.xz, waveDir) * _WaveFrequency - + _Time.y * _WaveSpeed + ) * _WaveHeight; - output.positionCS = TransformWorldToHClip(worldPos); - output.positionWS = worldPos; - output.screenPos = ComputeScreenPos(output.positionCS); - output.uv = input.uv; - output.normalWS = normalInputs.normalWS; - output.tangentWS = normalInputs.tangentWS; - output.bitangentWS = normalInputs.bitangentWS; - output.viewDirWS = GetWorldSpaceViewDir(worldPos); - output.waveValue = wave * 0.5 + 0.5; - output.vertexColor = input.color; + // Secondary wave (perpendicular, different frequency) + float2 waveDir2 = float2(-waveDir.y, waveDir.x); // Perpendicular + float wave2 = sin( + dot(worldPos.xz, waveDir2) * _WaveFrequency * 0.7 - + _Time.y * _WaveSpeed * 0.8 + ) * _WaveHeight * 0.5; - return output; + // Combine waves + worldPos.y += wave1 + wave2; + + o.positionWS = worldPos; + o.positionCS = TransformWorldToHClip(worldPos); + o.screenPos = ComputeScreenPos(o.positionCS); + o.uv = v.uv; + o.normalWS = TransformObjectToWorldNormal(float3(0,1,0)); + return o; } - - float4 frag(Varyings input) : SV_Target + + half4 frag (Varyings input) : SV_Target { - float3 worldNormal = normalize(input.normalWS); - - float2 timeOffset1 = _Time.y * _TextureSpeed * float2(1, 0.5); - float2 timeOffset2 = _Time.y * _TextureSpeed * float2(-0.7, -0.3); - - float3 normalMap1 = TriplanarNormal(_NormalMap, input.positionWS, worldNormal, _NormalScale, timeOffset1); - float3 normalMap2 = TriplanarNormal(_NormalMap, input.positionWS, worldNormal, _NormalScale * 1.3, timeOffset2); - - float3 normalTS = normalize(normalMap1 + normalMap2); + // === NORMAL WAVES === + float2 uv1 = input.uv + _Time.y * _WaveSpeed1.xy; + float2 uv2 = input.uv + _Time.y * _WaveSpeed2.xy; + + float3 n1 = UnpackNormal(SAMPLE_TEXTURE2D(_WaveNormal, sampler_WaveNormal, uv1)); + float3 n2 = UnpackNormal(SAMPLE_TEXTURE2D(_WaveNormal, sampler_WaveNormal, uv2)); + + float3 normalTS = n1 + n2; normalTS.xy *= _NormalStrength; - - float3x3 tangentToWorld = float3x3(input.tangentWS, input.bitangentWS, input.normalWS); - float3 normalWS = normalize(mul(normalTS, tangentToWorld)); - + normalTS = normalize(normalTS); + + float3 normalWS = normalize(TransformTangentToWorld( + normalTS, + half3x3( + float3(1,0,0), + float3(0,0,1), + input.normalWS + ) + )); + + // === DEPTH === float2 screenUV = input.screenPos.xy / input.screenPos.w; - - float existingDepth01 = SampleSceneDepth(screenUV); - float existingDepthLinear = LinearEyeDepth(existingDepth01, _ZBufferParams); - float surfaceDepthLinear = LinearEyeDepth(input.positionCS.z, _ZBufferParams); - float depthDifference = existingDepthLinear - surfaceDepthLinear; - - float waterDepthDifference01 = saturate(depthDifference / _DepthMaxDistance); - float3 waterColor = lerp(_ShallowColor.rgb, _DeepColor.rgb, waterDepthDifference01); - - float shoreVisibility = saturate(depthDifference / _ShoreDistance); - shoreVisibility = smoothstep(0, _ShoreFade, shoreVisibility); - - // VERTEX COLOR EDGE DETECTION - float vertexEdge = input.vertexColor.r; - float vertexEdgeFoam = smoothstep(_VertexColorFoamWidth, 0, vertexEdge); - - // Depth-based edge detection (for objects like cylinder) - float depthEdge = saturate(depthDifference / _EdgeFoamWidth); - depthEdge = 1.0 - depthEdge; - depthEdge = pow(depthEdge, 2); - - // Combine both methods - float edgeDetection = max(vertexEdgeFoam, depthEdge); - - float wave = pow(input.waveValue, 2); - float foamArea = 1.0 - saturate(depthDifference / _FoamDistance); - float waveContribution = wave * max(foamArea, vertexEdgeFoam); - - float foamNoise1 = TriplanarSample(_SurfaceNoise, input.positionWS, worldNormal, _SurfaceNoiseScale, timeOffset1).r; - float foamNoise2 = TriplanarSample(_SurfaceNoise, input.positionWS, worldNormal, _SurfaceNoiseScale * 1.5, timeOffset2).r; - float combinedNoise = foamNoise1 * foamNoise2; - - float foamMask = smoothstep(_SurfaceNoiseCutoff - 0.1, _SurfaceNoiseCutoff + 0.1, combinedNoise); - - float edgeFoam = edgeDetection * foamMask; - float waveFoam = waveContribution * foamMask; - - float totalFoam = max(edgeFoam, waveFoam * 0.7) * _FoamIntensity; - totalFoam = saturate(totalFoam); - - float3 viewDir = normalize(input.viewDirWS); - float fresnel = pow(1.0 - saturate(dot(normalWS, viewDir)), _FresnelPower); - + float rawDepth = SAMPLE_TEXTURE2D_X( + _CameraDepthTexture, + sampler_CameraDepthTexture, + screenUV + ).r; + + float sceneDepth = LinearEyeDepth(rawDepth, _ZBufferParams); + + float waterDepth = LinearEyeDepth( + input.screenPos.z / input.screenPos.w, + _ZBufferParams + ); + + float depthDiff = sceneDepth - waterDepth; + + // === DEPTH COLOR BLEND === + float depth01 = saturate(depthDiff / _DepthMax); + float3 waterColor = lerp( + _ShallowColor.rgb, + _DeepColor.rgb, + depth01 + ); + + // === SHORE FOAM === + float shoreMask = saturate(1.0 - depthDiff / _FoamDepth); + + float2 foamUV = + input.positionWS.xz * _FoamNoiseScale + + _Time.y * _FoamSpeed.xy; + + float foamNoise = SAMPLE_TEXTURE2D( + _FoamNoise, + sampler_FoamNoise, + foamUV + ).r; + + float foam = shoreMask * foamNoise * _FoamIntensity; + + // === LIGHTING === Light mainLight = GetMainLight(); - float3 halfVector = normalize(mainLight.direction + viewDir); - float specular = pow(saturate(dot(normalWS, halfVector)), _Smoothness * 128.0); - - float3 reflection = fresnel * _ReflectionStrength; - - float3 finalColor = waterColor; - finalColor += specular * mainLight.color * 0.5; - finalColor = lerp(finalColor, float3(0.7, 0.85, 1), reflection); - finalColor = lerp(finalColor, _FoamColor.rgb, totalFoam * 0.9); - - float baseAlpha = lerp(_ShallowColor.a, _DeepColor.a, waterDepthDifference01); - float shoreAlpha = lerp(0.8, baseAlpha, shoreVisibility); - float finalAlpha = saturate(shoreAlpha + totalFoam * 0.5); - - return float4(finalColor, finalAlpha); + float NdotL = saturate(dot(normalWS, mainLight.direction)); + + float3 finalColor = + waterColor * NdotL + + foam * _FoamColor.rgb; + + float alpha = lerp( + _ShallowColor.a, + _DeepColor.a, + depth01 + ); + + return float4(finalColor, alpha); } ENDHLSL } diff --git a/Assets/ModelRenderer/Art/Shaders/Water/Water.mat b/Assets/ModelRenderer/Art/Shaders/Water/Water.mat index b36783ad1f..93dccce4a4 100644 --- a/Assets/ModelRenderer/Art/Shaders/Water/Water.mat +++ b/Assets/ModelRenderer/Art/Shaders/Water/Water.mat @@ -14,16 +14,42 @@ Material: m_ValidKeywords: [] m_InvalidKeywords: - _DEBUGDEPTH_ON + - _USEUVSHORE_ON + - _WAVE_SINE_ON m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 + m_CustomRenderQueue: 3000 stringTagMap: {} disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _EdgeMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FoamNoise: + m_Texture: {fileID: 2800000, guid: b6f4fa4253519934f96d918d7c34bc8d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FoamNoiseA: + m_Texture: {fileID: 2800000, guid: 064ebb4006db3934697a80619febcb44, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FoamNoiseB: + m_Texture: {fileID: 2800000, guid: 89c13dff71f555349bbeed61fd7f0402, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FoamTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _NormalMap: m_Texture: {fileID: 2800000, guid: 93c0aa606876cb04384552a948f281df, type: 3} m_Scale: {x: 1, y: 1} @@ -33,18 +59,49 @@ Material: m_Scale: {x: 10, y: 10} m_Offset: {x: 0, y: 0} - _SurfaceNoise: - m_Texture: {fileID: 2800000, guid: b6f4fa4253519934f96d918d7c34bc8d, type: 3} + m_Texture: {fileID: 2800000, guid: 064ebb4006db3934697a80619febcb44, type: 3} + m_Scale: {x: 13.3, y: 10} + m_Offset: {x: 0, y: 0} + - _SurfaceNoise2: + m_Texture: {fileID: 2800000, guid: 89c13dff71f555349bbeed61fd7f0402, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _WaveNormal: + m_Texture: {fileID: 2800000, guid: 93c0aa606876cb04384552a948f281df, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - _DebugFoam: 0 + - _DebugUV2: 0 - _DeepAlpha: 0.9 - - _DepthMaxDistance: 0.5 - - _EdgeFoamWidth: 0.5 + - _DepthMax: 3.06 + - _DepthMaxDistance: 0.9 + - _EdgeDebug: 0 + - _EdgeFalloff: 2 + - _EdgeFoamPower: 1.84 + - _EdgeFoamWidth: 0.251 + - _EdgeStrength: 0.485 + - _EdgeThreshold: 0.1 + - _EdgeWidth: 0.2 + - _FoamCutoff: 0.397 + - _FoamDepth: 0.92 - _FoamDistance: 1 - - _FoamIntensity: 1 + - _FoamFalloff: 2.94 + - _FoamIntensity: 1.007 - _FoamMaxDistance: 1.2 - _FoamMinDistance: 0.1 + - _FoamNoiseCutoff: 0.5 + - _FoamNoiseScale: 3.13 + - _FoamNoiseScaleA: 0.49 + - _FoamNoiseScaleB: 1 + - _FoamNoiseSpeed: 0.1 + - _FoamNoiseSpeedA: 0.1 + - _FoamNoiseSpeedB: -0.07 + - _FoamScale: 1 + - _FoamSpeed: 0 + - _FoamTiling: 1 + - _FoamWidth: 3.81 - _FresnelPower: 5 - _NormalScale: 0.4 - _NormalSpeed: 0.1 @@ -53,19 +110,37 @@ Material: - _ShallowAlpha: 0.5 - _ShoreDistance: 1 - _ShoreFade: 1 - - _Smoothness: 0.493 + - _ShoreHeight: -4.3 + - _ShoreUV2Threshold: 0.552 + - _ShoreUVThreshold: 0.1 + - _Smoothness: 0.555 - _SurfaceDistortionAmount: 0.257 - - _SurfaceNoiseCutoff: 0 - - _SurfaceNoiseScale: 1.7 + - _SurfaceNoise2Scale: 1.6 + - _SurfaceNoiseCutoff: 0.222 + - _SurfaceNoiseScale: 1.25 - _TextureSpeed: 0.3 - - _WaveFrequency: 5 - - _WaveHeight: 0.1 - - _WaveSpeed: 1 + - _UseUVShore: 1 + - _VertexColorFoamWidth: 0.3 + - _WaveFrequency: 2.55 + - _WaveGerstnerOn: 0 + - _WaveHeight: 0.08 + - _WaveSineOn: 1 + - _WaveSpeed: 0.95 + - _WaveSteepness: 0.5 + - _WavesOn: 0 m_Colors: - - _DeepColor: {r: 0, g: 0.7264151, b: 0.67566013, a: 0.749} + - _BaseColor: {r: 0, g: 1, b: 0.9534545, a: 0.8509804} + - _Color: {r: 0, g: 0.5, b: 1, a: 0.8} + - _DeepColor: {r: 0, g: 0.9803924, b: 1, a: 0.78431374} - _FoamColor: {r: 1, g: 1, b: 1, a: 1} + - _FoamSpeed: {r: 0.1, g: 0.1, b: 0, a: 0} + - _FoamSpeedA: {r: 0.1, g: 0.1, b: 0, a: 0} + - _FoamSpeedB: {r: -0.08, g: 0.06, b: 0, a: 0} - _NormalTiling: {r: 40, g: 40, b: 0, a: 0} - - _ShallowColor: {r: 0.086908154, g: 0.8773585, b: 0.8218133, a: 1} + - _ShallowColor: {r: 0, g: 0.9806142, b: 1, a: 1} + - _WaterColor: {r: 0.19999996, g: 0.6, b: 0.8, a: 0.8} - _WaveDirection: {r: 1, g: 1, b: 0, a: 0} + - _WaveSpeed1: {r: 0.05, g: 0.03, b: 0, a: 0} + - _WaveSpeed2: {r: -0.03, g: 0.04, b: 0, a: 0} m_BuildTextureStacks: [] m_AllowLocking: 1 diff --git a/Assets/water.meta b/Assets/water.meta new file mode 100644 index 0000000000..2920bf25c1 --- /dev/null +++ b/Assets/water.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fa8f3034a9b2e34dbb43ab302864e9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/water/caust00.dds b/Assets/water/caust00.dds new file mode 100644 index 0000000000000000000000000000000000000000..2738f01b7b152f778e06b1fc1eef5011ace4f370 GIT binary patch literal 16511 zcmbW8*CWPo6$u?CVNUpi!9$Hne(uCVYh5rT-1L=b+D2+65m#((YVHG%i2G$b_CA*9%! zwI8zhvkqoSgowxpOBVm|@bJgKeiR|X=r5xvU-&)99oYe{7n#v}Aw^7d3E7w- zX~6&b_h0|pxwxOXH#2m8sJ5;a{z)lGQbk~}@fu;?uztg)?>BAyZX+X~@cCZn+Lyks z=6KB~sj;DP`26tQyLaI~KR3^PX<6x>2s5E@Sif#Pv})xlOW%F_9khMhc9fHpoTTY9 zqZfZoRgDGzJMmla;0HXT1d$Grz~YB9bawEpC6Eie4}S3!_+?)$TmJQONK#l4A|fId zMA)ANa;UGjPnw4zB;_-5@7BMa0;_+)wj)#EgCFGMc-{zcsLp_Gs1TkyuG{_$~vyzv44U%v>C09zGc!8pcidA~DTxi{Gl%tDt4emI0oT`=!g4uKH%x2In$U9~_vUmk$Ac zc6Ro2_yOP9*$MLef_#xXkL2X$K#~I3mV{rS?AhaI7PI@tg6HOQ_?NF-z97OkMg#~6 z-1t8Y{;wZFF7ViZJH{%1Ns5}2HISqrE?N3b9QMwmz~A;>gF}OsP`>oPcnTzfnF23< zW1n9AcXxFAXnt;PZgyrCUqJ0#3f*q}q--n)DG)*UHQFH0jZGrP=Dqlt2(X_WI$P6F z1O4WCSB%x%Srfu?5CH__;q9Kg?9pK;?S&qCcj-H@_XPEHPy3O|K#94I(27{X>K zX<%YwJMmnECdaRhKYaL5$UnUOAR@T+_x2;2Qje#4amoW;0eK|KFW8s1Z*SyYf`E-_ z+{nu`5uQkb5{dIZ;x?C&okaBR75v9uXG6 z4=jKuPnpsyBy_9)Rw&rHJW}Kr6nI4l*cJdu3X30eb%Pi3`cw6gNoQVi<6i(zk>JYd zvO`Hxm|qB)tU5IOW&D7L1m3M-NrCdgFA=b%i0}vz_~mH5{k?9@3%TlB3!WR4Z}l(Z zaqC}F2){=3`G3NX+TGxFj|fDfyZ-?*W~Bs^9oq``T4E?cD>>}xoP$4)oa(U zg=grlP>4!Z4yX~scE@?e-b`UgMA=ikpmc0v)vf(O4f3~qez+t{c{loYZ?q~HR!kh{U79Kh=`FLmO- zkNvn!2obOxYd>!M7QFC-94n&Wk>-_^v@T!_4hhyLtZ|Bt6e%9Ix3xnpZ7r7EW@+;m z1(G}F%RW8h+&u0uadiS^65&~eu^3dHZ@j>}>ajPm5wTEZX(j98Cyy4=A2r6%;80~* zrN<1yBeb*>e!wrr5AyErZm{*9>4jL)L;UDNQ#Yo7Dm`oD$BD@a4_%!Qc=ENt3xC+| zFgx`YJZo?_em74ycp>NO+z7d9F!V3wqgV^x;+GVQ!TaDR_=CLrbhn3;&7H1=Rlf2U zB8W`yz`5cR;unxb>FKQqWmQ@&)v=~LtQ=r~0BFyx&JbE8k@=1FHl4tS%G2-6yp2rW%565;=cU*LW4 z3%q7c_$7i5egcT7t)&f;2+yBAUl75;4|v+Y9^}q!%0hfZKoIFrQ^4#q1)|@q#qvE@ z#qkPYTjIOcebBs3Rp7T%0Dh11sSS=-%;SYAmRN(v-3 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 literal 0 HcmV?d00001 diff --git a/Assets/water/caust00.dds.meta b/Assets/water/caust00.dds.meta new file mode 100644 index 0000000000..cf85759ad3 --- /dev/null +++ b/Assets/water/caust00.dds.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 89c13dff71f555349bbeed61fd7f0402 +IHVImageFormatImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + isReadable: 0 + sRGBTexture: 1 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + ignoreMipmapLimit: 0 + mipmapLimitGroupName: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/water/caust10.dds b/Assets/water/caust10.dds new file mode 100644 index 0000000000000000000000000000000000000000..c2b963968031b50d8c3e8704faf8ab4052efdebc GIT binary patch literal 16511 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 TU9H6r<5F*?9>S)FZp{2Q+cnt^ literal 0 HcmV?d00001 diff --git a/Assets/water/caust10.dds.meta b/Assets/water/caust10.dds.meta new file mode 100644 index 0000000000..5955b11916 --- /dev/null +++ b/Assets/water/caust10.dds.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 064ebb4006db3934697a80619febcb44 +IHVImageFormatImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + isReadable: 0 + sRGBTexture: 1 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + ignoreMipmapLimit: 0 + mipmapLimitGroupName: + userData: + assetBundleName: + assetBundleVariant: