XRoom_Unity/Assets/beantowel/Aerosol/Shaders/header.hlsl
2025-05-31 10:20:20 +03:30

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);