1
0
Fork 0
fgdata/Effects/HDR/atmos-aerial-perspective.eff
Fernando García Liñán 691337a00e HDR: Add separate fog layer to atmosphere
Also use Nasal to feed the shaders' uniforms. Much better than running
the computations on the GPU.
2023-04-21 02:15:42 +02:00

106 lines
4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/atmos-aerial-perspective</name>
<parameters>
<!-- atmos.glsl -->
<aerosol-absorption-cross-section type="vec4d">
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[0]</use>
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[1]</use>
<use>/sim/rendering/hdr/atmos/aerosol-absorption-cross-section[2]</use>
<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>
</aerosol-scattering-cross-section>
<aerosol-base-density>
<use>/sim/rendering/hdr/atmos/aerosol-base-density</use>
</aerosol-base-density>
<aerosol-relative-background-density>
<use>/sim/rendering/hdr/atmos/aerosol-relative-background-density</use>
</aerosol-relative-background-density>
<aerosol-scale-height>
<use>/sim/rendering/hdr/atmos/aerosol-scale-height</use>
</aerosol-scale-height>
<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>
<ozone-mean-dobson>
<use>/sim/rendering/hdr/atmos/ozone-mean-dobson</use>
</ozone-mean-dobson>
<ground-albedo type="vec4d">
<use>/sim/rendering/hdr/atmos/ground-albedo[0]</use>
<use>/sim/rendering/hdr/atmos/ground-albedo[1]</use>
<use>/sim/rendering/hdr/atmos/ground-albedo[2]</use>
<use>/sim/rendering/hdr/atmos/ground-albedo[3]</use>
</ground-albedo>
</parameters>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/quad.vert</vertex-shader>
<fragment-shader>Shaders/HDR/atmos_aerial_perspective.frag</fragment-shader>
<fragment-shader>Shaders/HDR/math.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/pos_from_depth.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/atmos.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/atmos_spectral.glsl</fragment-shader>
</program>
<uniform>
<name>transmittance_lut</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<!-- atmos.glsl -->
<uniform>
<name>aerosol_absorption_cross_section</name>
<type>float-vec4</type>
<value><use>aerosol-absorption-cross-section</use></value>
</uniform>
<uniform>
<name>aerosol_scattering_cross_section</name>
<type>float-vec4</type>
<value><use>aerosol-scattering-cross-section</use></value>
</uniform>
<uniform>
<name>aerosol_base_density</name>
<type>float</type>
<value><use>aerosol-base-density</use></value>
</uniform>
<uniform>
<name>aerosol_relative_background_density</name>
<type>float</type>
<value><use>aerosol-relative-background-density</use></value>
</uniform>
<uniform>
<name>aerosol_scale_height</name>
<type>float</type>
<value><use>aerosol-scale-height</use></value>
</uniform>
<uniform>
<name>fog_density</name>
<type>float</type>
<value><use>fog-density</use></value>
</uniform>
<uniform>
<name>fog_scale_height</name>
<type>float</type>
<value><use>fog-scale-height</use></value>
</uniform>
<uniform>
<name>ozone_mean_dobson</name>
<type>float</type>
<value><use>ozone-mean-dobson</use></value>
</uniform>
<uniform>
<name>ground_albedo</name>
<type>float-vec4</type>
<value><use>ground-albedo</use></value>
</uniform>
</pass>
</technique>
</PropertyList>