<?xml version="1.0" encoding="utf-8"?> <PropertyList> <name>Effects/runway</name> <inherits-from>Effects/terrain-default</inherits-from> <parameters> <texture n="4"> <image>Textures/Runway/rwy-normalmap.png</image> <filter>linear-mipmap-linear</filter> <wrap-s>repeat</wrap-s> <wrap-t>repeat</wrap-t> <internal-format>normalized</internal-format> </texture> <texture n="5"> <type>cubemap</type> <!-- use this form for a cube cross --> <!--<image>Aircraft/Generic/Effects/CubeCrosses/blue_sky_big.jpg</image>--> <!-- use this form for a 6 image cube map --> <images> <positive-x>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_px.png</positive-x> <negative-x>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_nx.png</negative-x> <positive-y>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_py.png</positive-y> <negative-y>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_ny.png</negative-y> <positive-z>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_pz.png</positive-z> <negative-z>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_nz.png</negative-z> </images> </texture> <texture n="6"> <image>Aircraft/Generic/Effects/Rainbow.png</image> <filter>linear-mipmap-linear</filter> <wrap-s>repeat</wrap-s> <wrap-t>repeat</wrap-t> <internal-format>normalized</internal-format> </texture> <texture n="7"> <image>Aircraft/Generic/Effects/FresnelLookUp.png</image> <filter>linear-mipmap-linear</filter> <wrap-s>repeat</wrap-s> <wrap-t>repeat</wrap-t> <internal-format>normalized</internal-format> </texture> <texture n="8"> <image>Textures/Runway/rwy-reflect.png</image> <filter>linear-mipmap-linear</filter> <wrap-s>repeat</wrap-s> <wrap-t>repeat</wrap-t> <internal-format>normalized</internal-format> </texture> <rendering-hint>transparent</rendering-hint> <shade-model>smooth</shade-model> <rainbowiness type="float">0.01</rainbowiness> <fresneliness type="float">0.01</fresneliness> <noisiness type="float">0.15</noisiness> <ambient_correction type="float">-0.15</ambient_correction> <normalmap_dds type="float">0.0</normalmap_dds> <vertex-program-two-side type="bool">false</vertex-program-two-side> <cull-face>back</cull-face> <rnorm> <use>/environment/rain-norm</use> </rnorm> <!-- BEGIN fog include --> <visibility><use>/environment/ground-visibility-m</use></visibility> <avisibility><use>/environment/visibility-m</use></avisibility> <lthickness><use>/environment/ground-haze-thickness-m</use></lthickness> <scattering><use>/rendering/scene/scattering</use></scattering> <ground_scattering><use>/environment/surface/scattering</use></ground_scattering> <terminator><use>/environment/terminator-relative-position-m</use></terminator> <terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt> <overcast><use>/rendering/scene/overcast</use></overcast> <eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt> <snow_level><use>/environment/snow-level-m</use></snow_level> <dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor> <lichen_cover_factor><use>/environment/surface/lichen-cover-factor</use></lichen_cover_factor> <snow_thickness_factor><use>/environment/surface/snow-thickness-factor</use></snow_thickness_factor> <wetness><use>/environment/surface/wetness</use></wetness> <fogtype><use>/sim/rendering/shaders/skydome</use></fogtype> <fogstructure><use>/environment/fog-structure</use></fogstructure> <cloud_self_shading><use>/environment/cloud-self-shading</use></cloud_self_shading> <moonlight><use>/environment/moonlight</use></moonlight> <quality_level><use>/sim/rendering/shaders/landmass</use></quality_level> <tquality_level><use>/sim/rendering/shaders/transition</use></tquality_level> <!-- END fog include --> </parameters> <generate> <tangent type="int">6</tangent> <binormal type="int">7</binormal> </generate> <technique n="2"> <predicate> <and> <property>/sim/rendering/shaders/skydome</property> <or> <less-equal> <value type="float">4.0</value> <float-property>/sim/rendering/shaders/landmass</float-property> </less-equal> <less-equal> <value type="float">3.0</value> <float-property>/sim/rendering/shaders/transition</float-property> </less-equal> </or> <or> <less-equal> <value type="float">2.0</value> <glversion/> </less-equal> <and> <extension-supported>GL_ARB_shader_objects</extension-supported> <extension-supported>GL_ARB_shading_language_100</extension-supported> <extension-supported>GL_ARB_vertex_shader</extension-supported> <extension-supported>GL_ARB_fragment_shader</extension-supported> </and> </or> </and> </predicate> <pass> <lighting>true</lighting> <material> <ambient><use>material/ambient</use></ambient> <diffuse><use>material/diffuse</use></diffuse> <specular><use>material/specular</use></specular> <emissive><use>material/emissive</use></emissive> <shininess><use>material/shininess</use></shininess> <color-mode>ambient-and-diffuse</color-mode> </material> <alpha-test><use>transparent</use></alpha-test> <shade-model>smooth</shade-model> <cull-face>back</cull-face> <render-bin> <bin-number>-1</bin-number> <bin-name>RenderBin</bin-name> </render-bin> <program> <vertex-shader>Shaders/trivial.vert</vertex-shader> <fragment-shader>Shaders/trivial.frag</fragment-shader> </program> <color-mask type="vec4d">0 0 0 0</color-mask> </pass> <pass> <lighting>true</lighting> <material> <ambient><use>material/ambient</use></ambient> <diffuse><use>material/diffuse</use></diffuse> <specular><use>material/specular</use></specular> <emissive><use>material/emissive</use></emissive> <shininess><use>material/shininess</use></shininess> <color-mode>ambient-and-diffuse</color-mode> </material> <blend><use>transparent</use></blend> <alpha-test><use>transparent</use></alpha-test> <shade-model>smooth</shade-model> <cull-face>back</cull-face> <render-bin> <bin-number><use>render-bin/bin-number</use></bin-number> <bin-name><use>render-bin/bin-name</use></bin-name> </render-bin> <texture-unit> <unit>0</unit> <image><use>texture[0]/image</use></image> <filter><use>texture[0]/filter</use></filter> <wrap-s><use>texture[0]/wrap-s</use></wrap-s> <wrap-t><use>texture[0]/wrap-t</use></wrap-t> <internal-format><use>texture[0]/internal-format</use></internal-format> </texture-unit> <texture-unit> <unit>4</unit> <image><use>texture[4]/image</use></image> <filter><use>texture[4]/filter</use></filter> <wrap-s><use>texture[4]/wrap-s</use></wrap-s> <wrap-t><use>texture[4]/wrap-t</use></wrap-t> <internal-format><use>texture[4]/internal-format</use></internal-format> </texture-unit> <texture-unit> <unit>5</unit> <image><use>texture[12]/image</use></image> <filter><use>texture[12]/filter</use></filter> <wrap-s><use>texture[12]/wrap-s</use></wrap-s> <wrap-t><use>texture[12]/wrap-t</use></wrap-t> <internal-format><use>texture[12]/internal-format</use></internal-format> </texture-unit> <texture-unit> <unit>6</unit> <image><use>texture[10]/image</use></image> <filter><use>texture[10]/filter</use></filter> <wrap-s><use>texture[10]/wrap-s</use></wrap-s> <wrap-t><use>texture[10]/wrap-t</use></wrap-t> <internal-format><use>texture[10]/internal-format</use></internal-format> </texture-unit> <texture-unit> <unit>7</unit> <image><use>texture[11]/image</use></image> <filter><use>texture[11]/filter</use></filter> <wrap-s><use>texture[11]/wrap-s</use></wrap-s> <wrap-t><use>texture[11]/wrap-t</use></wrap-t> <internal-format><use>texture[11]/internal-format</use></internal-format> </texture-unit> <program> <vertex-shader>Shaders/terrain-haze-ultra.vert</vertex-shader> <fragment-shader>Shaders/runway-lightfield.frag</fragment-shader> </program> <uniform> <name>visibility</name> <type>float</type> <value><use>visibility</use></value> </uniform> <uniform> <name>avisibility</name> <type>float</type> <value><use>avisibility</use></value> </uniform> <uniform> <name>hazeLayerAltitude</name> <type>float</type> <value><use>lthickness</use></value> </uniform> <uniform> <name>scattering</name> <type>float</type> <value><use>scattering</use></value> </uniform> <uniform> <name>ground_scattering</name> <type>float</type> <value><use>ground_scattering</use></value> </uniform> <uniform> <name>terminator</name> <type>float</type> <value><use>terminator</use></value> </uniform> <uniform> <name>terrain_alt</name> <type>float</type> <value><use>terrain_alt</use></value> </uniform> <uniform> <name>overcast</name> <type>float</type> <value><use>overcast</use></value> </uniform> <uniform> <name>eye_alt</name> <type>float</type> <value><use>eye_alt</use></value> </uniform> <uniform> <name>snowlevel</name> <type>float</type> <value><use>snow_level</use></value> </uniform> <uniform> <name>snow_thickness_factor</name> <type>float</type> <value> <use>snow_thickness_factor</use></value> </uniform> <uniform> <name>dust_cover_factor</name> <type>float</type> <value><use>dust_cover_factor</use></value> </uniform> <uniform> <name>lichen_cover_factor</name> <type>float</type> <value> <use>lichen_cover_factor</use></value> </uniform> <uniform> <name>wetness</name> <type>float</type> <value><use>wetness</use></value> </uniform> <uniform> <name>fogstructure</name> <type>float</type> <value><use>fogstructure</use></value> </uniform> <uniform> <name>cloud_self_shading</name> <type>float</type> <value><use>cloud_self_shading</use></value> </uniform> <uniform> <name>moonlight</name> <type>float</type> <value><use>moonlight</use></value> </uniform> <uniform> <name>quality_level</name> <type>int</type> <value><use>quality_level</use></value> </uniform> <uniform> <name>tquality_level</name> <type>int</type> <value><use>tquality_level</use></value> </uniform> <uniform> <name>texture</name> <type>sampler-2d</type> <value type="int">0</value> </uniform> <uniform> <name>NormalTex</name> <type>sampler-2d</type> <value type="int">4</value> </uniform> <uniform> <name>mix_texture</name> <type>sampler-2d</type> <value type="int">5</value> </uniform> <uniform> <name>snow_texture</name> <type>sampler-2d</type> <value type="int">6</value> </uniform> <uniform> <name>detail_texture</name> <type>sampler-2d</type> <value type="int">7</value> </uniform> <uniform> <name>colorMode</name> <type>int</type> <value>2</value> <!-- AMBIENT_AND_DIFFUSE --> </uniform> <depth> <function>lequal</function> <write-mask type="bool">false</write-mask> </depth> </pass> </technique> <technique n="8"> <predicate> <and> <property>/sim/rendering/shaders/generic</property> <property>/sim/rendering/rembrandt/enabled</property> <or> <less-equal> <value type="float">2.0</value> <glversion/> </less-equal> <and> <extension-supported>GL_ARB_shader_objects</extension-supported> <extension-supported>GL_ARB_shading_language_100</extension-supported> <extension-supported>GL_ARB_vertex_shader</extension-supported> <extension-supported>GL_ARB_fragment_shader</extension-supported> </and> </or> </and> </predicate> <pass> <texture-unit> <unit>0</unit> <image> <use>texture[0]/image</use> </image> <filter> <use>texture[0]/filter</use> </filter> <wrap-s> <use>texture[0]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[0]/wrap-t</use> </wrap-t> <internal-format> <use>texture[1]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>1</unit> <image> <use>texture[8]/image</use> </image> <filter> <use>texture[8]/filter</use> </filter> <wrap-s> <use>texture[8]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[8]/wrap-t</use> </wrap-t> <internal-format> <use>texture[0]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>2</unit> <type>noise</type> </texture-unit> <texture-unit> <unit>4</unit> <image> <use>texture[4]/image</use> </image> <filter> <use>texture[4]/filter</use> </filter> <wrap-s> <use>texture[4]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[4]/wrap-t</use> </wrap-t> <internal-format> <use>texture[4]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>5</unit> <type> <use>texture[5]/type</use> </type> <!-- use this form for a cube cross --> <!--<image> <use>texture[5]/image</use> </image>--> <!-- use this form for a 6 image cube map --> <images> <use>texture[5]/images</use> </images> </texture-unit> <texture-unit> <unit>6</unit> <type> <use>texture[6]/type</use> </type> <image> <use>texture[6]/image</use> </image> <filter> <use>texture[6]/filter</use> </filter> <wrap-s> <use>texture[6]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[6]/wrap-t</use> </wrap-t> </texture-unit> <texture-unit> <unit>7</unit> <type> <use>texture[7]/type</use> </type> <image> <use>texture[7]/image</use> </image> <filter> <use>texture[7]/filter</use> </filter> <wrap-s> <use>texture[7]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[7]/wrap-t</use> </wrap-t> </texture-unit> <vertex-program-two-side> <use>vertex-program-two-side</use> </vertex-program-two-side> <lighting>false</lighting> <material> <ambient> <use>material/ambient</use> </ambient> <diffuse> <use>material/diffuse</use> </diffuse> <specular> <use>material/specular</use> </specular> <emissive> <use>material/emissive</use> </emissive> <shininess> <use>material/shininess</use> </shininess> <color-mode>ambient-and-diffuse</color-mode> </material> <cull-face>back</cull-face> <program> <vertex-shader>Shaders/runway-gbuffer.vert</vertex-shader> <fragment-shader>Shaders/runway-gbuffer.frag</fragment-shader> <fragment-shader>Shaders/gbuffer-functions.frag</fragment-shader> <fragment-shader>Shaders/gbuffer-encode.frag</fragment-shader> <attribute> <name>tangent</name> <index>6</index> </attribute> <attribute> <name>binormal</name> <index>7</index> </attribute> </program> <uniform> <name>BaseTex</name> <type>sampler-2d</type> <value type="int">0</value> </uniform> <uniform> <name>Map</name> <type>sampler-2d</type> <value type="int">1</value> </uniform> <uniform> <name>Noise</name> <type>sampler-3d</type> <value type="int">2</value> </uniform> <uniform> <name>NormalTex</name> <type>sampler-2d</type> <value type="int">4</value> </uniform> <uniform> <name>Environment</name> <type>sampler-cube</type> <value type="int">5</value> </uniform> <uniform> <name>Rainbow</name> <type>sampler-2d</type> <value type="int">6</value> </uniform> <uniform> <name>Fresnel</name> <type>sampler-2d</type> <value type="int">7</value> </uniform> <!-- set the amount of fringing colour 0.0 - 1.0 --> <uniform> <name>rainbowiness</name> <type>float</type> <value> <use>rainbowiness</use> </value> </uniform> <!-- set the amount of fresnel effect colour 0.0 - 1.0 --> <uniform> <name>fresneliness</name> <type>float</type> <value> <use>fresneliness</use> </value> </uniform> <!-- set the amount of noisiness 0.0 - 1.0 --> <uniform> <name>noisiness</name> <type>float</type> <value> <use>noisiness</use> </value> </uniform> <!-- The reflection is set proportional to the shininess of the material. The amount of reflection may be adjusted by the use of this correction -1.0 (fully transparent)- 1.0 (fully opaque) --> <uniform> <name>spec_adjust</name> <type>float</type> <value> <use>rnorm</use> </value> </uniform> <!-- set the amount of ambient light correction 0.0 - 1.0 --> <uniform> <name>ambient_correction</name> <type>float</type> <value> <use>ambient_correction</use> </value> </uniform> <!-- use a reflection map--> <uniform> <name>reflect_map</name> <type>float</type> <value> <use>reflect_map</use> </value> </uniform> <!-- normalmap is .dds--> <uniform> <name>normalmap_dds</name> <type>float</type> <value> <use>normalmap_dds</use> </value> </uniform> <uniform> <name>visibility</name> <type>float</type> <value> <use>visibility</use> </value> </uniform> <uniform> <name>avisibility</name> <type>float</type> <value> <use>avisibility</use> </value> </uniform> <uniform> <name>hazeLayerAltitude</name> <type>float</type> <value> <use>lthickness</use> </value> </uniform> <uniform> <name>scattering</name> <type>float</type> <value> <use>scattering</use> </value> </uniform> <uniform> <name>terminator</name> <type>float</type> <value> <use>terminator</use> </value> </uniform> <uniform> <name>fogType</name> <type>int</type> <value> <use>fogtype</use> </value> </uniform> </pass> </technique> <technique n="9"> <predicate> <and> <property>/sim/rendering/shaders/quality-level</property> <property>/sim/rendering/shaders/generic</property> <or> <less-equal> <value type="float">2.0</value> <glversion/> </less-equal> <and> <extension-supported>GL_ARB_shader_objects</extension-supported> <extension-supported>GL_ARB_shading_language_100</extension-supported> <extension-supported>GL_ARB_vertex_shader</extension-supported> <extension-supported>GL_ARB_fragment_shader</extension-supported> </and> </or> </and> </predicate> <pass> <texture-unit> <unit>0</unit> <image> <use>texture[0]/image</use> </image> <filter> <use>texture[0]/filter</use> </filter> <wrap-s> <use>texture[0]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[0]/wrap-t</use> </wrap-t> <internal-format> <use>texture[1]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>1</unit> <image> <use>texture[8]/image</use> </image> <filter> <use>texture[8]/filter</use> </filter> <wrap-s> <use>texture[8]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[8]/wrap-t</use> </wrap-t> <internal-format> <use>texture[0]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>2</unit> <type>noise</type> </texture-unit> <texture-unit> <unit>4</unit> <image> <use>texture[4]/image</use> </image> <filter> <use>texture[4]/filter</use> </filter> <wrap-s> <use>texture[4]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[4]/wrap-t</use> </wrap-t> <internal-format> <use>texture[4]/internal-format</use> </internal-format> </texture-unit> <texture-unit> <unit>5</unit> <type> <use>texture[5]/type</use> </type> <!-- use this form for a cube cross --> <!--<image> <use>texture[5]/image</use> </image>--> <!-- use this form for a 6 image cube map --> <images> <use>texture[5]/images</use> </images> </texture-unit> <texture-unit> <unit>6</unit> <type> <use>texture[6]/type</use> </type> <image> <use>texture[6]/image</use> </image> <filter> <use>texture[6]/filter</use> </filter> <wrap-s> <use>texture[6]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[6]/wrap-t</use> </wrap-t> </texture-unit> <texture-unit> <unit>7</unit> <type> <use>texture[7]/type</use> </type> <image> <use>texture[7]/image</use> </image> <filter> <use>texture[7]/filter</use> </filter> <wrap-s> <use>texture[7]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[7]/wrap-t</use> </wrap-t> </texture-unit> <vertex-program-two-side> <use>vertex-program-two-side</use> </vertex-program-two-side> <cull-face> <use>cull-face</use> </cull-face> <program> <!-- <vertex-shader n="0">Shaders/include_fog.vert</vertex-shader> --> <vertex-shader n="1">Shaders/reflect-bump-spec.vert</vertex-shader> <fragment-shader n="0">Shaders/include_fog.frag</fragment-shader> <fragment-shader n="1">Shaders/runway.frag</fragment-shader> <attribute> <name>tangent</name> <index>6</index> </attribute> <attribute> <name>binormal</name> <index>7</index> </attribute> </program> <uniform> <name>BaseTex</name> <type>sampler-2d</type> <value type="int">0</value> </uniform> <uniform> <name>Map</name> <type>sampler-2d</type> <value type="int">1</value> </uniform> <uniform> <name>Noise</name> <type>sampler-3d</type> <value type="int">2</value> </uniform> <uniform> <name>NormalTex</name> <type>sampler-2d</type> <value type="int">4</value> </uniform> <uniform> <name>Environment</name> <type>sampler-cube</type> <value type="int">5</value> </uniform> <uniform> <name>Rainbow</name> <type>sampler-2d</type> <value type="int">6</value> </uniform> <uniform> <name>Fresnel</name> <type>sampler-2d</type> <value type="int">7</value> </uniform> <!-- set the amount of fringing colour 0.0 - 1.0 --> <uniform> <name>rainbowiness</name> <type>float</type> <value> <use>rainbowiness</use> </value> </uniform> <!-- set the amount of fresnel effect colour 0.0 - 1.0 --> <uniform> <name>fresneliness</name> <type>float</type> <value> <use>fresneliness</use> </value> </uniform> <!-- set the amount of noisiness 0.0 - 1.0 --> <uniform> <name>noisiness</name> <type>float</type> <value> <use>noisiness</use> </value> </uniform> <!-- The reflection is set proportional to the shininess of the material. The amount of reflection may be adjusted by the use of this correction -1.0 (fully transparent)- 1.0 (fully opaque) --> <uniform> <name>spec_adjust</name> <type>float</type> <value> <use>rnorm</use> </value> </uniform> <!-- set the amount of ambient light correction 0.0 - 1.0 --> <uniform> <name>ambient_correction</name> <type>float</type> <value> <use>ambient_correction</use> </value> </uniform> <!-- use a reflection map--> <uniform> <name>reflect_map</name> <type>float</type> <value> <use>reflect_map</use> </value> </uniform> <!-- normalmap is .dds--> <uniform> <name>normalmap_dds</name> <type>float</type> <value> <use>normalmap_dds</use> </value> </uniform> <uniform> <name>visibility</name> <type>float</type> <value> <use>visibility</use> </value> </uniform> <uniform> <name>avisibility</name> <type>float</type> <value> <use>avisibility</use> </value> </uniform> <uniform> <name>hazeLayerAltitude</name> <type>float</type> <value> <use>lthickness</use> </value> </uniform> <uniform> <name>scattering</name> <type>float</type> <value> <use>scattering</use> </value> </uniform> <uniform> <name>terminator</name> <type>float</type> <value> <use>terminator</use> </value> </uniform> <uniform> <name>fogType</name> <type>int</type> <value> <use>fogtype</use> </value> </uniform> </pass> </technique> </PropertyList>