53 lines
2.2 KiB
HLSL
53 lines
2.2 KiB
HLSL
|
|
#define IN(x) const in x
|
|
#define OUT(x) out x
|
|
#define TEMPLATE(x)
|
|
#define TEMPLATE_ARGUMENT(x)
|
|
#define assert(x)
|
|
|
|
static const int TRANSMITTANCE_TEXTURE_WIDTH = 256;
|
|
static const int TRANSMITTANCE_TEXTURE_HEIGHT = 64;
|
|
static const int SCATTERING_TEXTURE_R_SIZE = 32;
|
|
static const int SCATTERING_TEXTURE_MU_SIZE = 128;
|
|
static const int SCATTERING_TEXTURE_MU_S_SIZE = 32;
|
|
static const int SCATTERING_TEXTURE_NU_SIZE = 8;
|
|
static const int IRRADIANCE_TEXTURE_WIDTH = 64;
|
|
static const int IRRADIANCE_TEXTURE_HEIGHT = 16;
|
|
|
|
static const int2 TRANSMITTANCE_TEXTURE_SIZE = int2(TRANSMITTANCE_TEXTURE_WIDTH, TRANSMITTANCE_TEXTURE_HEIGHT);
|
|
static const int3 SCATTERING_TEXTURE_SIZE = int3(
|
|
SCATTERING_TEXTURE_NU_SIZE * SCATTERING_TEXTURE_MU_S_SIZE,
|
|
SCATTERING_TEXTURE_MU_SIZE,
|
|
SCATTERING_TEXTURE_R_SIZE);
|
|
static const int2 IRRADIANCE_TEXTURE_SIZE = int2(IRRADIANCE_TEXTURE_WIDTH, IRRADIANCE_TEXTURE_HEIGHT);
|
|
|
|
AtmosphereParameters _ATMOSPHERE()
|
|
{
|
|
AtmosphereParameters a;
|
|
a.solar_irradiance = float3(1.474,1.8504,1.91198);
|
|
a.sun_angular_radius = 0.004675;
|
|
a.bottom_radius = 6360;
|
|
a.top_radius = 6420;
|
|
a.rayleigh_density = _DensityProfile(
|
|
_DensityProfileLayer(0,0,0,0,0),
|
|
_DensityProfileLayer(0,1,-0.125,0,0));
|
|
a.rayleigh_scattering = float3(0.00580233938171238,0.0135577624479202,0.0331000059763677);
|
|
a.mie_density = _DensityProfile(
|
|
_DensityProfileLayer(0,0,0,0,0),
|
|
_DensityProfileLayer(0,1,-0.833333333333333,0,0));
|
|
a.mie_scattering = float3(0.003996,0.003996,0.003996);
|
|
a.mie_extinction = float3(0.00444,0.00444,0.00444);
|
|
a.mie_phase_function_g = 0.8;
|
|
a.absorption_density = _DensityProfile(
|
|
_DensityProfileLayer(25,0,0,0.0666666666666667,-0.666666666666667),
|
|
_DensityProfileLayer(0,0,0,-0.0666666666666667,2.66666666666667));
|
|
a.absorption_extinction = float3(0.0006497166,0.0018809,8.501668e-05);
|
|
a.ground_albedo = float3(0.1,0.1,0.1);
|
|
a.mu_s_min = -0.207911690817759;
|
|
return a;
|
|
}
|
|
|
|
static const AtmosphereParameters ATMOSPHERE = _ATMOSPHERE();
|
|
static const float3 SKY_SPECTRAL_RADIANCE_TO_LUMINANCE = float3(114975.3,71305.86,65311.04);
|
|
static const float3 SUN_SPECTRAL_RADIANCE_TO_LUMINANCE = float3(98242.78,69954.39,66475.27);
|