45 lines
1.2 KiB
HLSL
45 lines
1.2 KiB
HLSL
#ifndef SKYBOX_INCLUDED
|
|
#define SKYBOX_INCLUDED
|
|
|
|
#include "Assets/_Content/Shaders/Include/Noises.hlsl"
|
|
|
|
void Skybox_float
|
|
(
|
|
float3 ColorA,
|
|
float3 ColorB,
|
|
float3 ColorC,
|
|
float3 ColorD,
|
|
float3 PositionOS,
|
|
out float3 Color
|
|
)
|
|
{
|
|
float t = _Time.y;
|
|
|
|
float gradient = length(PositionOS - float3(0, 0, 50));
|
|
gradient += FBMNoise3D(PositionOS + float3(0, 0, t * 10), .1, 3, 2, .5) * 20 - 15;
|
|
gradient -= RidgedNoise3D(PositionOS + gradient * .3 + float3(0, 0, t * 4), .1, 1, 2, .5) * 7;
|
|
|
|
float3 c = ColorD;
|
|
c = lerp(c, ColorC, smoothstep(40, 0, gradient));
|
|
c = lerp(c, ColorB, smoothstep(26, 0, gradient));
|
|
c = lerp(c, ColorA, smoothstep(18, 0, gradient));
|
|
|
|
// 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
|
|
|
|
Color = c;
|
|
}
|
|
|
|
#endif
|