1
0
Fork 0
fgdata/Effects/moon.eff
Fernando García Liñán 746532f098 HDR: Render the Moon, stars and planets
Moon textures have been adapted from the following webpage:

https://svs.gsfc.nasa.gov/4720
NASA's Scientific Visualization Studio
2023-11-06 14:56:45 +01:00

122 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/moon</name>
<parameters>
<texture n="1">
<image>Textures/Sky/moon_color.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<mag-filter>linear-mipmap-linear</mag-filter>
<wrap-s>clamp-to-edge</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
<internal-format>normalized</internal-format>
</texture>
<texture n="2">
<image>Textures/Sky/moon_n.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<mag-filter>linear-mipmap-linear</mag-filter>
<wrap-s>clamp-to-edge</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
<internal-format>normalized</internal-format>
</texture>
<!-- exposure.glsl -->
<exposure-compensation>
<use>/sim/rendering/hdr/exposure-compensation</use>
</exposure-compensation>
</parameters>
<!-- Fixed-pipeline fallback -->
<technique n="11">
<pass>
<!--
An empty pass should be fine as we are filling the stateset manually
in simgear/scene/sky/moon.cxx
-->
</pass>
</technique>
<technique n="129">
<scheme>hdr-forward</scheme>
<pass>
<!-- Disable depth testing -->
<depth>
<enabled>false</enabled>
</depth>
<!-- Only render the moon on top of the skydome -->
<stencil>
<function>equal</function>
<value>0</value>
</stencil>
<!-- Make sure we render after the skydome -->
<render-bin>
<bin-number>-5</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<!-- Color map -->
<texture-unit>
<unit>1</unit>
<type><use>texture[1]/type</use></type>
<image><use>texture[1]/image</use></image>
<filter><use>texture[1]/filter</use></filter>
<mag-filter><use>texture[1]/mag-filter</use></mag-filter>
<wrap-s><use>texture[1]/wrap-s</use></wrap-s>
<wrap-t><use>texture[1]/wrap-t</use></wrap-t>
</texture-unit>
<!-- Normal map -->
<texture-unit>
<unit>2</unit>
<type><use>texture[2]/type</use></type>
<image><use>texture[2]/image</use></image>
<filter><use>texture[2]/filter</use></filter>
<mag-filter><use>texture[2]/mag-filter</use></mag-filter>
<wrap-s><use>texture[2]/wrap-s</use></wrap-s>
<wrap-t><use>texture[2]/wrap-t</use></wrap-t>
</texture-unit>
<cull-face>back</cull-face>
<!-- Additive blending to add the sky in-scattering from the skydome -->
<blend>
<active>true</active>
<source>one</source>
<destination>one</destination>
</blend>
<program>
<vertex-shader>Shaders/HDR/moon.vert</vertex-shader>
<fragment-shader>Shaders/HDR/moon.frag</fragment-shader>
<fragment-shader>Shaders/HDR/math.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/color.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/normalmap.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/atmos_spectral.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/exposure.glsl</fragment-shader>
</program>
<uniform>
<name>color_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
<uniform>
<name>normal_tex</name>
<type>sampler-2d</type>
<value type="int">2</value>
</uniform>
<uniform>
<name>transmittance_tex</name>
<type>sampler-2d</type>
<value type="int">12</value>
</uniform>
<!-- exposure.glsl -->
<uniform>
<name>lum_tex</name>
<type>sampler-2d</type>
<value type="int">14</value>
</uniform>
<uniform>
<name>exposure_compensation</name>
<type>float</type>
<value><use>exposure-compensation</use></value>
</uniform>
</pass>
</technique>
</PropertyList>