Runway effect with bumpmap and snow for Atmospheric Light Scattering
[fg:toms-fgdata.git] / Effects / runway.eff
1 <?xml version="1.0" encoding="utf-8"?>
2 <PropertyList>
3         <name>Effects/runway</name>
4         <inherits-from>Effects/terrain-default</inherits-from>
5         <parameters>
6                 <texture n="4">
7                         <image>Textures/Runway/rwy-normalmap.png</image>
8                         <filter>linear-mipmap-linear</filter>
9                         <wrap-s>repeat</wrap-s>
10                         <wrap-t>repeat</wrap-t>
11                         <internal-format>normalized</internal-format>
12                 </texture>
13                 <texture n="5">
14                         <type>cubemap</type>
15                         <!-- use this form for a cube cross -->
16                         <!--<image>Aircraft/Generic/Effects/CubeCrosses/blue_sky_big.jpg</image>-->
17
18                         <!-- use this form for a 6 image cube map -->
19                                 <images>
20                                         <positive-x>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_px.png</positive-x>
21                                         <negative-x>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_nx.png</negative-x>
22                                         <positive-y>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_py.png</positive-y>
23                                         <negative-y>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_ny.png</negative-y>
24                                         <positive-z>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_pz.png</positive-z>
25                                         <negative-z>Aircraft/Generic/Effects/CubeMaps/fair-sky/fair-sky_nz.png</negative-z>
26                                 </images>
27
28                 </texture>
29                 <texture n="6">
30                         <image>Aircraft/Generic/Effects/Rainbow.png</image>
31                         <filter>linear-mipmap-linear</filter>
32                         <wrap-s>repeat</wrap-s>
33                         <wrap-t>repeat</wrap-t>
34                         <internal-format>normalized</internal-format>
35                 </texture>
36                 <texture n="7">
37                         <image>Aircraft/Generic/Effects/FresnelLookUp.png</image>
38                         <filter>linear-mipmap-linear</filter>
39                         <wrap-s>repeat</wrap-s>
40                         <wrap-t>repeat</wrap-t>
41                         <internal-format>normalized</internal-format>
42                 </texture>
43                 <texture n="8">
44                         <image>Textures/Runway/rwy-reflect.png</image>
45                         <filter>linear-mipmap-linear</filter>
46                         <wrap-s>repeat</wrap-s>
47                         <wrap-t>repeat</wrap-t>
48                         <internal-format>normalized</internal-format>
49                 </texture>
50                 <rendering-hint>transparent</rendering-hint>
51                 <shade-model>smooth</shade-model>
52                 <rainbowiness type="float">0.01</rainbowiness>
53                 <fresneliness type="float">0.01</fresneliness>
54                 <noisiness type="float">0.15</noisiness>
55                 <ambient_correction type="float">-0.15</ambient_correction>
56                 <normalmap_dds type="float">0.0</normalmap_dds>
57                 <vertex-program-two-side type="bool">false</vertex-program-two-side>
58                 <cull-face>back</cull-face>
59                 <rnorm>
60                         <use>/environment/rain-norm</use>
61                 </rnorm>
62
63                 <!--            BEGIN fog include -->
64                 <visibility><use>/environment/ground-visibility-m</use></visibility>
65                 <avisibility><use>/environment/visibility-m</use></avisibility>
66                 <lthickness><use>/environment/ground-haze-thickness-m</use></lthickness>
67                 <scattering><use>/rendering/scene/scattering</use></scattering>
68                 <ground_scattering><use>/environment/surface/scattering</use></ground_scattering>
69                 <terminator><use>/environment/terminator-relative-position-m</use></terminator>
70                 <terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
71                 <overcast><use>/rendering/scene/overcast</use></overcast>
72                 <eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
73                 <snow_level><use>/environment/snow-level-m</use></snow_level>
74                 <dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
75                 <lichen_cover_factor><use>/environment/surface/lichen-cover-factor</use></lichen_cover_factor>
76                 <snow_thickness_factor><use>/environment/surface/snow-thickness-factor</use></snow_thickness_factor>
77                 <wetness><use>/environment/surface/wetness</use></wetness>
78                 <fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
79                 <fogstructure><use>/environment/fog-structure</use></fogstructure>
80                 <cloud_self_shading><use>/environment/cloud-self-shading</use></cloud_self_shading>
81                 <moonlight><use>/environment/moonlight</use></moonlight>
82                 <quality_level><use>/sim/rendering/shaders/landmass</use></quality_level>
83                 <tquality_level><use>/sim/rendering/shaders/transition</use></tquality_level>
84                 <!--            END fog include -->
85         </parameters>
86         <generate>
87                 <tangent type="int">6</tangent>
88                 <binormal type="int">7</binormal>
89         </generate>
90
91
92   <technique n="3">
93     <predicate>
94       <and>
95         <property>/sim/rendering/shaders/skydome</property>
96         <or>
97           <less-equal>
98             <value type="float">4.0</value>
99             <float-property>/sim/rendering/shaders/landmass</float-property>
100           </less-equal>
101           <less-equal>
102             <value type="float">3.0</value>
103             <float-property>/sim/rendering/shaders/transition</float-property>
104           </less-equal>
105         </or>
106         <or>
107           <less-equal>
108             <value type="float">2.0</value>
109             <glversion/>
110           </less-equal>
111           <and>
112             <extension-supported>GL_ARB_shader_objects</extension-supported>
113             <extension-supported>GL_ARB_shading_language_100</extension-supported>
114             <extension-supported>GL_ARB_vertex_shader</extension-supported>
115             <extension-supported>GL_ARB_fragment_shader</extension-supported>
116           </and>
117         </or>
118       </and>
119     </predicate>
120     <pass>
121       <lighting>true</lighting>
122       <material>
123         <ambient><use>material/ambient</use></ambient>
124         <diffuse><use>material/diffuse</use></diffuse>
125         <specular><use>material/specular</use></specular>
126         <emissive><use>material/emissive</use></emissive>
127         <shininess><use>material/shininess</use></shininess>
128         <color-mode>ambient-and-diffuse</color-mode>
129       </material>
130       <alpha-test><use>transparent</use></alpha-test>
131       <shade-model>smooth</shade-model>
132       <cull-face>back</cull-face>
133       <render-bin>
134         <bin-number>-1</bin-number>
135         <bin-name>RenderBin</bin-name>
136       </render-bin>
137       <program>
138         <vertex-shader>Shaders/trivial.vert</vertex-shader>
139         <fragment-shader>Shaders/trivial.frag</fragment-shader>
140       </program>
141       <color-mask type="vec4d">0 0 0 0</color-mask>
142     </pass>
143     <pass>
144       <lighting>true</lighting>
145       <material>
146         <ambient><use>material/ambient</use></ambient>
147         <diffuse><use>material/diffuse</use></diffuse>
148         <specular><use>material/specular</use></specular>
149         <emissive><use>material/emissive</use></emissive>
150         <shininess><use>material/shininess</use></shininess>
151         <color-mode>ambient-and-diffuse</color-mode>
152       </material>
153       <blend><use>transparent</use></blend>
154       <alpha-test><use>transparent</use></alpha-test>
155       <shade-model>smooth</shade-model>
156       <cull-face>back</cull-face>
157       <render-bin>
158         <bin-number><use>render-bin/bin-number</use></bin-number>
159         <bin-name><use>render-bin/bin-name</use></bin-name>
160       </render-bin>
161       <texture-unit>
162         <unit>0</unit>
163         <image><use>texture[0]/image</use></image>
164         <filter><use>texture[0]/filter</use></filter>
165         <wrap-s><use>texture[0]/wrap-s</use></wrap-s>
166         <wrap-t><use>texture[0]/wrap-t</use></wrap-t>
167         <internal-format><use>texture[0]/internal-format</use></internal-format>
168       </texture-unit>
169      <texture-unit>
170         <unit>4</unit>
171         <image><use>texture[4]/image</use></image>
172         <filter><use>texture[4]/filter</use></filter>
173         <wrap-s><use>texture[4]/wrap-s</use></wrap-s>
174         <wrap-t><use>texture[4]/wrap-t</use></wrap-t>
175         <internal-format><use>texture[4]/internal-format</use></internal-format>
176       </texture-unit>
177       <texture-unit>
178         <unit>5</unit>
179         <image><use>texture[12]/image</use></image>
180         <filter><use>texture[12]/filter</use></filter>
181         <wrap-s><use>texture[12]/wrap-s</use></wrap-s>
182         <wrap-t><use>texture[12]/wrap-t</use></wrap-t>
183         <internal-format><use>texture[12]/internal-format</use></internal-format>
184       </texture-unit>
185       <texture-unit>
186         <unit>6</unit>
187         <image><use>texture[10]/image</use></image>
188         <filter><use>texture[10]/filter</use></filter>
189         <wrap-s><use>texture[10]/wrap-s</use></wrap-s>
190         <wrap-t><use>texture[10]/wrap-t</use></wrap-t>
191         <internal-format><use>texture[10]/internal-format</use></internal-format>
192       </texture-unit>
193       <texture-unit>
194         <unit>7</unit>
195         <image><use>texture[11]/image</use></image>
196         <filter><use>texture[11]/filter</use></filter>
197         <wrap-s><use>texture[11]/wrap-s</use></wrap-s>
198         <wrap-t><use>texture[11]/wrap-t</use></wrap-t>
199         <internal-format><use>texture[11]/internal-format</use></internal-format>
200       </texture-unit>
201       <program>
202         <vertex-shader>Shaders/terrain-haze-detailed.vert</vertex-shader>
203         <fragment-shader>Shaders/runway-lightfield.frag</fragment-shader>
204       </program>
205       <uniform>
206         <name>visibility</name>
207         <type>float</type>
208         <value><use>visibility</use></value>
209       </uniform>
210       <uniform>
211         <name>avisibility</name>
212         <type>float</type>
213         <value><use>avisibility</use></value>
214       </uniform>
215       <uniform>
216         <name>hazeLayerAltitude</name>
217         <type>float</type>
218         <value><use>lthickness</use></value>
219       </uniform>
220       <uniform>
221         <name>scattering</name>
222         <type>float</type>
223         <value><use>scattering</use></value>
224       </uniform>
225       <uniform>
226         <name>ground_scattering</name>
227         <type>float</type>
228         <value><use>ground_scattering</use></value>
229       </uniform>
230       <uniform>
231         <name>terminator</name>
232         <type>float</type>
233         <value><use>terminator</use></value>
234       </uniform>
235       <uniform>
236         <name>terrain_alt</name>
237         <type>float</type>
238         <value><use>terrain_alt</use></value>
239       </uniform>
240       <uniform>
241         <name>overcast</name>
242         <type>float</type>
243         <value><use>overcast</use></value>
244       </uniform>
245       <uniform>
246         <name>eye_alt</name>
247         <type>float</type>
248         <value><use>eye_alt</use></value>
249       </uniform>
250       <uniform>
251         <name>snowlevel</name>
252         <type>float</type>
253         <value><use>snow_level</use></value>
254       </uniform>
255       <uniform>
256         <name>snow_thickness_factor</name>
257         <type>float</type>
258         <value> <use>snow_thickness_factor</use></value>
259       </uniform>
260       <uniform>
261         <name>dust_cover_factor</name>
262         <type>float</type>
263         <value><use>dust_cover_factor</use></value>
264       </uniform>
265       <uniform>
266         <name>lichen_cover_factor</name>
267         <type>float</type>
268         <value> <use>lichen_cover_factor</use></value>
269       </uniform>
270       <uniform>
271         <name>wetness</name>
272         <type>float</type>
273         <value><use>wetness</use></value>
274       </uniform>
275       <uniform>
276         <name>fogstructure</name>
277         <type>float</type>
278         <value><use>fogstructure</use></value>
279       </uniform>
280       <uniform>
281         <name>cloud_self_shading</name>
282         <type>float</type>
283         <value><use>cloud_self_shading</use></value>
284       </uniform>
285       <uniform>
286         <name>moonlight</name>
287         <type>float</type>
288         <value><use>moonlight</use></value>
289       </uniform>
290       <uniform>
291         <name>quality_level</name>
292         <type>int</type>
293         <value><use>quality_level</use></value>
294       </uniform>
295       <uniform>
296         <name>tquality_level</name>
297         <type>int</type>
298         <value><use>tquality_level</use></value>
299       </uniform>
300       <uniform>
301         <name>texture</name>
302         <type>sampler-2d</type>
303         <value type="int">0</value>
304       </uniform>
305       <uniform>
306         <name>NormalTex</name>
307         <type>sampler-2d</type>
308         <value type="int">4</value>
309       </uniform>
310       <uniform>
311         <name>mix_texture</name>
312         <type>sampler-2d</type>
313         <value type="int">5</value>
314       </uniform>
315       <uniform>
316         <name>snow_texture</name>
317         <type>sampler-2d</type>
318         <value type="int">6</value>
319       </uniform>
320       <uniform>
321         <name>detail_texture</name>
322         <type>sampler-2d</type>
323         <value type="int">7</value>
324       </uniform>
325       <uniform>
326         <name>colorMode</name>
327         <type>int</type>
328         <value>2</value>
329         <!-- AMBIENT_AND_DIFFUSE -->
330       </uniform>
331       <depth>
332         <function>lequal</function>
333         <write-mask type="bool">false</write-mask>
334       </depth>
335     </pass>
336   </technique>
337
338
339     <technique n="8">
340         <predicate>
341             <and>
342                 <property>/sim/rendering/shaders/generic</property>
343                 <property>/sim/rendering/rembrandt/enabled</property>
344                 <or>
345                     <less-equal>
346                         <value type="float">2.0</value>
347                         <glversion/>
348                     </less-equal>
349                     <and>
350                         <extension-supported>GL_ARB_shader_objects</extension-supported>
351                         <extension-supported>GL_ARB_shading_language_100</extension-supported>
352                         <extension-supported>GL_ARB_vertex_shader</extension-supported>
353                         <extension-supported>GL_ARB_fragment_shader</extension-supported>
354                     </and>
355                 </or>
356             </and>
357         </predicate>
358         <pass>
359             <texture-unit>
360                 <unit>0</unit>
361                 <image>
362                     <use>texture[0]/image</use>
363                 </image>
364                 <filter>
365                     <use>texture[0]/filter</use>
366                 </filter>
367                 <wrap-s>
368                     <use>texture[0]/wrap-s</use>
369                 </wrap-s>
370                 <wrap-t>
371                     <use>texture[0]/wrap-t</use>
372                 </wrap-t>
373                 <internal-format>
374                     <use>texture[1]/internal-format</use>
375                 </internal-format>
376             </texture-unit>
377
378             <texture-unit>
379                 <unit>1</unit>
380                 <image>
381                     <use>texture[8]/image</use>
382                 </image>
383                 <filter>
384                     <use>texture[8]/filter</use>
385                 </filter>
386                 <wrap-s>
387                     <use>texture[8]/wrap-s</use>
388                 </wrap-s>
389                 <wrap-t>
390                     <use>texture[8]/wrap-t</use>
391                 </wrap-t>
392                 <internal-format>
393                     <use>texture[0]/internal-format</use>
394                 </internal-format>
395             </texture-unit>
396
397             <texture-unit>
398                 <unit>2</unit>
399                 <type>noise</type>
400             </texture-unit>
401
402             <texture-unit>
403                 <unit>4</unit>
404                 <image>
405                     <use>texture[4]/image</use>
406                 </image>
407                 <filter>
408                     <use>texture[4]/filter</use>
409                 </filter>
410                 <wrap-s>
411                     <use>texture[4]/wrap-s</use>
412                 </wrap-s>
413                 <wrap-t>
414                     <use>texture[4]/wrap-t</use>
415                 </wrap-t>
416                 <internal-format>
417                     <use>texture[4]/internal-format</use>
418                 </internal-format>
419             </texture-unit>
420
421             <texture-unit>
422                 <unit>5</unit>
423                 <type>
424                     <use>texture[5]/type</use>
425                 </type>
426
427                 <!-- use this form for a cube cross -->
428                 <!--<image>
429                 <use>texture[5]/image</use>
430             </image>-->
431
432                 <!-- use this form for a 6 image cube map -->
433                 <images>
434                     <use>texture[5]/images</use>
435                 </images>
436             </texture-unit>
437
438             <texture-unit>
439                 <unit>6</unit>
440                 <type>
441                     <use>texture[6]/type</use>
442                 </type>
443                 <image>
444                     <use>texture[6]/image</use>
445                 </image>
446                 <filter>
447                     <use>texture[6]/filter</use>
448                 </filter>
449                 <wrap-s>
450                     <use>texture[6]/wrap-s</use>
451                 </wrap-s>
452                 <wrap-t>
453                     <use>texture[6]/wrap-t</use>
454                 </wrap-t>
455             </texture-unit>
456
457             <texture-unit>
458                 <unit>7</unit>
459                 <type>
460                     <use>texture[7]/type</use>
461                 </type>
462                 <image>
463                     <use>texture[7]/image</use>
464                 </image>
465                 <filter>
466                     <use>texture[7]/filter</use>
467                 </filter>
468                 <wrap-s>
469                     <use>texture[7]/wrap-s</use>
470                 </wrap-s>
471                 <wrap-t>
472                     <use>texture[7]/wrap-t</use>
473                 </wrap-t>
474             </texture-unit>
475
476             <vertex-program-two-side>
477                 <use>vertex-program-two-side</use>
478             </vertex-program-two-side>
479             <lighting>false</lighting>
480             <material>
481                 <ambient>
482                     <use>material/ambient</use>
483                 </ambient>
484                 <diffuse>
485                     <use>material/diffuse</use>
486                 </diffuse>
487                 <specular>
488                     <use>material/specular</use>
489                 </specular>
490                 <emissive>
491                     <use>material/emissive</use>
492                 </emissive>
493                 <shininess>
494                     <use>material/shininess</use>
495                 </shininess>
496                 <color-mode>ambient-and-diffuse</color-mode>
497             </material>
498             <cull-face>back</cull-face>
499             <program>
500                 <vertex-shader>Shaders/runway-gbuffer.vert</vertex-shader>
501                 <fragment-shader>Shaders/runway-gbuffer.frag</fragment-shader>
502                 <fragment-shader>Shaders/gbuffer-functions.frag</fragment-shader>
503                 <fragment-shader>Shaders/gbuffer-encode.frag</fragment-shader>
504                 <attribute>
505                     <name>tangent</name>
506                     <index>6</index>
507                 </attribute>
508                 <attribute>
509                     <name>binormal</name>
510                     <index>7</index>
511                 </attribute>
512             </program>
513             <uniform>
514                 <name>BaseTex</name>
515                 <type>sampler-2d</type>
516                 <value type="int">0</value>
517             </uniform>
518
519             <uniform>
520                 <name>Map</name>
521                 <type>sampler-2d</type>
522                 <value type="int">1</value>
523             </uniform>
524
525             <uniform>
526                 <name>Noise</name>
527                 <type>sampler-3d</type>
528                 <value type="int">2</value>
529             </uniform>
530
531             <uniform>
532                 <name>NormalTex</name>
533                 <type>sampler-2d</type>
534                 <value type="int">4</value>
535             </uniform>
536
537             <uniform>
538                 <name>Environment</name>
539                 <type>sampler-cube</type>
540                 <value type="int">5</value>
541             </uniform>
542
543             <uniform>
544                 <name>Rainbow</name>
545                 <type>sampler-2d</type>
546                 <value type="int">6</value>
547             </uniform>
548
549             <uniform>
550                 <name>Fresnel</name>
551                 <type>sampler-2d</type>
552                 <value type="int">7</value>
553             </uniform>
554
555             <!-- set the amount of fringing colour 0.0 - 1.0 -->
556             <uniform>
557                 <name>rainbowiness</name>
558                 <type>float</type>
559                 <value>
560                     <use>rainbowiness</use>
561                 </value>
562             </uniform>
563
564             <!-- set the amount of fresnel effect colour 0.0 - 1.0 -->
565             <uniform>
566                 <name>fresneliness</name>
567                 <type>float</type>
568                 <value>
569                     <use>fresneliness</use>
570                 </value>
571             </uniform>
572
573             <!-- set the amount of noisiness 0.0 - 1.0 -->
574             <uniform>
575                 <name>noisiness</name>
576                 <type>float</type>
577                 <value>
578                     <use>noisiness</use>
579                 </value>
580             </uniform>
581
582             <!-- The reflection is set proportional to the shininess of the material.
583             The amount of reflection may be adjusted by the use of this correction
584                 -1.0 (fully transparent)- 1.0 (fully opaque) -->
585                     <uniform>
586                         <name>spec_adjust</name>
587                         <type>float</type>
588                         <value>
589                             <use>rnorm</use>
590                         </value>
591                     </uniform>
592
593                     <!-- set the amount of ambient light correction 0.0 - 1.0  -->
594                     <uniform>
595                         <name>ambient_correction</name>
596                         <type>float</type>
597                         <value>
598                             <use>ambient_correction</use>
599                         </value>
600                     </uniform>
601
602                     <!-- use a reflection map-->
603                     <uniform>
604                         <name>reflect_map</name>
605                         <type>float</type>
606                         <value>
607                             <use>reflect_map</use>
608                         </value>
609                     </uniform>
610
611                     <!-- normalmap is .dds-->
612                     <uniform>
613                         <name>normalmap_dds</name>
614                         <type>float</type>
615                         <value>
616                             <use>normalmap_dds</use>
617                         </value>
618                     </uniform>
619
620                     <uniform>
621                         <name>visibility</name>
622                         <type>float</type>
623                         <value>
624                             <use>visibility</use>
625                         </value>
626                     </uniform>
627                     <uniform>
628                         <name>avisibility</name>
629                         <type>float</type>
630                         <value>
631                             <use>avisibility</use>
632                         </value>
633                     </uniform>
634                     <uniform>
635                         <name>hazeLayerAltitude</name>
636                         <type>float</type>
637                         <value>
638                             <use>lthickness</use>
639                         </value>
640                     </uniform>
641                     <uniform>
642                         <name>scattering</name>
643                         <type>float</type>
644                         <value>
645                             <use>scattering</use>
646                         </value>
647                     </uniform>
648                     <uniform>
649                         <name>terminator</name>
650                         <type>float</type>
651                         <value>
652                             <use>terminator</use>
653                         </value>
654                     </uniform>
655                     <uniform>
656                         <name>fogType</name>
657                         <type>int</type>
658                         <value>
659                             <use>fogtype</use>
660                         </value>
661                     </uniform>
662         </pass>
663     </technique>
664         <technique n="9">
665                 <predicate>
666                         <and>
667                                 <property>/sim/rendering/shaders/quality-level</property>
668                                 <property>/sim/rendering/shaders/generic</property>
669                                 <or>
670                                         <less-equal>
671                                                 <value type="float">2.0</value>
672                                                 <glversion/>
673                                         </less-equal>
674                                         <and>
675                                                 <extension-supported>GL_ARB_shader_objects</extension-supported>
676                                                 <extension-supported>GL_ARB_shading_language_100</extension-supported>
677                                                 <extension-supported>GL_ARB_vertex_shader</extension-supported>
678                                                 <extension-supported>GL_ARB_fragment_shader</extension-supported>
679                                         </and>
680                                 </or>
681                         </and>
682                 </predicate>
683                 <pass>
684                         <texture-unit>
685                                 <unit>0</unit>
686                                 <image>
687                                         <use>texture[0]/image</use>
688                                 </image>
689                                 <filter>
690                                         <use>texture[0]/filter</use>
691                                 </filter>
692                                 <wrap-s>
693                                         <use>texture[0]/wrap-s</use>
694                                 </wrap-s>
695                                 <wrap-t>
696                                         <use>texture[0]/wrap-t</use>
697                                 </wrap-t>
698                                 <internal-format>
699                                         <use>texture[1]/internal-format</use>
700                                 </internal-format>
701                         </texture-unit>
702
703                         <texture-unit>
704                                 <unit>1</unit>
705                                 <image>
706                                         <use>texture[8]/image</use>
707                                 </image>
708                                 <filter>
709                                         <use>texture[8]/filter</use>
710                                 </filter>
711                                 <wrap-s>
712                                         <use>texture[8]/wrap-s</use>
713                                 </wrap-s>
714                                 <wrap-t>
715                                         <use>texture[8]/wrap-t</use>
716                                 </wrap-t>
717                                 <internal-format>
718                                         <use>texture[0]/internal-format</use>
719                                 </internal-format>
720                         </texture-unit>
721
722                         <texture-unit>
723                                 <unit>2</unit>
724                                 <type>noise</type>
725                         </texture-unit>
726
727                         <texture-unit>
728                                 <unit>4</unit>
729                                 <image>
730                                         <use>texture[4]/image</use>
731                                 </image>
732                                 <filter>
733                                         <use>texture[4]/filter</use>
734                                 </filter>
735                                 <wrap-s>
736                                         <use>texture[4]/wrap-s</use>
737                                 </wrap-s>
738                                 <wrap-t>
739                                         <use>texture[4]/wrap-t</use>
740                                 </wrap-t>
741                                 <internal-format>
742                                         <use>texture[4]/internal-format</use>
743                                 </internal-format>
744                         </texture-unit>
745
746                         <texture-unit>
747                                 <unit>5</unit>
748                                 <type>
749                                         <use>texture[5]/type</use>
750                                 </type>
751
752                                 <!-- use this form for a cube cross -->
753                                 <!--<image>
754                                 <use>texture[5]/image</use>
755                         </image>-->
756
757                                 <!-- use this form for a 6 image cube map -->
758                                 <images>
759                                         <use>texture[5]/images</use>
760                                 </images>
761                         </texture-unit>
762
763                         <texture-unit>
764                                 <unit>6</unit>
765                                 <type>
766                                         <use>texture[6]/type</use>
767                                 </type>
768                                 <image>
769                                         <use>texture[6]/image</use>
770                                 </image>
771                                 <filter>
772                                         <use>texture[6]/filter</use>
773                                 </filter>
774                                 <wrap-s>
775                                         <use>texture[6]/wrap-s</use>
776                                 </wrap-s>
777                                 <wrap-t>
778                                         <use>texture[6]/wrap-t</use>
779                                 </wrap-t>
780                         </texture-unit>
781
782                         <texture-unit>
783                                 <unit>7</unit>
784                                 <type>
785                                         <use>texture[7]/type</use>
786                                 </type>
787                                 <image>
788                                         <use>texture[7]/image</use>
789                                 </image>
790                                 <filter>
791                                         <use>texture[7]/filter</use>
792                                 </filter>
793                                 <wrap-s>
794                                         <use>texture[7]/wrap-s</use>
795                                 </wrap-s>
796                                 <wrap-t>
797                                         <use>texture[7]/wrap-t</use>
798                                 </wrap-t>
799                         </texture-unit>
800
801                         <vertex-program-two-side>
802                                 <use>vertex-program-two-side</use>
803                         </vertex-program-two-side>
804                         <cull-face>
805                                 <use>cull-face</use>
806                         </cull-face>
807
808                         <program>
809 <!--                            <vertex-shader n="0">Shaders/include_fog.vert</vertex-shader> -->
810                                 <vertex-shader n="1">Shaders/reflect-bump-spec.vert</vertex-shader>
811                                 <fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
812                                 <fragment-shader n="1">Shaders/runway.frag</fragment-shader>
813                                 <attribute>
814                                         <name>tangent</name>
815                                         <index>6</index>
816                                 </attribute>
817                                 <attribute>
818                                         <name>binormal</name>
819                                         <index>7</index>
820                                 </attribute>
821                         </program>
822
823                         <uniform>
824                                 <name>BaseTex</name>
825                                 <type>sampler-2d</type>
826                                 <value type="int">0</value>
827                         </uniform>
828
829             <uniform>
830                                 <name>Map</name>
831                                 <type>sampler-2d</type>
832                                 <value type="int">1</value>
833                         </uniform>
834
835                         <uniform>
836                                 <name>Noise</name>
837                                 <type>sampler-3d</type>
838                                 <value type="int">2</value>
839                         </uniform>
840
841                         <uniform>
842                                 <name>NormalTex</name>
843                                 <type>sampler-2d</type>
844                                 <value type="int">4</value>
845                         </uniform>
846
847                         <uniform>
848                                 <name>Environment</name>
849                                 <type>sampler-cube</type>
850                                 <value type="int">5</value>
851                         </uniform>
852
853                         <uniform>
854                                 <name>Rainbow</name>
855                                 <type>sampler-2d</type>
856                                 <value type="int">6</value>
857                         </uniform>
858
859                         <uniform>
860                                 <name>Fresnel</name>
861                                 <type>sampler-2d</type>
862                                 <value type="int">7</value>
863                         </uniform>
864
865                         <!-- set the amount of fringing colour 0.0 - 1.0 -->
866                         <uniform>
867                                 <name>rainbowiness</name>
868                                 <type>float</type>
869                                 <value>
870                                         <use>rainbowiness</use>
871                                 </value>
872                         </uniform>
873
874                         <!-- set the amount of fresnel effect colour 0.0 - 1.0 -->
875                         <uniform>
876                                 <name>fresneliness</name>
877                                 <type>float</type>
878                                 <value>
879                                         <use>fresneliness</use>
880                                 </value>
881                         </uniform>
882
883                         <!-- set the amount of noisiness 0.0 - 1.0 -->
884                         <uniform>
885                                 <name>noisiness</name>
886                                 <type>float</type>
887                                 <value>
888                                         <use>noisiness</use>
889                                 </value>
890                         </uniform>
891
892                         <!-- The reflection is set proportional to the shininess of the material.
893                         The amount of reflection may be adjusted by the use of this correction
894                                 -1.0 (fully transparent)- 1.0 (fully opaque) -->
895                         <uniform>
896                                 <name>spec_adjust</name>
897                                 <type>float</type>
898                                 <value>
899                                         <use>rnorm</use>
900                                 </value>
901                         </uniform>
902
903                         <!-- set the amount of ambient light correction 0.0 - 1.0  -->
904                         <uniform>
905                                 <name>ambient_correction</name>
906                                 <type>float</type>
907                                 <value>
908                                         <use>ambient_correction</use>
909                                 </value>
910                         </uniform>
911
912                         <!-- use a reflection map-->
913                         <uniform>
914                                 <name>reflect_map</name>
915                                 <type>float</type>
916                                 <value>
917                                         <use>reflect_map</use>
918                                 </value>
919                         </uniform>
920
921                         <!-- normalmap is .dds-->
922                         <uniform>
923                                 <name>normalmap_dds</name>
924                                 <type>float</type>
925                                 <value>
926                                         <use>normalmap_dds</use>
927                                 </value>
928                         </uniform>
929
930                         <uniform>
931                                 <name>visibility</name>
932                                 <type>float</type>
933                                 <value>
934                                         <use>visibility</use>
935                                 </value>
936                         </uniform>
937                         <uniform>
938                                 <name>avisibility</name>
939                                 <type>float</type>
940                                 <value>
941                                         <use>avisibility</use>
942                                 </value>
943                         </uniform>
944                         <uniform>
945                                 <name>hazeLayerAltitude</name>
946                                 <type>float</type>
947                                 <value>
948                                         <use>lthickness</use>
949                                 </value>
950                         </uniform>
951                         <uniform>
952                                 <name>scattering</name>
953                                 <type>float</type>
954                                 <value>
955                                         <use>scattering</use>
956                                 </value>
957                         </uniform>
958                         <uniform>
959                                 <name>terminator</name>
960                                 <type>float</type>
961                                 <value>
962                                         <use>terminator</use>
963                                 </value>
964                         </uniform>
965                         <uniform>
966                                 <name>fogType</name>
967                                 <type>int</type>
968                                 <value>
969                                         <use>fogtype</use>
970                                 </value>
971                         </uniform>
972                 </pass>
973         </technique>
974 </PropertyList>