1struct Atmosphere {2 ground_albedo: vec3<f32>,3 /// Radius of the planet4 /// Units: m5 inner_radius: f32,6 /// Radius at which we consider the atmosphere to 'end' for out calculations (from center of planet)7 /// Units: m8 outer_radius: f32,9 /// Transform from world space to atmosphere space, inverse of the atmosphere entity's transform10 world_to_atmosphere: mat4x4<f32>,11}13struct AtmosphereSettings {14 transmittance_lut_size: vec2<u32>,15 multiscattering_lut_size: vec2<u32>,16 sky_view_lut_size: vec2<u32>,17 aerial_view_lut_size: vec3<u32>,18 transmittance_lut_samples: u32,19 multiscattering_lut_dirs: u32,20 multiscattering_lut_samples: u32,21 sky_view_lut_samples: u32,22 aerial_view_lut_samples: u32,23 aerial_view_lut_max_distance: f32,24 sky_max_samples: u32,25 rendering_method: u32,26}28/// "Atmosphere space" uses local up for the zenith so the horizon-detail29/// parameterization concentrates texels at the viewer's horizon. Azimuth uses a30/// world-fixed reference so the terminator stays stable when tilting the camera.31struct AtmosphereTransforms {32 world_from_atmosphere: mat4x4<f32>,33 atmosphere_from_world: mat4x4<f32>,34}