Files
zzwater/Packages/zzwater/shaders/ocean_tess.shader
2024-07-19 21:39:29 +08:00

97 lines
2.9 KiB
Plaintext

Shader "zzwater/ocean_tess"
{
Properties
{
_Direction("Animation direction", Vector) = (0,-1,0,0)
_Speed("Animation Speed", Float) = 1
//Tessellation
_TessValue("Max subdivisions", Range(1, 64)) = 16
_TessMin("Start Distance", Float) = 0
_TessMax("End Distance", Float) = 15
//Color + Transparency
[HDR]_BaseColor("Deep", Color) = (0, 0.44, 0.62, 1)
[HDR]_ShallowColor("Shallow", Color) = (0.1, 0.9, 0.89, 0.02)
[HDR]_HorizonColor("Horizon", Color) = (0.84, 1, 1, 0.15)
_HorizonDistance("Horizon Distance", Range(0.01 , 32)) = 8
_DepthVertical("View Depth", Range(0.01 , 16)) = 4
_DepthHorizontal("Vertical Height Depth", Range(0.01 , 8)) = 1
_EdgeFade("Edge Fade", Float) = 0.1
_TranslucencyStrengthDirect("Translucency Strength (Direct)", Range(0 , 0.5)) = 0.05
_ReflectionStrength("Reflection Strength", Range(0, 1)) = 1
_ReflectionBlur("Probe Blur Factor", Range(0, 1)) = 0
_ReflectionFresnel("Reflection Curvature mask", Range(0.01, 20)) = 5
_RefractionStrength("Refraction Strength", Range(0, 1)) = 0.1
//waves
_WaveSpeed("Speed", Float) = 2
_WaveHeight("Height", Range(0 , 10)) = 0.25
_WaveNormalStr("Normal Strength", Range(0 , 32)) = 0.5
_WaveDistance("Distance", Range(0 , 1)) = 0.8
_WaveFadeDistance("Wave fade distance (Start/End)", Vector) = (150, 300, 0, 0)
_WaveSteepness("Steepness", Range(0 , 5)) = 0.1
_WaveCount("Count", Range(1 , 5)) = 1
_WaveDirection("Direction", vector) = (1,1,1,1)
}
SubShader
{
Tags
{
"RenderType" = "Transparent"
"RenderPipeline" = "UniversalPipeline"
"UniversalMaterialType" = "Lit"
"IgnoreProjector" = "True"
"Queue" = "Transparent+0"
}
Pass
{
Name "ForwardLit"
Tags { "LightMode"="UniversalForward" }
Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
ZWrite Off
Cull Back
ZTest LEqual
ZClip On
HLSLPROGRAM
#pragma target 4.6
#pragma exclude_renderers gles
#define TESSELLATION_ON
#pragma require tessellation tessHW
#pragma hull Hull
#pragma domain Domain
#pragma multi_compile_instancing
#pragma instancing_options renderinglayer
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
#include "Packages/zzwater/shaders/libs/URP.hlsl"
#include "Packages/zzwater/shaders/libs/Common.hlsl"
#include "Packages/zzwater/shaders/libs/Input.hlsl"
#include "Packages/zzwater/shaders/libs/Waves.hlsl"
#pragma vertex VertexTessellation
#include "Packages/zzwater/shaders/libs/Tesselation.hlsl"
#pragma fragment ForwardPassFragment
#include "Packages/zzwater/shaders/libs/ForwardPass.hlsl"
ENDHLSL
}
}
FallBack "Diffuse"
}