58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
// Crest Water System
|
|
// Copyright © 2024 Wave Harmonic. All rights reserved.
|
|
|
|
// Renders water depth - signed distance from sea level to sea floor
|
|
Shader "Crest/Inputs/Depth/Water Depth From Geometry"
|
|
{
|
|
Properties
|
|
{
|
|
[HideInInspector]
|
|
_Crest_Version("Version", Integer) = 0
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
ZTest Always
|
|
ZWrite Off
|
|
|
|
Pass
|
|
{
|
|
BlendOp Max
|
|
ColorMask R
|
|
|
|
CGPROGRAM
|
|
#pragma vertex Vert
|
|
#pragma fragment Frag
|
|
|
|
#include "UnityCG.cginc"
|
|
#include "Packages/com.waveharmonic.crest/Runtime/Shaders/Library/Constants.hlsl"
|
|
|
|
struct Attributes
|
|
{
|
|
float3 positionOS : POSITION;
|
|
};
|
|
|
|
struct Varyings
|
|
{
|
|
float4 positionCS : SV_POSITION;
|
|
float terrainHeight : TEXCOORD0;
|
|
};
|
|
|
|
Varyings Vert(Attributes input)
|
|
{
|
|
Varyings o;
|
|
o.positionCS = UnityObjectToClipPos(input.positionOS);
|
|
o.terrainHeight = mul(unity_ObjectToWorld, float4(input.positionOS, 1.0)).y;
|
|
return o;
|
|
}
|
|
|
|
float4 Frag(Varyings input) : SV_Target
|
|
{
|
|
return float4(input.terrainHeight, 0.0, 0.0, 0.0);
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
CustomEditor "WaveHarmonic.Crest.Editor.CustomShaderGUI"
|
|
}
|