HDR: Improve the parametrization of the atmosphere
This commit is contained in:
parent
7b0211031a
commit
6041eed8f7
11 changed files with 229 additions and 41 deletions
|
@ -24,12 +24,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -81,6 +87,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -91,6 +102,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -24,12 +24,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -79,6 +85,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -89,6 +100,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]</use>
|
||||
</aerosol-absorption-cross-section>
|
||||
<aerosol-scattering-cross-section type="vec4d">
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
</aerosol-scattering-cross-section>
|
||||
<aerosol-base-density>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-base-density</use>
|
||||
|
@ -24,12 +24,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -74,6 +80,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -84,6 +95,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -47,12 +47,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -405,6 +411,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -415,6 +426,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -34,12 +34,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -325,6 +331,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -335,6 +346,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]</use>
|
||||
</aerosol-absorption-cross-section>
|
||||
<aerosol-scattering-cross-section type="vec4d">
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
</aerosol-scattering-cross-section>
|
||||
<aerosol-base-density>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-base-density</use>
|
||||
|
@ -46,12 +46,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -533,6 +539,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -543,6 +554,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -53,12 +53,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -682,6 +688,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -692,6 +703,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -197,10 +197,10 @@
|
|||
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]</use>
|
||||
</aerosol-absorption-cross-section>
|
||||
<aerosol-scattering-cross-section type="vec4d">
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]</use>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]</use>
|
||||
</aerosol-scattering-cross-section>
|
||||
<aerosol-base-density>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-base-density</use>
|
||||
|
@ -211,12 +211,18 @@
|
|||
<aerosol-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
|
||||
</aerosol-scale-height>
|
||||
<aerosol-turbidity>
|
||||
<use>/sim/rendering/hdr/atmos/aerosol-turbidity</use>
|
||||
</aerosol-turbidity>
|
||||
<fog-density>
|
||||
<use>/sim/rendering/hdr/atmos/fog-density</use>
|
||||
</fog-density>
|
||||
<fog-scale-height>
|
||||
<use>/sim/rendering/hdr/atmos/fog-scale-height</use>
|
||||
</fog-scale-height>
|
||||
<fog-height-offset>
|
||||
<use>/sim/rendering/hdr/atmos/fog-height-offset</use>
|
||||
</fog-height-offset>
|
||||
<ozone-mean-dobson>
|
||||
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
|
||||
</ozone-mean-dobson>
|
||||
|
@ -1820,6 +1826,11 @@
|
|||
<type>float</type>
|
||||
<value><use>aerosol-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>aerosol_turbidity</name>
|
||||
<type>float</type>
|
||||
<value><use>aerosol-turbidity</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_density</name>
|
||||
<type>float</type>
|
||||
|
@ -1830,6 +1841,11 @@
|
|||
<type>float</type>
|
||||
<value><use>fog-scale-height</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>fog_height_offset</name>
|
||||
<type>float</type>
|
||||
<value><use>fog-height-offset</use></value>
|
||||
</uniform>
|
||||
<uniform>
|
||||
<name>ozone_mean_dobson</name>
|
||||
<type>float</type>
|
||||
|
|
|
@ -540,5 +540,14 @@
|
|||
|
||||
<darksky-brightness-magnitude type="float">22.0</darksky-brightness-magnitude>
|
||||
<galaxy-bulge-brightness-magnitude type="float">20.3</galaxy-bulge-brightness-magnitude>
|
||||
|
||||
<!-- Parameters used by the HDR atmosphere shaders -->
|
||||
<aerosols>
|
||||
<type type="int" userarchive="y">8</type>
|
||||
<turbidity type="float" userarchive="y">1.0</turbidity>
|
||||
</aerosols>
|
||||
<ground-albedo type="float" userarchive="y">0.3</ground-albedo>
|
||||
<fog-height-falloff type="float" userarchive="y">1.0</fog-height-falloff>
|
||||
<fog-height-offset type="float" userarchive="y">0.0</fog-height-offset>
|
||||
|
||||
</PropertyList>
|
||||
|
|
101
Nasal/hdr.nas
101
Nasal/hdr.nas
|
@ -13,27 +13,84 @@
|
|||
################################################################################
|
||||
# Atmosphere
|
||||
################################################################################
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[0]", 2.8722e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[1]", 4.6168e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[2]", 7.9706e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]", 1.3578e-23);
|
||||
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]", 1.5908e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]", 1.7711e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]", 2.0942e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]", 2.4033e-22);
|
||||
setlistener("/environment/aerosols/type", func(p) {
|
||||
var type = p.getValue();
|
||||
if (type == 7) { # Rural
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[0]", 5.0393e-23);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[1]", 8.0765e-23);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[2]", 1.3823e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]", 2.3383e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]", 2.6004e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]", 2.4844e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]", 2.8362e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]", 2.7494e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-base-density", 8.544e18);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-relative-background-density", 2.340824e-16);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scale-height", 0.73);
|
||||
} else { # Urban (default)
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[0]", 2.8722e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[1]", 4.6168e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[2]", 7.9706e-24);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[3]", 1.3578e-23);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[0]", 1.5908e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[1]", 1.7711e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[2]", 2.0942e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scattering-cross-section[3]", 2.4033e-22);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-base-density", 1.3681e17);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-relative-background-density", 1.4619e-17);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scale-height", 0.73);
|
||||
}
|
||||
}, 1, 0);
|
||||
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-base-density", 1.3681e17);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-relative-background-density", 1.4619e-17);
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-scale-height", 0.73);
|
||||
setprop("/sim/rendering/hdr/atmos/fog-density", 0.0);
|
||||
setprop("/sim/rendering/hdr/atmos/fog-scale-height", 1.0);
|
||||
setprop("/sim/rendering/hdr/atmos/ozone-mean-dobson", 347.0);
|
||||
setlistener("/environment/aerosols/turbidity", func(p) {
|
||||
setprop("/sim/rendering/hdr/atmos/aerosol-turbidity", p.getValue());
|
||||
}, 1, 0);
|
||||
|
||||
setprop("/sim/rendering/hdr/atmos/ground-albedo[0]", 0.4);
|
||||
setprop("/sim/rendering/hdr/atmos/ground-albedo[1]", 0.4);
|
||||
setprop("/sim/rendering/hdr/atmos/ground-albedo[2]", 0.4);
|
||||
setprop("/sim/rendering/hdr/atmos/ground-albedo[3]", 0.4);
|
||||
setlistener("/environment/ground-albedo", func(p) {
|
||||
var albedo = p.getValue();
|
||||
# Use the same albedo value for all wavelengths
|
||||
for (var i = 0; i < 4; i += 1) {
|
||||
setprop("/sim/rendering/hdr/atmos/ground-albedo[" ~ i ~ "]", albedo);
|
||||
}
|
||||
}, 1, 0);
|
||||
|
||||
# Update fog density when the visibility changes
|
||||
setlistener("/environment/visibility-m", func {
|
||||
var max = 30000000.0;
|
||||
var visibility = getprop("/environment/visibility-m");
|
||||
var vis = math.min(visibility, max);
|
||||
setprop("/sim/rendering/hdr/atmos/fog-density", max*math.pow(0.99937, vis));
|
||||
}, 1, 0);
|
||||
|
||||
setlistener("/environment/fog-height-falloff", func(p) {
|
||||
setprop("/sim/rendering/hdr/atmos/fog-scale-height", p.getValue());
|
||||
}, 1, 0);
|
||||
|
||||
setlistener("/environment/fog-height-offset", func(p) {
|
||||
setprop("/sim/rendering/hdr/atmos/fog-height-offset", p.getValue());
|
||||
}, 1, 0);
|
||||
|
||||
# Ozone concentration depends on the month of the year
|
||||
setlistener("/sim/time/utc/month", func {
|
||||
var ozone_mean_monthly_dobson = [
|
||||
347.0, # January
|
||||
370.0, # February
|
||||
381.0, # March
|
||||
384.0, # April
|
||||
372.0, # May
|
||||
352.0, # June
|
||||
333.0, # July
|
||||
317.0, # August
|
||||
298.0, # September
|
||||
285.0, # October
|
||||
290.0, # November
|
||||
315.0 # December
|
||||
];
|
||||
var month = getprop("/sim/time/utc/month") or 1;
|
||||
var index = math.clamp(month - 1, 0, 11);
|
||||
setprop("/sim/rendering/hdr/atmos/ozone-mean-dobson", ozone_mean_monthly_dobson[index]);
|
||||
}, 1, 0);
|
||||
|
||||
################################################################################
|
||||
# Environment map
|
||||
|
@ -230,11 +287,3 @@ envmap_warp_listener = setlistener("/sim/time/warp",
|
|||
setlistener("/sim/current-view/view-number", func {
|
||||
update_envmap(true);
|
||||
}, 0, 0);
|
||||
|
||||
# Update fog density when the visibility changes
|
||||
setlistener("/environment/visibility-m", func {
|
||||
var max = 30000000.0;
|
||||
var visibility = getprop("/environment/visibility-m");
|
||||
var vis = math.min(visibility, max);
|
||||
setprop("/sim/rendering/hdr/atmos/fog-density", max*math.pow(0.99937, vis));
|
||||
}, 1, 0);
|
||||
|
|
|
@ -15,8 +15,10 @@ uniform vec4 aerosol_scattering_cross_section;
|
|||
uniform float aerosol_base_density;
|
||||
uniform float aerosol_relative_background_density;
|
||||
uniform float aerosol_scale_height;
|
||||
uniform float aerosol_turbidity;
|
||||
uniform float fog_density;
|
||||
uniform float fog_scale_height;
|
||||
uniform float fog_height_offset;
|
||||
uniform float ozone_mean_dobson;
|
||||
uniform vec4 ground_albedo;
|
||||
|
||||
|
@ -171,8 +173,8 @@ vec4 get_molecular_absorption_coefficient(float h)
|
|||
*/
|
||||
float get_aerosol_density(float h)
|
||||
{
|
||||
return aerosol_base_density * (exp(-h / aerosol_scale_height)
|
||||
+ aerosol_relative_background_density);
|
||||
return aerosol_turbidity * aerosol_base_density
|
||||
* (exp(-h / aerosol_scale_height) + aerosol_relative_background_density);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -186,7 +188,7 @@ vec4 get_fog_scattering_coefficient(float h)
|
|||
{
|
||||
if (fog_density > 0.0) {
|
||||
return fog_scattering_cross_section * fog_density
|
||||
* exp(-h / fog_scale_height);
|
||||
* min(1.0, exp((-h + fog_height_offset) / fog_scale_height));
|
||||
} else {
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue