43 lines
1.1 KiB
HLSL
43 lines
1.1 KiB
HLSL
#ifndef WATER_INCLUDED
|
|
#define WATER_INCLUDED
|
|
|
|
#include "Assets/_Content/Shaders/Include/Noises.hlsl"
|
|
|
|
void Water_float
|
|
(
|
|
float3 PositionWS,
|
|
float3 NormalWS,
|
|
out float3 Position,
|
|
out float Height
|
|
)
|
|
{
|
|
float t = _Time.y;
|
|
|
|
float depth = length(PositionWS - _WorldSpaceCameraPos.xyz);
|
|
|
|
float height = PerlinNoise3D(PositionWS + float3(0, 0, t), .8) * .8;
|
|
height = dot(height, PerlinNoise3D(PositionWS + float3(t * .2, 0, t * .5), 1.7));
|
|
height = pow(height, .5);
|
|
|
|
// Test
|
|
|
|
//float test = ValueNoise3D(PositionWS, 40);
|
|
//float test = PerlinNoise3D(PositionWS, 40);
|
|
//float test = PerlinNoise3DLOD(PositionWS, 100, 3.5);
|
|
//float test = SimplexNoise3D(PositionWS, 40);
|
|
//float test = WorleyNoise3D(PositionWS, 40, 1);
|
|
//float id;
|
|
//float test = VoronoiNoise3D(PositionWS, 10, 1, .05, id);
|
|
//float test = FBMNoise3D(PositionWS, 10, 2, 2, .5);
|
|
//float test = RidgedNoise3D(PositionWS, 10, 2, 2, .5);
|
|
|
|
// Output
|
|
|
|
Position = PositionWS;
|
|
Position.y += height * .4f - .2;
|
|
|
|
Height = height;
|
|
}
|
|
|
|
#endif
|