<?xml version="1.0" encoding="utf-8"?> <!-- generic road effect for OSM detailed roads --> <PropertyList> <name>Effects/road</name> <inherits-from>Effects/model-combined-deferred</inherits-from> <parameters> <texture n="7"> <image>Textures/Terrain/grain_texture.png</image> <type>2d</type> <filter>linear-mipmap-linear</filter> <wrap-s>repeat</wrap-s> <wrap-t>repeat</wrap-t> <internal-format>normalized</internal-format> </texture> <grain-texture-enabled type="int">0</grain-texture-enabled> <grain-magnification type="float">50</grain-magnification> <lightmap-enabled type="int">1</lightmap-enabled> <normalmap-enabled>0</normalmap-enabled> <lightmap-color type="vec3d" n="0"> 0.941 0.682 0.086 </lightmap-color> <snow_level><use>/environment/snow-level-m</use></snow_level> <snow_thickness_factor><use>/environment/surface/snow-thickness-factor</use></snow_thickness_factor> <road-traffic-enabled><use>/sim/rendering/osm/road-traffic-enabled</use></road-traffic-enabled> <road-traffic-density><use>/sim/rendering/osm/road-traffic-density</use></road-traffic-density> <road-traffic-direction><use>/sim/rendering/osm/road-traffic-direction</use></road-traffic-direction> <road-traffic-variation><use>/sim/rendering/osm/road-traffic-daily-variation</use></road-traffic-variation> <road-light-factor><use>/environment/lightmap-factor</use></road-light-factor> </parameters> <generate> <tangent type="int">6</tangent> <binormal type="int">7</binormal> </generate> <technique n="3"> <predicate> <and> <property>/sim/rendering/shaders/skydome</property> <property>/sim/rendering/shaders/quality-level</property> <property>/sim/rendering/shaders/model</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> <lighting>true</lighting> <material> <active> <use>material/active</use> </active> <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> <use>material/color-mode</use> </color-mode> </material> <blend> <active> <use>blend/active</use> </active> <source> <use>blend/source</use> </source> <destination> <use>blend/destination</use> </destination> </blend> <shade-model> <use>shade-model</use> </shade-model> <cull-face> <use>cull-face</use> </cull-face> <rendering-hint> <use>rendering-hint</use> </rendering-hint> <blend> <use>transparent</use> </blend> <alpha-test> <use>transparent</use> </alpha-test> <render-bin> <bin-number> <use>render-bin/bin-number</use> </bin-number> <bin-name> <use>render-bin/bin-name</use> </bin-name> </render-bin> <!-- Diffuse texture unit--> <texture-unit> <unit>0</unit> <image> <use>texture[0]/image</use> </image> <type> <use>texture[0]/type</use> </type> <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> <!-- Reflection Noise texture unit--> <texture-unit> <unit>1</unit> <type>noise</type> </texture-unit> <!-- NormalMap texture unit--> <texture-unit> <unit>2</unit> <image> <use>texture[2]/image</use> </image> <type> <use>texture[2]/type</use> </type> <filter> <use>texture[2]/filter</use> </filter> <wrap-s> <use>texture[2]/wrap-s</use> </wrap-s> <wrap-t> <use>texture[2]/wrap-t</use> </wrap-t> <internal-format> <use>texture[2]/internal-format</use> </internal-format> </texture-unit> <!-- ReflectMap texture unit--> <texture-unit> <unit>4</unit> <image> <use>texture[4]/image</use> </image> <type> <use>texture[4]/type</use> </type> <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> <!-- Reflection CubeMap 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>--> <!-- END CubeCross --> <!-- use this form for a 6 image cube map --> <images> <use>texture[5]/images</use> </images> <!-- END 6 image cube map --> </texture-unit> <!-- Reflection gradients texture unit--> <texture-unit> <unit>6</unit> <image> <use>texture[6]/image</use> </image> <type> <use>texture[6]/type</use> </type> <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> <internal-format> <use>texture[6]/internal-format</use> </internal-format> </texture-unit> <!-- Grain texture --> <texture-unit> <unit>7</unit> <image> <use>texture[7]/image</use> </image> <type> <use>texture[7]/type</use> </type> <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> <internal-format> <use>texture[7]/internal-format</use> </internal-format> </texture-unit> <vertex-program-two-side> <use>vertex-program-two-side</use> </vertex-program-two-side> <program> <vertex-shader>Shaders/model-ALS-ultra.vert</vertex-shader> <fragment-shader>Shaders/road-ALS-ultra.frag</fragment-shader> <fragment-shader>Shaders/cloud-shadowfunc.frag</fragment-shader> <fragment-shader>Shaders/hazes.frag</fragment-shader> <fragment-shader>Shaders/secondary_lights.frag</fragment-shader> <fragment-shader>Shaders/noise.frag</fragment-shader> <fragment-shader>Shaders/filters-ALS.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>ReflNoiseTex</name> <type>sampler-3d</type> <value type="int">1</value> </uniform> <uniform> <name>NormalTex</name> <type>sampler-2d</type> <value type="int">2</value> </uniform> <uniform> <name>ReflMapTex</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>ReflGradientsTex</name> <type>sampler-2d</type> <value type="int">6</value> </uniform> <uniform> <name>GrainTex</name> <type>sampler-2d</type> <value type="int">7</value> </uniform> <!-- NORMAL MAP --> <!-- normalmap is used--> <uniform> <name>nmap_enabled</name> <type>int</type> <value> <use>normalmap-enabled</use> </value> </uniform> <!-- normalmap is .dds--> <uniform> <name>nmap_dds</name> <type>int</type> <value> <use>normalmap-dds</use> </value> </uniform> <uniform> <name>nmap_tile</name> <type>float</type> <value> <use>normalmap-tiling</use> </value> </uniform> <!-- reflection is used --> <uniform> <name>refl_enabled</name> <type>int</type> <value> <use>reflection-enabled</use> </value> </uniform> <!-- reflection correction --> <uniform> <name>refl_correction</name> <type>float</type> <value> <use>reflection-correction</use> </value> </uniform> <!-- Fresnel reflectivity --> <uniform> <name>refl_fresnel_factor</name> <type>float</type> <value> <use>reflection-fresnel-factor</use> </value> </uniform> <!-- use a reflection map--> <uniform> <name>refl_map</name> <type>int</type> <value> <use>reflect-map-enabled</use> </value> </uniform> <!-- how are colors merged in a reflection--> <uniform> <name>refl_type</name> <type>int</type> <value> <use>reflection-type</use> </value> </uniform> <!-- reflection is dynamic --> <uniform> <name>refl_dynamic</name> <type>int</type> <value> <use>reflection-dynamic</use> </value> </uniform> <!-- set the amount of fringing colour 0.0 - 1.0 --> <uniform> <name>refl_rainbow</name> <type>float</type> <value> <use>reflection-rainbow</use> </value> </uniform> <!-- set the amount of fresnel effect colour 0.0 - 1.0 --> <uniform> <name>refl_fresnel</name> <type>float</type> <value> <use>reflection-fresnel</use> </value> </uniform> <!-- set the amount of noisiness 0.0 - 1.0 --> <uniform> <name>refl_noise</name> <type>float</type> <value> <use>reflection-noise</use> </value> </uniform> <!-- dirt --> <uniform> <name>dirt_enabled</name> <type>int</type> <value> <use>dirt-enabled</use> </value> </uniform> <uniform> <name>dirt_multi</name> <type>int</type> <value> <use>dirt-multi</use> </value> </uniform> <uniform> <name>dirt_r_color</name> <type>float-vec3</type> <value> <use>dirt-color[0]</use> </value> </uniform> <uniform> <name>dirt_r_factor</name> <type>float</type> <value> <use>dirt-factor[0]</use> </value> </uniform> <uniform> <name>dirt_g_color</name> <type>float-vec3</type> <value> <use>dirt-color[1]</use> </value> </uniform> <uniform> <name>dirt_g_factor</name> <type>float</type> <value> <use>dirt-factor[1]</use> </value> </uniform> <uniform> <name>dirt_b_color</name> <type>float-vec3</type> <value> <use>dirt-color[2]</use> </value> </uniform> <uniform> <name>dirt_b_factor</name> <type>float</type> <value> <use>dirt-factor[2]</use> </value> </uniform> <!-- road traffic --> <uniform> <name>road_traffic_enabled</name> <type>int</type> <value> <use>road-traffic-enabled</use> </value> </uniform> <uniform> <name>road_traffic_density</name> <type>float</type> <value> <use>road-traffic-density</use> </value> </uniform> <uniform> <name>road_traffic_variation</name> <type>float</type> <value> <use>road-traffic-variation</use> </value> </uniform> <uniform> <name>road_traffic_direction</name> <type>int</type> <value> <use>road-traffic-direction</use> </value> </uniform> <!-- road illumination --> <uniform> <name>streetlight_color</name> <type>float-vec3</type> <value> <use>lightmap-color</use> </value> </uniform> <uniform> <name>streetlight_factor</name> <type>float</type> <value> <use>road-light-factor</use> </value> </uniform> <!-- use a grain texture map--> <uniform> <name>grain_texture_enabled</name> <type>int</type> <value> <use>grain-texture-enabled</use> </value> </uniform> <uniform> <name>grain_magnification</name> <type>float</type> <value> <use>grain-magnification</use> </value> </uniform> <!-- simulate wetness, snow and rain--> <uniform> <name>rain_enabled</name> <type>int</type> <value> <use>rain-enabled</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> <!-- set the amount of ambient light correction 0.0 - 1.0 --> <uniform> <name>amb_correction</name> <type>float</type> <value> <use>ambient-correction</use> </value> </uniform> <uniform> <name>hdg</name> <type>float</type> <value> <use>model-hdg</use> </value> </uniform> <uniform> <name>pitch</name> <type>float</type> <value> <use>model-pitch</use> </value> </uniform> <uniform> <name>roll</name> <type>float</type> <value> <use>model-roll</use> </value> </uniform> <!-- BEGIN fog include --> <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>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>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>air_pollution</name> <type>float</type> <value><use>air_pollution</use></value> </uniform> <uniform> <name>rain_norm</name> <type>float</type> <value><use>rnorm</use></value> </uniform> <uniform> <name>wetness</name> <type>float</type> <value><use>wetness</use></value> </uniform> <uniform> <name>view_pitch_offset</name> <type>float</type> <value><use>view_pitch_offset</use></value> </uniform> <uniform> <name>view_heading_offset</name> <type>float</type> <value><use>view_heading_offset</use></value> </uniform> <uniform> <name>field_of_view</name> <type>float</type> <value><use>view_fov</use></value> </uniform> <uniform> <name>landing_light1_offset</name> <type>float</type> <value><use>landing_light1_offset</use></value> </uniform> <uniform> <name>landing_light2_offset</name> <type>float</type> <value><use>landing_light2_offset</use></value> </uniform> <uniform> <name>landing_light3_offset</name> <type>float</type> <value><use>landing_light3_offset</use></value> </uniform> <uniform> <name>gamma</name> <type>float</type> <value><use>gamma</use></value> </uniform> <uniform> <name>brightness</name> <type>float</type> <value><use>brightness</use></value> </uniform> <uniform> <name>use_filtering</name> <type>bool</type> <value><use>use_filtering</use></value> </uniform> <uniform> <name>use_night_vision</name> <type>bool</type> <value><use>use_night_vision</use></value> </uniform> <uniform> <name>use_IR_vision</name> <type>bool</type> <value><use>use_IR_vision</use></value> </uniform> <uniform> <name>delta_T</name> <type>float</type> <value><use>delta_T</use></value> </uniform> <uniform> <name>fact_grey</name> <type>float</type> <value><use>fact_grey</use></value> </uniform> <uniform> <name>fact_black</name> <type>float</type> <value><use>fact_black</use></value> </uniform> <!-- cloud shadows --> <uniform> <name>cloudpos1_x</name> <type>float</type> <value><use>cloudpos1_x</use></value> </uniform> <uniform> <name>cloudpos1_y</name> <type>float</type> <value><use>cloudpos1_y</use></value> </uniform> <uniform> <name>cloudpos2_x</name> <type>float</type> <value><use>cloudpos2_x</use></value> </uniform> <uniform> <name>cloudpos2_y</name> <type>float</type> <value><use>cloudpos2_y</use></value> </uniform> <uniform> <name>cloudpos3_x</name> <type>float</type> <value><use>cloudpos3_x</use></value> </uniform> <uniform> <name>cloudpos3_y</name> <type>float</type> <value><use>cloudpos3_y</use></value> </uniform> <uniform> <name>cloudpos4_x</name> <type>float</type> <value><use>cloudpos4_x</use></value> </uniform> <uniform> <name>cloudpos4_y</name> <type>float</type> <value><use>cloudpos4_y</use></value> </uniform> <uniform> <name>cloudpos5_x</name> <type>float</type> <value><use>cloudpos5_x</use></value> </uniform> <uniform> <name>cloudpos5_y</name> <type>float</type> <value><use>cloudpos5_y</use></value> </uniform> <uniform> <name>cloudpos6_x</name> <type>float</type> <value><use>cloudpos6_x</use></value> </uniform> <uniform> <name>cloudpos6_y</name> <type>float</type> <value><use>cloudpos6_y</use></value> </uniform> <uniform> <name>cloudpos7_x</name> <type>float</type> <value><use>cloudpos7_x</use></value> </uniform> <uniform> <name>cloudpos7_y</name> <type>float</type> <value><use>cloudpos7_y</use></value> </uniform> <uniform> <name>cloudpos8_x</name> <type>float</type> <value><use>cloudpos8_x</use></value> </uniform> <uniform> <name>cloudpos8_y</name> <type>float</type> <value><use>cloudpos8_y</use></value> </uniform> <uniform> <name>cloudpos9_x</name> <type>float</type> <value><use>cloudpos9_x</use></value> </uniform> <uniform> <name>cloudpos9_y</name> <type>float</type> <value><use>cloudpos9_y</use></value> </uniform> <uniform> <name>cloudpos10_x</name> <type>float</type> <value><use>cloudpos10_x</use></value> </uniform> <uniform> <name>cloudpos10_y</name> <type>float</type> <value><use>cloudpos10_y</use></value> </uniform> <uniform> <name>cloudpos11_x</name> <type>float</type> <value><use>cloudpos11_x</use></value> </uniform> <uniform> <name>cloudpos11_y</name> <type>float</type> <value><use>cloudpos11_y</use></value> </uniform> <uniform> <name>cloudpos12_x</name> <type>float</type> <value><use>cloudpos12_x</use></value> </uniform> <uniform> <name>cloudpos12_y</name> <type>float</type> <value><use>cloudpos12_y</use></value> </uniform> <uniform> <name>cloudpos13_x</name> <type>float</type> <value><use>cloudpos13_x</use></value> </uniform> <uniform> <name>cloudpos13_y</name> <type>float</type> <value><use>cloudpos13_y</use></value> </uniform> <uniform> <name>cloudpos14_x</name> <type>float</type> <value><use>cloudpos14_x</use></value> </uniform> <uniform> <name>cloudpos14_y</name> <type>float</type> <value><use>cloudpos14_y</use></value> </uniform> <uniform> <name>cloudpos15_x</name> <type>float</type> <value><use>cloudpos15_x</use></value> </uniform> <uniform> <name>cloudpos15_y</name> <type>float</type> <value><use>cloudpos15_y</use></value> </uniform> <uniform> <name>cloudpos16_x</name> <type>float</type> <value><use>cloudpos16_x</use></value> </uniform> <uniform> <name>cloudpos16_y</name> <type>float</type> <value><use>cloudpos16_y</use></value> </uniform> <uniform> <name>cloudpos17_x</name> <type>float</type> <value><use>cloudpos17_x</use></value> </uniform> <uniform> <name>cloudpos17_y</name> <type>float</type> <value><use>cloudpos17_y</use></value> </uniform> <uniform> <name>cloudpos18_x</name> <type>float</type> <value><use>cloudpos18_x</use></value> </uniform> <uniform> <name>cloudpos18_y</name> <type>float</type> <value><use>cloudpos18_y</use></value> </uniform> <uniform> <name>cloudpos19_x</name> <type>float</type> <value><use>cloudpos19_x</use></value> </uniform> <uniform> <name>cloudpos19_y</name> <type>float</type> <value><use>cloudpos19_y</use></value> </uniform> <uniform> <name>cloudpos20_x</name> <type>float</type> <value><use>cloudpos20_x</use></value> </uniform> <uniform> <name>cloudpos20_y</name> <type>float</type> <value><use>cloudpos20_y</use></value> </uniform> <uniform> <name>cloud_shadow_flag</name> <type>int</type> <value><use>cloud_shadow_flag</use></value> </uniform> <uniform> <name>use_searchlight</name> <type>int</type> <value><use>use_searchlight</use></value> </uniform> <uniform> <name>use_landing_light</name> <type>int</type> <value><use>use_landing_light</use></value> </uniform> <uniform> <name>use_alt_landing_light</name> <type>int</type> <value><use>use_alt_landing_light</use></value> </uniform> <uniform> <name>display_xsize</name> <type>int</type> <value><use>display_xsize</use></value> </uniform> <uniform> <name>display_ysize</name> <type>int</type> <value><use>display_ysize</use></value> </uniform> </pass> </technique> </PropertyList>