27 lines
876 B
HLSL
27 lines
876 B
HLSL
#include "RootConstants.hlsl"
|
|
|
|
float4 main(float3 ViewDir : TEXCOORD0) : SV_Target0
|
|
{
|
|
float3 dir = normalize(ViewDir);
|
|
|
|
// Simple Procedural Gradient Skybox Colors
|
|
float3 skyZenithColor = float3(0.05f, 0.15f, 0.45f); // Deep blue top
|
|
float3 skyHorizonColor = float3(0.4f, 0.6f, 0.9f); // Light blue horizon
|
|
float3 groundColor = float3(0.1f, 0.1f, 0.15f); // Dark ground
|
|
|
|
float t = dir.z; // -1 to 1 based on vertical alignment
|
|
|
|
float3 finalColor = groundColor;
|
|
|
|
if (t > 0.0f) {
|
|
// Blend from horizon to zenith
|
|
finalColor = lerp(skyHorizonColor, skyZenithColor, t);
|
|
} else {
|
|
// Ground - quick blend from horizon to ground
|
|
finalColor = lerp(skyHorizonColor, groundColor, saturate(-t * 2.0f));
|
|
}
|
|
|
|
// Combine with overall ambient lighting scale
|
|
return float4(finalColor, 1.0f);
|
|
}
|