Quality slider overwrites custom shader settings. All effects now listen to the new...
[fg:toms-fgdata.git] / Effects / urban.eff
1 <?xml version="1.0" encoding="utf-8"?>
2 <PropertyList>
3         <name>Effects/urban</name>
4         <inherits-from>Effects/terrain-default</inherits-from>
5         <parameters>
6                 <snow-level>
7                         <use>/environment/snow-level-m</use>
8                 </snow-level>
9                 <depth-factor type="float">0.008</depth-factor>
10                 <night-color type="vec3d">0.75 0.59 0.05</night-color>
11                 <quality-level>
12                         <use>/sim/rendering/shaders/urban</use>
13                 </quality-level>
14
15                 <!--fog include--> 
16                 <visibility>
17                         <use>/environment/ground-visibility-m</use>
18                 </visibility>
19                 <avisibility>
20                         <use>/environment/visibility-m</use>
21                 </avisibility>
22                 <lthickness>
23                         <use>/environment/ground-haze-thickness-m</use>
24                 </lthickness>
25                 <scattering>
26                         <use>/rendering/scene/scattering</use>
27                 </scattering>
28                 <terminator>
29                         <use>/environment/terminator-relative-position-m</use>
30                 </terminator>
31                 <fogtype>
32                         <use>/sim/rendering/shaders/skydome</use>
33                 </fogtype>
34                 <!--    END fog include -->
35
36         </parameters>
37         <generate>
38                 <normal type="int">15</normal>
39                 <tangent type="int">6</tangent>
40                 <binormal type="int">7</binormal>
41         </generate>
42         <technique n="8">
43                 <predicate>
44                         <and>
45                                 <property>/sim/rendering/shaders/urban</property>
46                                 <less-equal>
47                                         <value type="float">4.0</value>
48                                         <float-property>/sim/rendering/shaders/urban</float-property>
49                                 </less-equal>
50                                 <or>
51                                         <less-equal>
52                                                 <value type="float">2.0</value>
53                                                 <glversion/>
54                                         </less-equal>
55                                         <and>
56                                                 <extension-supported>GL_ARB_shader_objects</extension-supported>
57                                                 <extension-supported>GL_ARB_shading_language_100</extension-supported>
58                                                 <extension-supported>GL_ARB_vertex_shader</extension-supported>
59                                                 <extension-supported>GL_ARB_fragment_shader</extension-supported>
60                                         </and>
61                                 </or>
62                                 <or>
63                                         <extension-supported>GL_ATI_shader_texture_lod</extension-supported>
64                                         <extension-supported>GL_ARB_shader_texture_lod</extension-supported>
65                                 </or>
66                         </and>
67                 </predicate>
68                 <pass>
69                         <lighting>true</lighting>
70                         <material>
71                                 <ambient>
72                                         <use>material/ambient</use>
73                                 </ambient>
74                                 <diffuse>
75                                         <use>material/diffuse</use>
76                                 </diffuse>
77                                 <specular>
78                                         <use>material/specular</use>
79                                 </specular>
80                                 <color-mode>ambient-and-diffuse</color-mode>
81                         </material>
82                         <blend>
83                                 <use>transparent</use>
84                         </blend>
85                         <alpha-test>
86                                 <use>transparent</use>
87                         </alpha-test>
88                         <shade-model>smooth</shade-model>
89                         <cull-face>back</cull-face>
90                         <render-bin>
91                                 <bin-number>
92                                         <use>render-bin/bin-number</use>
93                                 </bin-number>
94                                 <bin-name>
95                                         <use>render-bin/bin-name</use>
96                                 </bin-name>
97                         </render-bin>
98                         <texture-unit>
99                                 <unit>0</unit>
100                                 <image>
101                                         <use>texture[0]/image</use>
102                                 </image>
103                                 <filter>
104                                         <use>texture[0]/filter</use>
105                                 </filter>
106                                 <wrap-s>
107                                         <use>texture[0]/wrap-s</use>
108                                 </wrap-s>
109                                 <wrap-t>
110                                         <use>texture[0]/wrap-t</use>
111                                 </wrap-t>
112                                 <internal-format>
113                                         <use>texture[0]/internal-format</use>
114                                 </internal-format>
115                         </texture-unit>
116                         <texture-unit>
117                                 <unit>1</unit>
118                                 <image>
119                                         <use>texture[2]/image</use>
120                                 </image>
121                                 <filter>
122                                         <use>texture[2]/filter</use>
123                                 </filter>
124                                 <wrap-s>
125                                         <use>texture[2]/wrap-s</use>
126                                 </wrap-s>
127                                 <wrap-t>
128                                         <use>texture[2]/wrap-t</use>
129                                 </wrap-t>
130                                 <internal-format>
131                                         <use>texture[2]/internal-format</use>
132                                 </internal-format>
133                         </texture-unit>
134                         <texture-unit>
135                                 <unit>2</unit>
136                                 <image>
137                                         <use>texture[2]/image</use>
138                                 </image>
139                                 <filter>nearest-mipmap-nearest</filter>
140                                 <wrap-s>
141                                         <use>texture[2]/wrap-s</use>
142                                 </wrap-s>
143                                 <wrap-t>
144                                         <use>texture[2]/wrap-t</use>
145                                 </wrap-t>
146                                 <internal-format>
147                                         <use>texture[2]/internal-format</use>
148                                 </internal-format>
149                                 <mipmap-control>
150                                         <function-r>average</function-r>
151                                         <function-g>average</function-g>
152                                         <function-b>average</function-b>
153                                         <function-a>min</function-a>
154                                 </mipmap-control>
155                         </texture-unit>
156                         <texture-unit>
157                                 <unit>3</unit>
158                                 <type>noise</type>
159                         </texture-unit>
160                         <program>
161                                 <vertex-shader n="0">Shaders/include_fog.vert</vertex-shader>
162                                 <vertex-shader n="1">Shaders/urban.vert</vertex-shader>
163                                 <fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
164                                 <fragment-shader n="1">Shaders/urban.frag</fragment-shader>
165                                 <attribute>
166                                         <name>tangent</name>
167                                         <index>6</index>
168                                 </attribute>
169                                 <attribute>
170                                         <name>binormal</name>
171                                         <index>7</index>
172                                 </attribute>
173                                 <attribute>
174                                         <name>normal</name>
175                                         <index>15</index>
176                                 </attribute>
177                         </program>
178                         <uniform>
179                                 <name>BaseTex</name>
180                                 <type>sampler-2d</type>
181                                 <value type="int">0</value>
182                         </uniform>
183                         <uniform>
184                                 <name>NormalTex</name>
185                                 <type>sampler-2d</type>
186                                 <value type="int">1</value>
187                         </uniform>
188                         <uniform>
189                                 <name>QDMTex</name>
190                                 <type>sampler-2d</type>
191                                 <value type="int">2</value>
192                         </uniform>
193                         <uniform>
194                                 <name>NoiseTex</name>
195                                 <type>sampler-3d</type>
196                                 <value type="int">3</value>
197                         </uniform>
198                         <uniform>
199                                 <name>depth_factor</name>
200                                 <type>float</type>
201                                 <value>
202                                         <use>depth-factor</use>
203                                 </value>
204                         </uniform>
205                         <uniform>
206                                 <name>tile_size</name>
207                                 <type>float</type>
208                                 <value>
209                                         <use>xsize</use>
210                                 </value>
211                         </uniform>
212                         <uniform>
213                                 <name>night_color</name>
214                                 <type>float-vec3</type>
215                                 <value>
216                                         <use>night-color</use>
217                                 </value>
218                         </uniform>
219                         <uniform>
220                                 <name>quality_level</name>
221                                 <type>float</type>
222                                 <value>
223                                         <use>quality-level</use>
224                                 </value>
225                         </uniform>
226                         <uniform>
227                                 <name>snowlevel</name>
228                                 <type>float</type>
229                                 <value>
230                                         <use>snow-level</use>
231                                 </value>
232                         </uniform>
233                         <uniform>
234                                 <name>max_lod_level</name>
235                                 <type>float</type>
236                                 <value>
237                                         <use>max-lod-level</use>
238                                 </value>
239                         </uniform>
240                         <!--        BEGIN fog include -->
241                         <uniform>
242                                 <name>visibility</name>
243                                 <type>float</type>
244                                 <value>
245                                         <use>visibility</use>
246                                 </value>
247                         </uniform>
248                         <uniform>
249                                 <name>avisibility</name>
250                                 <type>float</type>
251                                 <value>
252                                         <use>avisibility</use>
253                                 </value>
254                         </uniform>
255                         <uniform>
256                                 <name>hazeLayerAltitude</name>
257                                 <type>float</type>
258                                 <value>
259                                         <use>lthickness</use>
260                                 </value>
261                         </uniform>
262                         <uniform>
263                                 <name>scattering</name>
264                                 <type>float</type>
265                                 <value>
266                                         <use>scattering</use>
267                                 </value>
268                         </uniform>
269                         <uniform>
270                                 <name>terminator</name>
271                                 <type>float</type>
272                                 <value>
273                                         <use>terminator</use>
274                                 </value>
275                         </uniform>
276                         <uniform>
277                                 <name>fogType</name>
278                                 <type>int</type>
279                                 <value>
280                                         <use>fogtype</use>
281                                 </value>
282                         </uniform>
283                         <!--                    END fog include -->
284                 </pass>
285         </technique>
286         <technique n="9">
287                 <predicate>
288                         <and>
289                                 <property>/sim/rendering/shaders/urban</property>
290                                 <less-equal>
291                                         <value type="float">2.0</value>
292                                         <float-property>/sim/rendering/shaders/urban</float-property>
293                                 </less-equal>
294                                 <or>
295                                         <less-equal>
296                                                 <value type="float">2.0</value>
297                                                 <glversion/>
298                                         </less-equal>
299                                         <and>
300                                                 <extension-supported>GL_ARB_shader_objects</extension-supported>
301                                                 <extension-supported>GL_ARB_shading_language_100</extension-supported>
302                                                 <extension-supported>GL_ARB_vertex_shader</extension-supported>
303                                                 <extension-supported>GL_ARB_fragment_shader</extension-supported>
304                                         </and>
305                                 </or>
306                                 <!-- quality level below 4.0 doesn't require GL_ATI_shader_texture_lod or GL_ARB_shader_texture_lod -->
307                         </and>
308                 </predicate>
309                 <pass>
310                         <lighting>true</lighting>
311                         <material>
312                                 <ambient>
313                                         <use>material/ambient</use>
314                                 </ambient>
315                                 <diffuse>
316                                         <use>material/diffuse</use>
317                                 </diffuse>
318                                 <specular>
319                                         <use>material/specular</use>
320                                 </specular>
321                                 <color-mode>ambient-and-diffuse</color-mode>
322                         </material>
323                         <blend>
324                                 <use>transparent</use>
325                         </blend>
326                         <alpha-test>
327                                 <use>transparent</use>
328                         </alpha-test>
329                         <shade-model>smooth</shade-model>
330                         <cull-face>back</cull-face>
331                         <render-bin>
332                                 <bin-number>
333                                         <use>render-bin/bin-number</use>
334                                 </bin-number>
335                                 <bin-name>
336                                         <use>render-bin/bin-name</use>
337                                 </bin-name>
338                         </render-bin>
339                         <texture-unit>
340                                 <unit>0</unit>
341                                 <image>
342                                         <use>texture[0]/image</use>
343                                 </image>
344                                 <filter>
345                                         <use>texture[0]/filter</use>
346                                 </filter>
347                                 <wrap-s>
348                                         <use>texture[0]/wrap-s</use>
349                                 </wrap-s>
350                                 <wrap-t>
351                                         <use>texture[0]/wrap-t</use>
352                                 </wrap-t>
353                                 <internal-format>
354                                         <use>texture[0]/internal-format</use>
355                                 </internal-format>
356                         </texture-unit>
357                         <texture-unit>
358                                 <unit>1</unit>
359                                 <image>
360                                         <use>texture[2]/image</use>
361                                 </image>
362                                 <filter>
363                                         <use>texture[2]/filter</use>
364                                 </filter>
365                                 <wrap-s>
366                                         <use>texture[2]/wrap-s</use>
367                                 </wrap-s>
368                                 <wrap-t>
369                                         <use>texture[2]/wrap-t</use>
370                                 </wrap-t>
371                                 <internal-format>
372                                         <use>texture[2]/internal-format</use>
373                                 </internal-format>
374                         </texture-unit>
375                         <texture-unit>
376                                 <unit>2</unit>
377                                 <type>noise</type>
378                         </texture-unit>
379                         <program>
380                                 <vertex-shader n="0">Shaders/include_fog.vert</vertex-shader>
381                                 <vertex-shader n="1">Shaders/urban.vert</vertex-shader>
382                                 <fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
383                                 <fragment-shader n="1">Shaders/urban.frag</fragment-shader>
384                                 <attribute>
385                                         <name>tangent</name>
386                                         <index>6</index>
387                                 </attribute>
388                                 <attribute>
389                                         <name>binormal</name>
390                                         <index>7</index>
391                                 </attribute>
392                                 <attribute>
393                                         <name>normal</name>
394                                         <index>15</index>
395                                 </attribute>
396                         </program>
397                         <!--        BEGIN fog include -->
398                         <uniform>
399                                 <name>visibility</name>
400                                 <type>float</type>
401                                 <value>
402                                         <use>visibility</use>
403                                 </value>
404                         </uniform>
405                         <uniform>
406                                 <name>avisibility</name>
407                                 <type>float</type>
408                                 <value>
409                                         <use>avisibility</use>
410                                 </value>
411                         </uniform>
412                         <uniform>
413                                 <name>hazeLayerAltitude</name>
414                                 <type>float</type>
415                                 <value>
416                                         <use>lthickness</use>
417                                 </value>
418                         </uniform>
419                         <uniform>
420                                 <name>scattering</name>
421                                 <type>float</type>
422                                 <value>
423                                         <use>scattering</use>
424                                 </value>
425                         </uniform>
426                         <uniform>
427                                 <name>terminator</name>
428                                 <type>float</type>
429                                 <value>
430                                         <use>terminator</use>
431                                 </value>
432                         </uniform>
433                         <uniform>
434                                 <name>fogType</name>
435                                 <type>int</type>
436                                 <value>
437                                         <use>fogtype</use>
438                                 </value>
439                         </uniform>
440                         <!--                    END fog include -->
441                         <uniform>
442                                 <name>BaseTex</name>
443                                 <type>sampler-2d</type>
444                                 <value type="int">0</value>
445                         </uniform>
446                         <uniform>
447                                 <name>NormalTex</name>
448                                 <type>sampler-2d</type>
449                                 <value type="int">1</value>
450                         </uniform>
451                         <uniform>
452                                 <name>NoiseTex</name>
453                                 <type>sampler-3d</type>
454                                 <value type="int">2</value>
455                         </uniform>
456                         <uniform>
457                                 <name>depth_factor</name>
458                                 <type>float</type>
459                                 <value>
460                                         <use>depth-factor</use>
461                                 </value>
462                         </uniform>
463                         <uniform>
464                                 <name>tile_size</name>
465                                 <type>float</type>
466                                 <value>
467                                         <use>xsize</use>
468                                 </value>
469                         </uniform>
470                         <uniform>
471                                 <name>night_color</name>
472                                 <type>float-vec3</type>
473                                 <value>
474                                         <use>night-color</use>
475                                 </value>
476                         </uniform>
477                         <uniform>
478                                 <name>quality_level</name>
479                                 <type>float</type>
480                                 <value>
481                                         <use>quality-level</use>
482                                 </value>
483                         </uniform>
484                         <uniform>
485                                 <name>snowlevel</name>
486                                 <type>float</type>
487                                 <value>
488                                         <use>snow-level</use>
489                                 </value>
490                         </uniform>
491                         
492
493                 </pass>
494         </technique>
495 </PropertyList>