|
Blender V5.0
|
Public Member Functions | |
| SkyMultipleScattering (const float air_density, const float aerosol_density, const float ozone_density) | |
| float4 | get_transmittance (const float cos_theta, const float normalized_altitude) const |
| float4 | get_inscattering (const float3 sun_dir, const float3 ray_origin, const float3 ray_dir, const float t_d) const |
| void | precompute_lut () |
Protected Member Functions | |
| void | get_atmosphere_collision_coefficients (const float altitude, float4 &aerosol_absorption, float4 &aerosol_scattering, float4 &molecular_absorption, float4 &molecular_scattering) const |
| float4 | lookup_multiscattering (float cos_theta, float normalized_height, float d) const |
| float4 | lookup_transmittance (const float cos_theta, const float normalized_altitude) const |
| float4 | lookup_transmittance_at_ground (const float cos_theta) const |
| float4 | lookup_transmittance_to_sun (const float normalized_altitude) const |
Protected Attributes | |
| float4 | transmittance_lut [TRANSMITTANCE_RES_Y][TRANSMITTANCE_RES_X] |
| float | air_density |
| float | aerosol_density |
| float | ozone_density |
Definition at line 122 of file sky_multiple_scattering.cpp.
|
inline |
Definition at line 124 of file sky_multiple_scattering.cpp.
References aerosol_density, air_density, and ozone_density.
|
inlineprotected |
Definition at line 228 of file sky_multiple_scattering.cpp.
References AEROSOL_ABSORPTION_CROSS_SECTION, aerosol_density, AEROSOL_SCATTERING_CROSS_SECTION, air_density, get_aerosol_density(), get_molecular_absorption_coefficient(), get_molecular_scattering_coefficient(), and ozone_density.
Referenced by get_inscattering(), and get_transmittance().
|
inline |
Definition at line 161 of file sky_multiple_scattering.cpp.
References aerosol_phase_function(), ATMOSPHERE_THICKNESS, cos_theta(), dot(), EARTH_RADIUS, exp, fmaxf, get_atmosphere_collision_coefficients(), i, IN_SCATTERING_STEPS, float3::length(), lookup_multiscattering(), lookup_transmittance(), make_float4, max, molecular_phase_function(), and SUN_SPECTRAL_IRRADIANCE.
Referenced by SKY_multiple_scattering_precompute_texture().
|
inline |
Definition at line 132 of file sky_multiple_scattering.cpp.
References ATMOSPHERE_RADIUS, cos_theta(), EARTH_RADIUS, exp, fmaxf, get_atmosphere_collision_coefficients(), float3::length(), make_float3(), make_float4, mix, ray_sphere_intersection(), result, step, sun_direction(), and TRANSMITTANCE_STEPS.
Referenced by precompute_lut(), and SKY_multiple_scattering_precompute_sun().
|
inlineprotected |
Definition at line 241 of file sky_multiple_scattering.cpp.
References cos_theta(), EARTH_RADIUS, expf, GROUND_ALBEDO, lookup_transmittance_at_ground(), lookup_transmittance_to_sun(), M_1_PI_F, M_2PI_F, make_float4, PHASE_ISOTROPIC, safe_sqrtf(), and sqr.
Referenced by get_inscattering().
|
inlineprotected |
Definition at line 261 of file sky_multiple_scattering.cpp.
References cos_theta(), float, min, mix, saturate, top, transmittance_lut, TRANSMITTANCE_RES_X, TRANSMITTANCE_RES_Y, v, x, and y.
Referenced by get_inscattering().
|
inlineprotected |
Definition at line 279 of file sky_multiple_scattering.cpp.
References cos_theta(), float, min, mix, saturate, transmittance_lut, TRANSMITTANCE_RES_X, x, and y.
Referenced by lookup_multiscattering().
|
inlineprotected |
Definition at line 290 of file sky_multiple_scattering.cpp.
References float, min, mix, saturate, transmittance_lut, TRANSMITTANCE_RES_X, TRANSMITTANCE_RES_Y, v, x, and y.
Referenced by lookup_multiscattering().
|
inline |
Definition at line 208 of file sky_multiple_scattering.cpp.
References begin(), get_transmittance(), make_float2, SKY_parallel_for(), transmittance_lut, TRANSMITTANCE_RES_X, TRANSMITTANCE_RES_Y, float2::x, x, float2::y, and y.
Referenced by SKY_multiple_scattering_precompute_texture().
|
protected |
Definition at line 224 of file sky_multiple_scattering.cpp.
Referenced by get_atmosphere_collision_coefficients(), and SkyMultipleScattering().
|
protected |
Definition at line 223 of file sky_multiple_scattering.cpp.
Referenced by get_atmosphere_collision_coefficients(), and SkyMultipleScattering().
|
protected |
Definition at line 225 of file sky_multiple_scattering.cpp.
Referenced by get_atmosphere_collision_coefficients(), and SkyMultipleScattering().
|
protected |
Definition at line 222 of file sky_multiple_scattering.cpp.
Referenced by lookup_transmittance(), lookup_transmittance_at_ground(), lookup_transmittance_to_sun(), and precompute_lut().