1
0
Fork 0

Merge branch 'next' of ssh://git.code.sf.net/p/flightgear/fgdata into next

This commit is contained in:
Durk Talsma 2021-09-07 08:25:46 +02:00
commit ed3e0dc515
36 changed files with 509 additions and 3241 deletions

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>r8</format>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
<condition>
<property>/sim/rendering/hdr/ambient-occlusion/enabled</property>
</condition>
</PropertyList>

View file

@ -194,15 +194,12 @@
<mag-filter>nearest</mag-filter>
</buffer>
<!-- SSAO -->
<buffer>
<name>ao0</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<screen-width-scale>0.5</screen-width-scale>
<screen-height-scale>0.5</screen-height-scale>
<format>r8</format>
<!-- Ambient Occlusion buffers -->
<buffer include="ao-buffer.xml">
<name>ao-noisy</name>
</buffer>
<buffer include="ao-buffer.xml">
<name>ao-filtered</name>
</buffer>
<!-- Bloom buffers -->
@ -675,6 +672,46 @@
</attachment>
</pass>
<!-- GTAO (Ground Truth Ambient Occlusion) -->
<pass>
<name>gtao</name>
<type>quad</type>
<effect>Effects/HDR/gtao</effect>
<clear-mask>color</clear-mask>
<clear-color type="vec4d">1.0 1.0 1.0 1.0</clear-color>
<condition>
<property>/sim/rendering/hdr/ambient-occlusion/enabled</property>
</condition>
<binding>
<unit>0</unit>
<buffer>gbuffer0</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>depth-stencil</buffer>
</binding>
<attachment>
<component>color0</component>
<buffer>ao-noisy</buffer>
</attachment>
</pass>
<pass>
<name>gtao-denoiser</name>
<type>quad</type>
<effect>Effects/HDR/gtao-denoiser</effect>
<condition>
<property>/sim/rendering/hdr/ambient-occlusion/enabled</property>
</condition>
<binding>
<unit>0</unit>
<buffer>ao-noisy</buffer>
</binding>
<attachment>
<component>color0</component>
<buffer>ao-filtered</buffer>
</attachment>
</pass>
<!-- Shadow mapping pre-passes -->
<pass include="csm-pass.xml">
<name>csm0</name>
@ -721,25 +758,6 @@
</viewport>
</pass>
<!-- SSAO (Screen Space Ambient Occlusion) -->
<pass>
<name>ao</name>
<type>quad</type>
<effect>Effects/HDR/ao</effect>
<binding>
<unit>0</unit>
<buffer>gbuffer0</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>depth-stencil</buffer>
</binding>
<attachment>
<component>color0</component>
<buffer>ao0</buffer>
</attachment>
</pass>
<!--
Main lighting pass
Combine the G-Buffer and other buffers to compute the final shading value
@ -771,7 +789,10 @@
</binding>
<binding>
<unit>7</unit>
<buffer>ao0</buffer>
<buffer>ao-filtered</buffer>
<condition>
<property>/sim/rendering/hdr/ambient-occlusion/enabled</property>
</condition>
</binding>
<binding>
<unit>9</unit>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/gtao-denoiser</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial-notexcoord.vert</vertex-shader>
<fragment-shader>Shaders/HDR/gtao-denoiser.frag</fragment-shader>
</program>
<uniform>
<name>ao_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

37
Effects/HDR/gtao.eff Normal file
View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/gtao</name>
<parameters>
<world-radius>
<use>/sim/rendering/hdr/ambient-occlusion/world-radius</use>
</world-radius>
</parameters>
<technique n="1">
<pass>
<stencil>
<function>less-or-equal</function>
<value>8</value>
</stencil>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/gtao.frag</fragment-shader>
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
</program>
<uniform>
<name>gbuffer0_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>depth_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
<uniform>
<name>world_radius</name>
<type>float</type>
<value><use>world-radius</use></value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -11,6 +11,9 @@
<wrap-t>clamp-to-edge</wrap-t>
<internal-format>normalized</internal-format>
</texture>
<ambient-occlusion-enabled>
<use>/sim/rendering/hdr/ambient-occlusion/enabled</use>
</ambient-occlusion-enabled>
<show-shadow-cascades>
<use>/sim/rendering/hdr/debug/show-shadow-cascades</use>
</show-shadow-cascades>
@ -64,6 +67,11 @@
<type>sampler-2d</type>
<value type="int">7</value>
</uniform>
<uniform>
<name>ambient_occlusion_enabled</name>
<type>bool</type>
<value><use>ambient-occlusion-enabled</use></value>
</uniform>
<uniform>
<name>debug_shadow_cascades</name>
<type>bool</type>

View file

@ -15,6 +15,7 @@
<use_night_vision><use>/sim/rendering/als-filters/use-night-vision</use></use_night_vision>
<use_IR_vision><use>/sim/rendering/als-filters/use-IR-vision</use></use_IR_vision>
<sun_angle><use>/sim/time/sun-angle-rad</use></sun_angle>
<fov><use>/sim/current-view/field-of-view</use></fov>
</parameters>
<technique n="10">
@ -123,6 +124,11 @@
<type>float</type>
<value><use>sun_angle</use></value>
</uniform>
<uniform>
<name>fov</name>
<type>float</type>
<value><use>fov</use></value>
</uniform>
<uniform>
<name>texture</name>
<type>sampler-2d</type>

View file

@ -1,92 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2008 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<!--=========================================================================
Fire
-->
<particlesystem>
<name>Fire</name>
<type>normal</type>
<texture>smoke.png</texture>
<emissive>true</emissive>
<lighting>false</lighting>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<attach>world</attach>
<placer>
<type>sector</type>
<radius-min-m>0.0</radius-min-m>
<radius-max-m>35.0</radius-max-m>
</placer>
<shooter>
<theta-min-deg>0.0</theta-min-deg>
<theta-max-deg>40.0</theta-max-deg>
<phi-min-deg>0.0</phi-min-deg>
<phi-max-deg>360.0</phi-max-deg>
<speed-mps>
<value>50.0</value>
<spread>5.0</spread>
</speed-mps>
</shooter>
<counter>
<particles-per-sec>
<value>30.0</value>
<spread>10</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value>1.0</value></red>
<green><value>0.5</value></green>
<blue><value>0.0</value></blue>
<alpha><value>1.0</value></alpha>
</color>
<size>
<value>6.0</value>
<spread>2</spread>
</size>
</start>
<end>
<color>
<red><value>1.0</value></red>
<green><value>1.0</value></green>
<blue><value>1.0</value></blue>
<alpha><value>0.3</value></alpha>
</color>
<size>
<value>2.0</value>
<spread>0.5</spread>
</size>
</end>
<life-sec>
<value>4</value>
</life-sec>
<mass-kg>0.1</mass-kg>
<radius-m>0.2</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>false</gravity>
<wind>false</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -1,441 +0,0 @@
AC3Db
MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0
MATERIAL "foam" rgb 0.9 0.9 0.9 amb 0.8 0.8 0.8 emis 0 0 0 spec 0.2 0.2 0.2 shi 0 trans 0
OBJECT world
kids 1
OBJECT poly
name "Plane"
data 9
Plane.001
crease 30.000000
numvert 74
11.492172 0.080483 11.658432
-10.000002 0.080483 9.999999
5.216525 0.080483 9.026312
2.012163 0.080483 10.699518
-2.124253 0.080483 9.292769
-5.669932 0.080483 10.500336
10.176895 0.080483 -2.429139
10.745033 0.080483 1.846115
10.657333 0.080483 6.428134
6.612038 0.080483 -10.744472
1.77965 0.080483 -10.447578
-1.813964 0.080483 -10.839843
-6.15408 0.080483 -9.114968
-9.020841 0.080483 5.422049
-10.368674 0.080483 2.993163
-10.59894 0.080483 -2.490539
-10.402777 0.080483 -6.481796
-4.867327 0.080483 6.099981
-0.553186 0.080483 5.053992
2.493474 0.080483 6.370207
6.982924 0.080483 5.784746
-5.310141 0.080483 2.072881
-2.529347 0.080483 1.948211
1.784095 0.080483 1.52707
7.021089 0.080483 1.660113
-6.390924 0.080483 -1.910044
-3.2943 0.080483 -3.307101
2.204326 0.080483 -2.153007
5.212038 0.080483 -3.144471
-5.820278 0.080483 -5.565367
-3.188829 0.080483 -5.394507
0.6298 0.080483 -6.686399
4.832836 0.080483 -6.591241
4.832836 0.080483 -14.591241
0.6298 0.080483 -14.686399
-3.188829 0.080483 -13.394506
-5.820278 0.080483 -13.565367
-10.402777 0.080483 -14.481796
-6.15408 0.080483 -17.114967
-1.813964 0.080483 -18.839844
1.774975 0.080483 -18.452148
6.599151 0.080483 -18.745758
9.572302 0.080483 -13.421082
-15.293234 0.080483 -8.449698
-19.541931 0.080483 -5.816527
-14.959432 0.080483 -4.900098
-14.959432 0.080483 3.099902
-15.530077 0.080483 6.755225
-14.449295 0.080483 10.73815
-19.541931 0.080483 2.183473
-19.738094 0.080483 6.17473
-19.507828 0.080483 11.658432
-15.293234 0.080483 -0.449699
15.706766 0.080483 -0.449699
16.550705 0.080483 10.73815
15.469923 0.080483 6.755225
16.040569 0.080483 3.099902
16.040569 0.080483 -4.900098
15.706766 0.080483 -8.449698
20.597223 0.080483 -6.481796
20.40106 0.080483 -2.490539
20.631325 0.080483 2.993163
21.97916 0.080483 5.422049
20.999998 0.080483 9.999999
-2.529347 0.080483 12.948211
6.982924 0.080483 16.784746
2.493474 0.080483 17.370207
-0.553186 0.080483 16.053991
-4.867327 0.080483 17.099981
-10.368674 0.080483 13.993163
-9.020841 0.080483 16.422049
10.657333 0.080483 17.428135
-9.402777 0.080483 -10.481796
-15.368674 0.080483 14.993163
numsurf 59
SURF 0x20
mat 1
refs 3
16 0.0 0.0
29 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
29 0.0 0.0
30 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
30 0.0 0.0
31 0.0 0.0
11 0.0 0.0
SURF 0x20
mat 1
refs 3
31 0.0 0.0
32 0.0 0.0
10 0.0 0.0
SURF 0x20
mat 1
refs 3
32 0.0 0.0
6 0.0 0.0
9 0.0 0.0
SURF 0x20
mat 1
refs 3
25 0.0 0.0
26 0.0 0.0
29 0.0 0.0
SURF 0x20
mat 1
refs 3
26 0.0 0.0
27 0.0 0.0
31 0.0 0.0
SURF 0x20
mat 1
refs 3
27 0.0 0.0
28 0.0 0.0
32 0.0 0.0
SURF 0x20
mat 1
refs 3
14 0.0 0.0
25 0.0 0.0
15 0.0 0.0
SURF 0x20
mat 1
refs 3
21 0.0 0.0
22 0.0 0.0
25 0.0 0.0
SURF 0x20
mat 1
refs 3
22 0.0 0.0
27 0.0 0.0
26 0.0 0.0
SURF 0x20
mat 1
refs 3
23 0.0 0.0
28 0.0 0.0
27 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
7 0.0 0.0
6 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
6 0.0 0.0
28 0.0 0.0
SURF 0x20
mat 1
refs 3
13 0.0 0.0
21 0.0 0.0
14 0.0 0.0
SURF 0x20
mat 1
refs 3
17 0.0 0.0
22 0.0 0.0
21 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
19 0.0 0.0
23 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
23 0.0 0.0
22 0.0 0.0
SURF 0x20
mat 1
refs 3
19 0.0 0.0
20 0.0 0.0
24 0.0 0.0
SURF 0x20
mat 1
refs 3
20 0.0 0.0
8 0.0 0.0
7 0.0 0.0
SURF 0x20
mat 1
refs 3
1 0.0 0.0
5 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
5 0.0 0.0
17 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
18 0.0 0.0
17 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
3 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
3 0.0 0.0
2 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
2 0.0 0.0
0 0.0 0.0
20 0.0 0.0
SURF 0x20
mat 1
refs 3
10 0.0 0.0
9 0.0 0.0
33 0.0 0.0
SURF 0x20
mat 1
refs 3
11 0.0 0.0
10 0.0 0.0
34 0.0 0.0
SURF 0x20
mat 1
refs 3
12 0.0 0.0
11 0.0 0.0
36 0.0 0.0
SURF 0x20
mat 1
refs 3
33 0.0 0.0
42 0.0 0.0
41 0.0 0.0
SURF 0x20
mat 1
refs 3
34 0.0 0.0
33 0.0 0.0
40 0.0 0.0
SURF 0x20
mat 1
refs 3
35 0.0 0.0
34 0.0 0.0
39 0.0 0.0
SURF 0x20
mat 1
refs 3
36 0.0 0.0
35 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
37 0.0 0.0
36 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
44 0.0 0.0
45 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
45 0.0 0.0
16 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
52 0.0 0.0
15 0.0 0.0
45 0.0 0.0
SURF 0x20
mat 1
refs 3
48 0.0 0.0
1 0.0 0.0
47 0.0 0.0
SURF 0x20
mat 1
refs 3
51 0.0 0.0
47 0.0 0.0
50 0.0 0.0
SURF 0x20
mat 1
refs 3
47 0.0 0.0
13 0.0 0.0
46 0.0 0.0
SURF 0x20
mat 1
refs 3
46 0.0 0.0
14 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
49 0.0 0.0
46 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
7 0.0 0.0
56 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
56 0.0 0.0
61 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
55 0.0 0.0
62 0.0 0.0
56 0.0 0.0
SURF 0x20
mat 1
refs 3
0 0.0 0.0
55 0.0 0.0
8 0.0 0.0
SURF 0x20
mat 1
refs 3
54 0.0 0.0
63 0.0 0.0
55 0.0 0.0
SURF 0x20
mat 1
refs 3
53 0.0 0.0
60 0.0 0.0
57 0.0 0.0
SURF 0x20
mat 1
refs 3
57 0.0 0.0
59 0.0 0.0
58 0.0 0.0
SURF 0x20
mat 1
refs 3
9 0.0 0.0
57 0.0 0.0
58 0.0 0.0
SURF 0x00
mat 1
refs 3
6 0.0 1.0
53 0.0 0.0
57 1.0 0.0
SURF 0x20
mat 1
refs 3
71 0.0 0.0
0 0.0 0.0
65 0.0 0.0
SURF 0x20
mat 1
refs 3
66 0.0 0.0
65 0.0 0.0
2 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
3 0.0 0.0
64 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
66 0.0 0.0
3 0.0 0.0
SURF 0x20
mat 1
refs 3
68 0.0 0.0
64 0.0 0.0
5 0.0 0.0
SURF 0x20
mat 1
refs 3
70 0.0 0.0
5 0.0 0.0
69 0.0 0.0
SURF 0x00
mat 1
refs 3
37 0.0 1.0
43 0.0 0.0
72 1.0 0.0
SURF 0x00
mat 1
refs 3
48 0.0 1.0
73 1.0 0.0
69 0.0 0.0
kids 0

View file

@ -1,32 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2008 - 2010 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<path>foam.ac</path>
<offsets>
<heading-deg>42.0</heading-deg>
</offsets>
<animation>
<type>select</type>
<condition>
<property>/environment/wildfire/models/enabled</property>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList>

View file

@ -1,441 +0,0 @@
AC3Db
MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0
MATERIAL "retardant" rgb 1.0 0.1 0.1 amb 1.0 0.1 0.1 emis 0 0 0 spec 0.02 0.02 0.02 shi 2 trans 0
OBJECT world
kids 1
OBJECT poly
name "Plane"
data 9
Plane.001
crease 30.000000
numvert 74
11.492172 0.080483 11.658432
-10.000002 0.080483 9.999999
5.216525 0.080483 9.026312
2.012163 0.080483 10.699518
-2.124253 0.080483 9.292769
-5.669932 0.080483 10.500336
10.176895 0.080483 -2.429139
10.745033 0.080483 1.846115
10.657333 0.080483 6.428134
6.612038 0.080483 -10.744472
1.77965 0.080483 -10.447578
-1.813964 0.080483 -10.839843
-6.15408 0.080483 -9.114968
-9.020841 0.080483 5.422049
-10.368674 0.080483 2.993163
-10.59894 0.080483 -2.490539
-10.402777 0.080483 -6.481796
-4.867327 0.080483 6.099981
-0.553186 0.080483 5.053992
2.493474 0.080483 6.370207
6.982924 0.080483 5.784746
-5.310141 0.080483 2.072881
-2.529347 0.080483 1.948211
1.784095 0.080483 1.52707
7.021089 0.080483 1.660113
-6.390924 0.080483 -1.910044
-3.2943 0.080483 -3.307101
2.204326 0.080483 -2.153007
5.212038 0.080483 -3.144471
-5.820278 0.080483 -5.565367
-3.188829 0.080483 -5.394507
0.6298 0.080483 -6.686399
4.832836 0.080483 -6.591241
4.832836 0.080483 -14.591241
0.6298 0.080483 -14.686399
-3.188829 0.080483 -13.394506
-5.820278 0.080483 -13.565367
-10.402777 0.080483 -14.481796
-6.15408 0.080483 -17.114967
-1.813964 0.080483 -18.839844
1.774975 0.080483 -18.452148
6.599151 0.080483 -18.745758
9.572302 0.080483 -13.421082
-15.293234 0.080483 -8.449698
-19.541931 0.080483 -5.816527
-14.959432 0.080483 -4.900098
-14.959432 0.080483 3.099902
-15.530077 0.080483 6.755225
-14.449295 0.080483 10.73815
-19.541931 0.080483 2.183473
-19.738094 0.080483 6.17473
-19.507828 0.080483 11.658432
-15.293234 0.080483 -0.449699
15.706766 0.080483 -0.449699
16.550705 0.080483 10.73815
15.469923 0.080483 6.755225
16.040569 0.080483 3.099902
16.040569 0.080483 -4.900098
15.706766 0.080483 -8.449698
20.597223 0.080483 -6.481796
20.40106 0.080483 -2.490539
20.631325 0.080483 2.993163
21.97916 0.080483 5.422049
20.999998 0.080483 9.999999
-2.529347 0.080483 12.948211
6.982924 0.080483 16.784746
2.493474 0.080483 17.370207
-0.553186 0.080483 16.053991
-4.867327 0.080483 17.099981
-10.368674 0.080483 13.993163
-9.020841 0.080483 16.422049
10.657333 0.080483 17.428135
-9.402777 0.080483 -10.481796
-15.368674 0.080483 14.993163
numsurf 59
SURF 0x20
mat 1
refs 3
16 0.0 0.0
29 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
29 0.0 0.0
30 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
30 0.0 0.0
31 0.0 0.0
11 0.0 0.0
SURF 0x20
mat 1
refs 3
31 0.0 0.0
32 0.0 0.0
10 0.0 0.0
SURF 0x20
mat 1
refs 3
32 0.0 0.0
6 0.0 0.0
9 0.0 0.0
SURF 0x20
mat 1
refs 3
25 0.0 0.0
26 0.0 0.0
29 0.0 0.0
SURF 0x20
mat 1
refs 3
26 0.0 0.0
27 0.0 0.0
31 0.0 0.0
SURF 0x20
mat 1
refs 3
27 0.0 0.0
28 0.0 0.0
32 0.0 0.0
SURF 0x20
mat 1
refs 3
14 0.0 0.0
25 0.0 0.0
15 0.0 0.0
SURF 0x20
mat 1
refs 3
21 0.0 0.0
22 0.0 0.0
25 0.0 0.0
SURF 0x20
mat 1
refs 3
22 0.0 0.0
27 0.0 0.0
26 0.0 0.0
SURF 0x20
mat 1
refs 3
23 0.0 0.0
28 0.0 0.0
27 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
7 0.0 0.0
6 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
6 0.0 0.0
28 0.0 0.0
SURF 0x20
mat 1
refs 3
13 0.0 0.0
21 0.0 0.0
14 0.0 0.0
SURF 0x20
mat 1
refs 3
17 0.0 0.0
22 0.0 0.0
21 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
19 0.0 0.0
23 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
23 0.0 0.0
22 0.0 0.0
SURF 0x20
mat 1
refs 3
19 0.0 0.0
20 0.0 0.0
24 0.0 0.0
SURF 0x20
mat 1
refs 3
20 0.0 0.0
8 0.0 0.0
7 0.0 0.0
SURF 0x20
mat 1
refs 3
1 0.0 0.0
5 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
5 0.0 0.0
17 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
18 0.0 0.0
17 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
3 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
3 0.0 0.0
2 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
2 0.0 0.0
0 0.0 0.0
20 0.0 0.0
SURF 0x20
mat 1
refs 3
10 0.0 0.0
9 0.0 0.0
33 0.0 0.0
SURF 0x20
mat 1
refs 3
11 0.0 0.0
10 0.0 0.0
34 0.0 0.0
SURF 0x20
mat 1
refs 3
12 0.0 0.0
11 0.0 0.0
36 0.0 0.0
SURF 0x20
mat 1
refs 3
33 0.0 0.0
42 0.0 0.0
41 0.0 0.0
SURF 0x20
mat 1
refs 3
34 0.0 0.0
33 0.0 0.0
40 0.0 0.0
SURF 0x20
mat 1
refs 3
35 0.0 0.0
34 0.0 0.0
39 0.0 0.0
SURF 0x20
mat 1
refs 3
36 0.0 0.0
35 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
37 0.0 0.0
36 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
44 0.0 0.0
45 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
45 0.0 0.0
16 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
52 0.0 0.0
15 0.0 0.0
45 0.0 0.0
SURF 0x20
mat 1
refs 3
48 0.0 0.0
1 0.0 0.0
47 0.0 0.0
SURF 0x20
mat 1
refs 3
51 0.0 0.0
47 0.0 0.0
50 0.0 0.0
SURF 0x20
mat 1
refs 3
47 0.0 0.0
13 0.0 0.0
46 0.0 0.0
SURF 0x20
mat 1
refs 3
46 0.0 0.0
14 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
49 0.0 0.0
46 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
7 0.0 0.0
56 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
56 0.0 0.0
61 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
55 0.0 0.0
62 0.0 0.0
56 0.0 0.0
SURF 0x20
mat 1
refs 3
0 0.0 0.0
55 0.0 0.0
8 0.0 0.0
SURF 0x20
mat 1
refs 3
54 0.0 0.0
63 0.0 0.0
55 0.0 0.0
SURF 0x20
mat 1
refs 3
53 0.0 0.0
60 0.0 0.0
57 0.0 0.0
SURF 0x20
mat 1
refs 3
57 0.0 0.0
59 0.0 0.0
58 0.0 0.0
SURF 0x20
mat 1
refs 3
9 0.0 0.0
57 0.0 0.0
58 0.0 0.0
SURF 0x00
mat 1
refs 3
6 0.0 1.0
53 0.0 0.0
57 1.0 0.0
SURF 0x20
mat 1
refs 3
71 0.0 0.0
0 0.0 0.0
65 0.0 0.0
SURF 0x20
mat 1
refs 3
66 0.0 0.0
65 0.0 0.0
2 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
3 0.0 0.0
64 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
66 0.0 0.0
3 0.0 0.0
SURF 0x20
mat 1
refs 3
68 0.0 0.0
64 0.0 0.0
5 0.0 0.0
SURF 0x20
mat 1
refs 3
70 0.0 0.0
5 0.0 0.0
69 0.0 0.0
SURF 0x00
mat 1
refs 3
37 0.0 1.0
43 0.0 0.0
72 1.0 0.0
SURF 0x00
mat 1
refs 3
48 0.0 1.0
73 1.0 0.0
69 0.0 0.0
kids 0

View file

@ -1,29 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2012 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<path>retardant.ac</path>
<animation>
<type>select</type>
<condition>
<property>/environment/wildfire/models/enabled</property>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList>

View file

@ -1,66 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2012 - 2013 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<!-- Overlay these to set the trigger and signal properties. -->
<params>
<trigger>controls/armament/trigger</trigger>
<signal>/sim/ai/aircraft/impact/retardant</signal>
</params>
<!--
To inform the Wildfire system about a retardant impact the aircraft
-set file must load this submodel file and install a handler for the
impact signal. The handler could look similar to the following script:
<nasal>
...
<wildfire_retardant>
<script><![CDATA[
######################################################################
var resolve_impact = func (n) {
#print("Retardant impact!");
var node = props.globals.getNode(n.getValue());
var pos = geo.Coord.new().set_latlon
(node.getNode("impact/latitude-deg").getValue(),
node.getNode("impact/longitude-deg").getValue(),
node.getNode("impact/elevation-m").getValue());
# The arguments are: position, radius and volume (currently unused).
wildfire.resolve_retardant_drop(pos, 10, 0);
}
setlistener("/sim/ai/aircraft/impact/retardant", resolve_impact);
print("Wildfire integration ... initialized.");
######################################################################
]]>
</script>
</wildfire_retardant>
</nasal>
-->
<!--=========================================================================
Fire retardant marker.
-->
<submodel>
<name>Retardant marker</name>
<model>Models/Geometry/null.ac</model>
<trigger alias="../../params/trigger"/>
<speed>16</speed>
<repeat>true</repeat>
<delay>0.5</delay>
<count>-1</count>
<x-offset> 0.0 </x-offset>
<y-offset> 0.0 </y-offset>
<z-offset> -1.0 </z-offset>
<yaw-offset>0</yaw-offset>
<pitch-offset>-90</pitch-offset>
<wind>true</wind>
<eda>1.0</eda>
<cd>1.50</cd>
<weight>1.0</weight>
<impact>true</impact>
<impact-reports alias="../../params/signal"/>
</submodel>
</PropertyList>

View file

@ -1,99 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2012 - 2013 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<!-- Overlay this property to set the trigger. -->
<params>
<trigger>controls/armament/trigger</trigger>
</params>
<!--=========================================================================
Fire retardant.
-->
<particlesystem>
<name>Fire retardant</name>
<type>normal</type>
<texture>smoke.png</texture>
<emissive>false</emissive>
<lighting>true</lighting>
<condition>
<property alias="../../../params/trigger"/>
</condition>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>-205</theta-min-deg>
<theta-max-deg>-175</theta-max-deg>
<phi-min-deg>165</phi-min-deg>
<phi-max-deg>195</phi-max-deg>
<speed-mps>
<value>5.0</value>
<spread>1.0</spread>
</speed-mps>
</shooter>
<counter>
<particles-per-sec>
<value>75.0</value>
<spread>2.00</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value>1.0</value></red>
<green><value>0.1</value></green>
<blue><value>0.1</value></blue>
<alpha><value>1</value></alpha>
</color>
<size>
<value>0.5</value>
<spread>0.1</spread>
</size>
</start>
<end>
<color>
<red><value>0.8</value></red>
<green><value>0.05</value></green>
<blue><value>0.05</value></blue>
<alpha><value>0.15</value></alpha>
</color>
<size>
<value>40.0</value>
<spread>5.0</spread>
</size>
</end>
<life-sec>
<value>30.0</value>
</life-sec>
<mass-kg>25</mass-kg>
<radius-m>1</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -1,88 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2008 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<!--=========================================================================
Smoke
-->
<particlesystem>
<name>Smoke</name>
<type>normal</type>
<texture>smoke.png</texture>
<emissive>false</emissive>
<lighting>true</lighting>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<attach>world</attach>
<placer>
<type>sector</type>
<radius-min-m>0.0</radius-min-m>
<radius-max-m>30.0</radius-max-m>
</placer>
<shooter>
<speed-mps>
<value>0.5</value>
<spread>0</spread>
</speed-mps>
</shooter>
<counter>
<particles-per-sec>
<value>2.0</value>
<spread>0.50</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value>0.3</value></red>
<green><value>0.3</value></green>
<blue><value>0.3</value></blue>
<alpha><value>1</value></alpha>
</color>
<size>
<value>40</value>
<spread>10</spread>
</size>
</start>
<end>
<color>
<red><value>0.8</value></red>
<green><value>0.8</value></green>
<blue><value>0.8</value></blue>
<alpha><value>0.5</value></alpha>
</color>
<size>
<value>150</value>
<spread>50</spread>
</size>
</end>
<life-sec>
<value>4</value>
</life-sec>
<mass-kg>60</mass-kg>
<radius-m>10</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -1,441 +0,0 @@
AC3Db
MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0
MATERIAL "soot" rgb 0.1 0.1 0.1 amb 0.1 0.1 0.1 emis 0 0 0 spec 0.02 0.02 0.02 shi 2 trans 0
OBJECT world
kids 1
OBJECT poly
name "Plane"
data 9
Plane.001
crease 30.000000
numvert 74
11.492172 0.080483 11.658432
-10.000002 0.080483 9.999999
5.216525 0.080483 9.026312
2.012163 0.080483 10.699518
-2.124253 0.080483 9.292769
-5.669932 0.080483 10.500336
10.176895 0.080483 -2.429139
10.745033 0.080483 1.846115
10.657333 0.080483 6.428134
6.612038 0.080483 -10.744472
1.77965 0.080483 -10.447578
-1.813964 0.080483 -10.839843
-6.15408 0.080483 -9.114968
-9.020841 0.080483 5.422049
-10.368674 0.080483 2.993163
-10.59894 0.080483 -2.490539
-10.402777 0.080483 -6.481796
-4.867327 0.080483 6.099981
-0.553186 0.080483 5.053992
2.493474 0.080483 6.370207
6.982924 0.080483 5.784746
-5.310141 0.080483 2.072881
-2.529347 0.080483 1.948211
1.784095 0.080483 1.52707
7.021089 0.080483 1.660113
-6.390924 0.080483 -1.910044
-3.2943 0.080483 -3.307101
2.204326 0.080483 -2.153007
5.212038 0.080483 -3.144471
-5.820278 0.080483 -5.565367
-3.188829 0.080483 -5.394507
0.6298 0.080483 -6.686399
4.832836 0.080483 -6.591241
4.832836 0.080483 -14.591241
0.6298 0.080483 -14.686399
-3.188829 0.080483 -13.394506
-5.820278 0.080483 -13.565367
-10.402777 0.080483 -14.481796
-6.15408 0.080483 -17.114967
-1.813964 0.080483 -18.839844
1.774975 0.080483 -18.452148
6.599151 0.080483 -18.745758
9.572302 0.080483 -13.421082
-15.293234 0.080483 -8.449698
-19.541931 0.080483 -5.816527
-14.959432 0.080483 -4.900098
-14.959432 0.080483 3.099902
-15.530077 0.080483 6.755225
-14.449295 0.080483 10.73815
-19.541931 0.080483 2.183473
-19.738094 0.080483 6.17473
-19.507828 0.080483 11.658432
-15.293234 0.080483 -0.449699
15.706766 0.080483 -0.449699
16.550705 0.080483 10.73815
15.469923 0.080483 6.755225
16.040569 0.080483 3.099902
16.040569 0.080483 -4.900098
15.706766 0.080483 -8.449698
20.597223 0.080483 -6.481796
20.40106 0.080483 -2.490539
20.631325 0.080483 2.993163
21.97916 0.080483 5.422049
20.999998 0.080483 9.999999
-2.529347 0.080483 12.948211
6.982924 0.080483 16.784746
2.493474 0.080483 17.370207
-0.553186 0.080483 16.053991
-4.867327 0.080483 17.099981
-10.368674 0.080483 13.993163
-9.020841 0.080483 16.422049
10.657333 0.080483 17.428135
-9.402777 0.080483 -10.481796
-15.368674 0.080483 14.993163
numsurf 59
SURF 0x20
mat 1
refs 3
16 0.0 0.0
29 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
29 0.0 0.0
30 0.0 0.0
12 0.0 0.0
SURF 0x20
mat 1
refs 3
30 0.0 0.0
31 0.0 0.0
11 0.0 0.0
SURF 0x20
mat 1
refs 3
31 0.0 0.0
32 0.0 0.0
10 0.0 0.0
SURF 0x20
mat 1
refs 3
32 0.0 0.0
6 0.0 0.0
9 0.0 0.0
SURF 0x20
mat 1
refs 3
25 0.0 0.0
26 0.0 0.0
29 0.0 0.0
SURF 0x20
mat 1
refs 3
26 0.0 0.0
27 0.0 0.0
31 0.0 0.0
SURF 0x20
mat 1
refs 3
27 0.0 0.0
28 0.0 0.0
32 0.0 0.0
SURF 0x20
mat 1
refs 3
14 0.0 0.0
25 0.0 0.0
15 0.0 0.0
SURF 0x20
mat 1
refs 3
21 0.0 0.0
22 0.0 0.0
25 0.0 0.0
SURF 0x20
mat 1
refs 3
22 0.0 0.0
27 0.0 0.0
26 0.0 0.0
SURF 0x20
mat 1
refs 3
23 0.0 0.0
28 0.0 0.0
27 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
7 0.0 0.0
6 0.0 0.0
SURF 0x20
mat 1
refs 3
24 0.0 0.0
6 0.0 0.0
28 0.0 0.0
SURF 0x20
mat 1
refs 3
13 0.0 0.0
21 0.0 0.0
14 0.0 0.0
SURF 0x20
mat 1
refs 3
17 0.0 0.0
22 0.0 0.0
21 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
19 0.0 0.0
23 0.0 0.0
SURF 0x20
mat 1
refs 3
18 0.0 0.0
23 0.0 0.0
22 0.0 0.0
SURF 0x20
mat 1
refs 3
19 0.0 0.0
20 0.0 0.0
24 0.0 0.0
SURF 0x20
mat 1
refs 3
20 0.0 0.0
8 0.0 0.0
7 0.0 0.0
SURF 0x20
mat 1
refs 3
1 0.0 0.0
5 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
5 0.0 0.0
17 0.0 0.0
13 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
18 0.0 0.0
17 0.0 0.0
SURF 0x20
mat 1
refs 3
4 0.0 0.0
3 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
3 0.0 0.0
2 0.0 0.0
19 0.0 0.0
SURF 0x20
mat 1
refs 3
2 0.0 0.0
0 0.0 0.0
20 0.0 0.0
SURF 0x20
mat 1
refs 3
10 0.0 0.0
9 0.0 0.0
33 0.0 0.0
SURF 0x20
mat 1
refs 3
11 0.0 0.0
10 0.0 0.0
34 0.0 0.0
SURF 0x20
mat 1
refs 3
12 0.0 0.0
11 0.0 0.0
36 0.0 0.0
SURF 0x20
mat 1
refs 3
33 0.0 0.0
42 0.0 0.0
41 0.0 0.0
SURF 0x20
mat 1
refs 3
34 0.0 0.0
33 0.0 0.0
40 0.0 0.0
SURF 0x20
mat 1
refs 3
35 0.0 0.0
34 0.0 0.0
39 0.0 0.0
SURF 0x20
mat 1
refs 3
36 0.0 0.0
35 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
37 0.0 0.0
36 0.0 0.0
38 0.0 0.0
SURF 0x20
mat 1
refs 3
44 0.0 0.0
45 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
45 0.0 0.0
16 0.0 0.0
43 0.0 0.0
SURF 0x20
mat 1
refs 3
52 0.0 0.0
15 0.0 0.0
45 0.0 0.0
SURF 0x20
mat 1
refs 3
48 0.0 0.0
1 0.0 0.0
47 0.0 0.0
SURF 0x20
mat 1
refs 3
51 0.0 0.0
47 0.0 0.0
50 0.0 0.0
SURF 0x20
mat 1
refs 3
47 0.0 0.0
13 0.0 0.0
46 0.0 0.0
SURF 0x20
mat 1
refs 3
46 0.0 0.0
14 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
49 0.0 0.0
46 0.0 0.0
52 0.0 0.0
SURF 0x20
mat 1
refs 3
7 0.0 0.0
56 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
56 0.0 0.0
61 0.0 0.0
53 0.0 0.0
SURF 0x20
mat 1
refs 3
55 0.0 0.0
62 0.0 0.0
56 0.0 0.0
SURF 0x20
mat 1
refs 3
0 0.0 0.0
55 0.0 0.0
8 0.0 0.0
SURF 0x20
mat 1
refs 3
54 0.0 0.0
63 0.0 0.0
55 0.0 0.0
SURF 0x20
mat 1
refs 3
53 0.0 0.0
60 0.0 0.0
57 0.0 0.0
SURF 0x20
mat 1
refs 3
57 0.0 0.0
59 0.0 0.0
58 0.0 0.0
SURF 0x20
mat 1
refs 3
9 0.0 0.0
57 0.0 0.0
58 0.0 0.0
SURF 0x00
mat 1
refs 3
6 0.0 1.0
53 0.0 0.0
57 1.0 0.0
SURF 0x20
mat 1
refs 3
71 0.0 0.0
0 0.0 0.0
65 0.0 0.0
SURF 0x20
mat 1
refs 3
66 0.0 0.0
65 0.0 0.0
2 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
3 0.0 0.0
64 0.0 0.0
SURF 0x20
mat 1
refs 3
67 0.0 0.0
66 0.0 0.0
3 0.0 0.0
SURF 0x20
mat 1
refs 3
68 0.0 0.0
64 0.0 0.0
5 0.0 0.0
SURF 0x20
mat 1
refs 3
70 0.0 0.0
5 0.0 0.0
69 0.0 0.0
SURF 0x00
mat 1
refs 3
37 0.0 1.0
43 0.0 0.0
72 1.0 0.0
SURF 0x00
mat 1
refs 3
48 0.0 1.0
73 1.0 0.0
69 0.0 0.0
kids 0

View file

@ -1,29 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2008 - 2010 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<path>soot.ac</path>
<animation>
<type>select</type>
<condition>
<property>/environment/wildfire/models/enabled</property>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>noshadow</type>
</animation>
</PropertyList>

View file

@ -1,223 +0,0 @@
<?xml version="1.0"?>
<!-- (C) 2008 - 2010 Anders Gidenstam.
Distribution: GPL v2 or later.
-->
<PropertyList>
<!--==========================================================================
Fire LODs
-->
<model>
<name>SmokelessFireHigh</name>
<overlay>
<particlesystem>
<condition>
<greater-than>
<property>environment/wildfire/models/fire-lod</property>
<value>9</value>
</greater-than>
</condition>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/fire.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>2.0</z-m>
</offsets>
</model>
<model>
<name>SmokelessFireMed</name>
<overlay>
<particlesystem>
<condition>
<greater-than>
<property>environment/wildfire/models/fire-lod</property>
<value>4</value>
</greater-than>
<less-than>
<property>environment/wildfire/models/fire-lod</property>
<value>10</value>
</less-than>
</condition>
<counter>
<particles-per-sec>
<value>5.0</value>
<spread>5</spread>
</particles-per-sec>
</counter>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/fire.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>2.0</z-m>
</offsets>
</model>
<model>
<name>SmokelessFireLow</name>
<overlay>
<particlesystem>
<condition>
<less-than>
<property>environment/wildfire/models/fire-lod</property>
<value>5</value>
</less-than>
</condition>
<counter>
<particles-per-sec>
<value>2.0</value>
<spread>1</spread>
</particles-per-sec>
</counter>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/fire.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>2.0</z-m>
</offsets>
</model>
<!--==========================================================================
Smoke LODs
-->
<model>
<name>SmokeHigh</name>
<overlay>
<particlesystem>
<condition>
<greater-than>
<property>environment/wildfire/models/smoke-lod</property>
<value>9</value>
</greater-than>
</condition>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/smoke.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>10.0</z-m>
</offsets>
</model>
<model>
<name>SmokeMed</name>
<overlay>
<particlesystem>
<condition>
<greater-than>
<property>environment/wildfire/models/smoke-lod</property>
<value>4</value>
</greater-than>
<less-than>
<property>environment/wildfire/models/smoke-lod</property>
<value>10</value>
</less-than>
</condition>
<counter>
<particles-per-sec>
<value>0.5</value>
<spread>0.25</spread>
</particles-per-sec>
</counter>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/smoke.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>10.0</z-m>
</offsets>
</model>
<model>
<name>SmokeLow</name>
<overlay>
<particlesystem>
<condition>
<less-than>
<property>environment/wildfire/models/smoke-lod</property>
<value>5</value>
</less-than>
</condition>
<counter>
<particles-per-sec>
<value>0.1</value>
<spread>0.05</spread>
</particles-per-sec>
</counter>
</particlesystem>
</overlay>
<path>Models/Effects/Wildfire/smoke.xml</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>10.0</z-m>
</offsets>
</model>
<!--==========================================================================
Animations
-->
<animation>
<name>Fire</name>
<object-name>SmokelessFireHigh</object-name>
<object-name>SmokelessFireMed</object-name>
<object-name>SmokelessFireLow</object-name>
</animation>
<animation>
<name>Smoke</name>
<object-name>SmokeHigh</object-name>
<object-name>SmokeMed</object-name>
<object-name>SmokeLow</object-name>
</animation>
<animation>
<type>select</type>
<object-name>Fire</object-name>
<condition>
<property>environment/wildfire/models/enabled</property>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>Smoke</object-name>
<condition>
<property>environment/wildfire/models/enabled</property>
</condition>
</animation>
<animation>
<type>range</type>
<object-name>Fire</object-name>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<animation>
<type>range</type>
<object-name>Smoke</object-name>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -1387,6 +1387,7 @@ menuEnable("joystick-info", size(props.globals.getNode("/input/joysticks", 1).ge
menuEnable("rendering-buffers", getprop("/sim/rendering/rembrandt/enabled"));
menuEnable("rembrandt-buffers-choice", getprop("/sim/rendering/rembrandt/enabled"));
menuEnable("stereoscopic-options", !getprop("/sim/rendering/rembrandt/enabled"));
menuEnable("vr-options", !getprop("/sim/rendering/rembrandt/enabled") and getprop("/sim/vr/built"));
menuEnable("sound-config", getprop("/sim/sound/working"));
menuEnable("swift_connection", getprop("/sim/swift/available"));

File diff suppressed because it is too large Load diff

View file

@ -31,18 +31,23 @@ vec3 decodeNormal(vec2 f)
// Given a 2D coordinate in the range [0,1] and a depth value from a depth
// buffer, also in the [0,1] range, return the view space position.
vec3 positionFromDepth(vec2 pos, float depth)
vec3 positionFromDepth(vec2 pos, float depth, mat4 projMatrixInverse)
{
// We are using a reversed depth buffer. 1.0 corresponds to the near plane
// and 0.0 to the far plane. We convert this back to clip space by doing
// 1.0 - depth to undo the depth reversal
// 2.0 * depth - 1.0 to transform it to clip space [-1,1]
vec4 clipSpacePos = vec4(pos * 2.0 - 1.0, 1.0 - depth * 2.0, 1.0);
vec4 viewSpacePos = fg_ProjectionMatrixInverse * clipSpacePos;
vec4 viewSpacePos = projMatrixInverse * clipSpacePos;
viewSpacePos.xyz /= viewSpacePos.w;
return viewSpacePos.xyz;
}
vec3 positionFromDepth(vec2 pos, float depth)
{
return positionFromDepth(pos, depth, fg_ProjectionMatrixInverse);
}
// http://www.geeks3d.com/20091216/geexlab-how-to-visualize-the-depth-buffer-in-glsl/
float linearizeDepth(float depth)
{

View file

@ -30,7 +30,7 @@ vec3 evaluateLight(
float roughness,
vec3 f0,
vec3 intensity,
float occlusion,
float visibility,
vec3 n,
vec3 l,
vec3 v,
@ -41,7 +41,7 @@ vec3 evaluateIBL(
float metallic,
float roughness,
vec3 f0,
float occlusion,
float visibility,
vec3 nWorldSpace,
float NdotV,
vec3 reflected);

View file

@ -26,7 +26,7 @@ vec3 evaluateLight(
float roughness,
vec3 f0,
vec3 intensity,
float occlusion,
float visibility,
vec3 n,
vec3 l,
vec3 v,
@ -37,7 +37,7 @@ vec3 evaluateIBL(
float metallic,
float roughness,
vec3 f0,
float occlusion,
float visibility,
vec3 nWorldSpace,
float NdotV,
vec3 reflected);

View file

@ -0,0 +1,35 @@
#version 330 core
out float fragColor;
uniform sampler2D ao_tex;
void main()
{
ivec2 coord = ivec2(gl_FragCoord.xy) - ivec2(2);
float ao = 0.0;
ao += texelFetch(ao_tex, coord, 0).r;
ao += texelFetch(ao_tex, coord + ivec2(1, 0), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(0, 1), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(1, 1), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(2, 0), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(3, 0), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(2, 1), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(3, 1), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(0, 2), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(1, 2), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(0, 3), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(1, 3), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(2, 2), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(3, 2), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(2, 3), 0).r;
ao += texelFetch(ao_tex, coord + ivec2(3, 3), 0).r;
ao /= 16.0;
fragColor = ao;
}

141
Shaders/HDR/gtao.frag Normal file
View file

@ -0,0 +1,141 @@
/**
* An implementation of GTAO (Ground Truth Ambient Occlusion)
* Based on 'Practical Real-Time Strategies for Accurate Indirect Occlusion' by
* Jorge Jimenez et al.
* https://www.activision.com/cdn/research/Practical_Real_Time_Strategies_for_Accurate_Indirect_Occlusion_NEW%20VERSION_COLOR.pdf
* https://blog.selfshadow.com/publications/s2016-shading-course/activision/s2016_pbs_activision_occlusion.pdf
* Most of the shader is based on Algorithm 1 of the paper.
*/
#version 330 core
out float fragColor;
in vec2 texCoord;
uniform sampler2D gbuffer0_tex;
uniform sampler2D depth_tex;
uniform float world_radius;
uniform vec4 fg_Viewport;
uniform vec2 fg_PixelSize;
uniform mat4 fg_ProjectionMatrix;
const float PI = 3.141592653;
const float PI_HALF = PI * 0.5;
const float SLICE_COUNT = 3.0;
const float DIRECTION_SAMPLE_COUNT = 4.0;
vec3 decodeNormal(vec2 f);
vec3 positionFromDepth(vec2 pos, float depth);
void main()
{
float depth = textureLod(depth_tex, texCoord, 0.0).r;
// Ignore the background
if (depth == 0.0) {
fragColor = 0.0;
discard;
}
// Slightly push the depth towards the camera to avoid imprecision artifacts
depth = clamp(depth * 1.00001, 0.0, 1.0);
// View space normal
vec3 normal = decodeNormal(texture(gbuffer0_tex, texCoord).rg);
// Fragment position in view space
vec3 pos = positionFromDepth(texCoord, depth);
// View vector in view space
vec3 v = normalize(-pos);
float noiseDirection = 0.0625 * float(
((int(gl_FragCoord.x) + int(gl_FragCoord.y) & 3) << 2) +
(int(gl_FragCoord.x) & 3));
float noiseOffset = 0.25 * float(int(gl_FragCoord.x) + int(gl_FragCoord.y) & 3);
// Transform the world space hemisphere radius to screen space pixels with
// the following formula:
// radius * 1 / [ tan(fovy / 2) * z_distance ] * (screen_size.y / 2)
// In our case, the (1,1) element of the projection matrix contains
// 1 / tan(fovy / 2), so we can use that directly.
// z_distance is the distance from the camera to the fragment, which is
// just the positive z component of the view space fragment position.
float radiusPixels = world_radius * (fg_ProjectionMatrix[1][1] / abs(pos.z))
* fg_Viewport.w * 0.5;
float visibility = 0.0;
for (float i = 0.0; i < SLICE_COUNT; ++i) {
float phi = ((i + noiseDirection) / SLICE_COUNT) * PI;
float cosPhi = cos(phi);
float sinPhi = sin(phi);
vec2 omega = vec2(cosPhi, sinPhi);
vec3 dir = vec3(omega, 0.0);
vec3 orthoDirection = dir - dot(dir, v) * v;
vec3 axis = normalize(cross(dir, v));
vec3 projNormal = normal - axis * dot(normal, axis);
float projNormalLength = max(1e-5, length(projNormal));
float sgnN = sign(dot(orthoDirection, projNormal));
float cosN = clamp(dot(projNormal, v) / projNormalLength, 0.0, 1.0);
float n = sgnN * acos(cosN);
float hcos1 = -1.0, hcos2 = -1.0;
for (float j = 0.0; j < DIRECTION_SAMPLE_COUNT; ++j) {
float s = (j + noiseOffset) / DIRECTION_SAMPLE_COUNT;
s += 1.2 / radiusPixels;
vec2 sOffset = s * radiusPixels * omega;
sOffset = round(sOffset) * fg_PixelSize;
vec2 sTexCoord1 = texCoord - sOffset;
float sDepth1 = textureLod(depth_tex, sTexCoord1, 0.0).r;
if (sDepth1 == 0.0) {
// Skip background
continue;
}
vec3 sPos1 = positionFromDepth(sTexCoord1, sDepth1);
vec2 sTexCoord2 = texCoord + sOffset;
float sDepth2 = textureLod(depth_tex, sTexCoord2, 0.0).r;
if (sDepth2 == 0.0) {
// Skip background
continue;
}
vec3 sPos2 = positionFromDepth(sTexCoord2, sDepth2);
vec3 sHorizon1 = sPos1 - pos;
vec3 sHorizon2 = sPos2 - pos;
float sHorizonLength1 = length(sHorizon1);
float sHorizonLength2 = length(sHorizon2);
float shcos1 = dot(sHorizon1 / sHorizonLength1, v);
float shcos2 = dot(sHorizon2 / sHorizonLength2, v);
// Section 4.3: Bounding the sampling area
// Attenuate samples that are further away
float weight1 = clamp((1.0 - sHorizonLength1 / world_radius) * 2.0, 0.0, 1.0);
float weight2 = clamp((1.0 - sHorizonLength2 / world_radius) * 2.0, 0.0, 1.0);
shcos1 = mix(-1.0, shcos1, weight1);
shcos2 = mix(-1.0, shcos2, weight2);
hcos1 = max(hcos1, shcos1);
hcos2 = max(hcos2, shcos2);
}
float h1 = n + max(-acos(hcos1) - n, -PI_HALF);
float h2 = n + min( acos(hcos2) - n, PI_HALF);
float sinN = sin(n);
float h1_2 = 2.0 * h1;
float h2_2 = 2.0 * h2;
float vd = 0.25 * ((cosN + h1_2 * sinN - cos(h1_2 - n)) +
(cosN + h2_2 * sinN - cos(h2_2 - n)));
visibility += projNormalLength * vd;
}
visibility /= float(SLICE_COUNT);
fragColor = clamp(visibility, 0.0, 1.0);
}

View file

@ -120,7 +120,7 @@ vec3 evaluateIBL(
float metallic,
float roughness,
vec3 f0, // Use getF0Reflectance() to obtain this
float occlusion,
float visibility,
vec3 nWorldSpace, // Normal in world space
float NdotV, // Must be positive and non-zero
vec3 reflected // Reflected vector in world space: reflect(-v, n)
@ -132,7 +132,7 @@ vec3 evaluateIBL(
vec3 diffuse = evaluateDiffuseIrradianceIBL(nWorldSpace) * baseColor
* (vec3(1.0) - f) * (1.0 - metallic);
return (diffuse + specular) * occlusion;
return (diffuse + specular) * visibility;
}
//------------------------------------------------------------------------------
@ -144,7 +144,7 @@ vec3 evaluateLight(
float roughness,
vec3 f0, // Use getF0Reflectance() to obtain this
vec3 intensity,
float occlusion,
float visibility,
vec3 n,
vec3 l,
vec3 v,
@ -153,7 +153,7 @@ vec3 evaluateLight(
)
{
// Skip fragments that are completely occluded or that are not facing the light
if (occlusion <= 0.0 || NdotL <= 0.0)
if (visibility <= 0.0 || NdotL <= 0.0)
return vec3(0.0);
NdotL = clamp(NdotL, 0.001, 1.0);
@ -180,6 +180,6 @@ vec3 evaluateLight(
vec3 material = f_diffuse + f_specular;
vec3 color = material * intensity * occlusion;
vec3 color = material * intensity * visibility;
return color;
}

View file

@ -10,6 +10,7 @@ uniform sampler2D gbuffer2_tex;
uniform sampler2D depth_tex;
uniform sampler2D ao_tex;
uniform bool ambient_occlusion_enabled;
uniform bool debug_shadow_cascades;
uniform mat4 fg_ViewMatrixInverse;
@ -27,7 +28,7 @@ vec3 evaluateLight(
float roughness,
vec3 f0,
vec3 intensity,
float occlusion,
float visibility,
vec3 n,
vec3 l,
vec3 v,
@ -38,13 +39,24 @@ vec3 evaluateIBL(
float metallic,
float roughness,
vec3 f0,
float occlusion,
float visibility,
vec3 nWorldSpace,
float NdotV,
vec3 reflected);
vec3 addAerialPerspective(vec3 color, vec2 coord, float depth);
vec3 getSunIntensity();
float GTAOMultiBounce(float x, vec3 albedo)
{
// Use luminance instead of albedo because colored multibounce looks bad
// Idea borrowed from Blender Eevee
float lum = dot(albedo, vec3(0.333));
float a = 2.0404 * lum - 0.3324;
float b = -4.7951 * lum + 0.6417;
float c = 2.7552 * lum + 0.6903;
return max(x, ((x * a + b) * x + c) * x);
}
void main()
{
vec4 gbuffer0 = texture(gbuffer0_tex, texCoord);
@ -67,8 +79,6 @@ void main()
float NdotL = dot(n, l);
float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
float ao = texture(ao_tex, texCoord).r;
vec3 f0 = getF0Reflectance(baseColor, metallic);
vec3 sunIlluminance = getSunIntensity() * clamp(NdotL, 0.0, 1.0);
@ -83,7 +93,11 @@ void main()
n, l, v,
NdotL, NdotV);
float ambientOcclusion = ao * occlusion;
float ao = occlusion;
if (ambient_occlusion_enabled) {
ao *= GTAOMultiBounce(texture(ao_tex, texCoord).r, baseColor);
}
vec3 worldNormal = (fg_ViewMatrixInverse * vec4(n, 0.0)).xyz;
vec3 worldReflected = (fg_ViewMatrixInverse * vec4(reflect(-v, n), 0.0)).xyz;
@ -91,7 +105,7 @@ void main()
metallic,
roughness,
f0,
ambientOcclusion,
ao,
worldNormal,
NdotV,
worldNormal);

View file

@ -24,6 +24,7 @@ uniform float osg_SimulationTime;
uniform float avisibility;
uniform float sun_angle;
uniform float fov;
varying vec3 relativePosition;
varying vec2 rawPosition;
@ -184,19 +185,14 @@ void main()
lightSize = lightParams.x;
lightIntensity = lightParams.y;
/*******
* TODOs:
* Might need to take into account FOV
*/
/********
* Each light is made up of a base circle, a circular-ish halo around the base and a bunch of
* star-like rays
* baseLightSize is tuned using reference objects of sizes 10cm, 50cm, 100cm, 500cm and 1000cm
* under the assumption that the "bright center" part of the light will be the same size as
* the light itself
* under the assumption that the "bright center" part of the light will be the approximately the
* same size as the light itself
*/
float baseLightSize = lightSize / (dist/80);
float baseLightSize = lightSize / (dist/80) * 60/fov;
/********

View file

@ -37,6 +37,7 @@
<replay>Instant Replay</replay>
<earthview>Earthview orbital rendering</earthview>
<stereoscopic-options>Stereoscopic View Options</stereoscopic-options>
<vr-options>VR Options</vr-options>
<als-filter-effects>ALS Filter Effects</als-filter-effects>
<!-- Location menu -->

View file

@ -71,6 +71,8 @@
<enable-anti-alias-hud-desc>Enable anti-aliased HUD</enable-anti-alias-hud-desc>
<disable-hud-3d-desc>Disable 3D HUD</disable-hud-3d-desc>
<enable-hud-3d-desc>Enable 3D HUD</enable-hud-3d-desc>
<disable-vr-desc>Disable VR</disable-vr-desc>
<enable-vr-desc>Enable VR</enable-vr-desc>
<!-- Aircraft options -->
<aircraft-options>Aircraft</aircraft-options>

View file

@ -483,6 +483,10 @@
<source>View Options</source>
<target />
</trans-unit>
<trans-unit id="menu/vr-options:0" translate="yes" approved="no">
<source>VR Options</source>
<target />
</trans-unit>
<trans-unit id="menu/view-push:0" translate="yes" approved="no">
<source>Push Pair View</source>
<target />
@ -757,6 +761,10 @@
<source>Disable textures</source>
<target />
</trans-unit>
<trans-unit id="options/disable-vr-desc:" translate="yes" approved="no">
<source>Disable VR</source>
<target />
</trans-unit>
<trans-unit id="options/disable-wireframe-desc:0" translate="yes" approved="no">
<source>Disable wireframe drawing mode</source>
<target />
@ -889,6 +897,10 @@
<source>Enable textures</source>
<target />
</trans-unit>
<trans-unit id="options/enable-vr-desc:" translate="yes" approved="no">
<source>Enable VR</source>
<target />
</trans-unit>
<trans-unit id="options/enable-wireframe-desc:0" translate="yes" approved="no">
<source>Enable wireframe drawing mode</source>
<target />

View file

@ -388,6 +388,10 @@ Started September 2000 by David Megginson, david@megginson.com
<exposure-compensation type="float">0.0</exposure-compensation>
<bloom-magnitude type="float">0.5</bloom-magnitude>
<bloom-threshold type="float">8.0</bloom-threshold>
<ambient-occlusion>
<enabled type="bool" userarchive="y">true</enabled>
<world-radius type="float">0.2</world-radius>
</ambient-occlusion>
<debug>
<display-ev100 type="bool">false</display-ev100>
<show-gbuffer type="bool">false</show-gbuffer>
@ -396,6 +400,13 @@ Started September 2000 by David Megginson, david@megginson.com
</hdr>
<composite-viewer-enabled type="bool">true</composite-viewer-enabled>
</rendering>
<vr>
<depth-info type="bool" userarchive="y">true</depth-info>
<enabled type="bool" userarchive="y">false</enabled>
<mode type="string" userarchive="y">AUTOMATIC</mode>
<swapchain-mode type="string" userarchive="y">AUTOMATIC</swapchain-mode>
<validation-layer type="bool" userarchive="y">false</validation-layer>
</vr>
<model-hz type="int">120</model-hz>
<sound>
<volume type="float" userarchive="y">0.8</volume>

116
gui/dialogs/vr-options.xml Normal file
View file

@ -0,0 +1,116 @@
<?xml version="1.0"?>
<PropertyList>
<name>vr-options</name>
<modal>false</modal>
<resizable>false</resizable>
<layout>vbox</layout>
<default-padding>3</default-padding>
<group>
<layout>hbox</layout>
<default-padding>1</default-padding>
<empty>
<stretch>true</stretch>
</empty>
<text>
<label>VR Options</label>
</text>
<empty>
<stretch>true</stretch>
</empty>
<button>
<legend></legend>
<key>Esc</key>
<pref-width>16</pref-width>
<pref-height>16</pref-height>
<border>2</border>
<binding>
<command>dialog-close</command>
</binding>
</button>
</group>
<hrule/>
<empty>
<stretch>true</stretch>
</empty>
<group>
<layout>vbox</layout>
<padding>6</padding>
<checkbox>
<halign>left</halign>
<label>Enable VR</label>
<property>/sim/vr/enabled</property>
<live>false</live>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox>
</group>
<text>
<halign>center</halign>
<label>OpenXR Information</label>
<enable><property>/sim/vr/present</property></enable>
</text>
<group>
<layout>vbox</layout>
<border>10</border>
<halign>center</halign>
<default-padding>2</default-padding>
<text>
<halign>left</halign>
<label>OpenXR Runtime: MMMMMMMMMMMMMMMMMMMMMMMM</label>
<format>OpenXR Runtime: %s</format>
<property>/sim/vr/openxr/runtime/name</property>
<live>true</live>
<enable><property>/sim/vr/present</property></enable>
</text>
<text>
<halign>left</halign>
<label>OpenXR System: MMMMMMMMMMMMMMMMMMMMMMMM</label>
<format>OpenXR System: %s</format>
<property>/sim/vr/openxr/system/name</property>
<live>true</live>
<enable><property>/sim/vr/present</property></enable>
</text>
<text>
<halign>left</halign>
<label>VR State: MMMMMMMMMMMMMMMMMMMMMMMM</label>
<format>VR State: %s</format>
<property>/sim/vr/state-string</property>
<live>true</live>
<enable><property>/sim/vr/present</property></enable>
</text>
</group>
<empty>
<stretch>true</stretch>
</empty>
<hrule/>
<button>
<legend>Close</legend>
<default>true</default>
<key>Esc</key>
<binding>
<command>dialog-close</command>
</binding>
</button>
</PropertyList>

View file

@ -199,6 +199,15 @@
<enabled>false</enabled>
</item>
<item>
<name>vr-options</name>
<binding>
<command>dialog-show</command>
<dialog-name>vr-options</dialog-name>
</binding>
<enabled>false</enabled>
</item>
<item>
<enabled>
<property>/sim/rendering/shaders/skydome</property>
@ -372,15 +381,6 @@
</binding>
</item>
<item>
<name>wildfire-settings</name>
<binding>
<command>nasal</command>
<script>wildfire.dialog.show()</script>
</binding>
</item>
<item>
<label>Volcanoes</label>
<name>volcanoes</name>

View file

@ -312,13 +312,6 @@
</binding>
</item>
<item>
<label>Wildfire Settings</label>
<binding>
<command>nasal</command>
<script>wildfire.dialog.show()</script>
</binding>
</item>
<item>
<label>Local Weather</label>
<binding>

View file

@ -319,6 +319,16 @@
<description>enable-clock-freeze-desc</description>
</option>
<option>
<name>disable-vr</name>
<description>disable-vr-desc</description>
</option>
<option>
<name>enable-vr</name>
<description>enable-vr-desc</description>
</option>
<option>
<name>failure</name>
<arg>{pitot|static|vacuum|electrical}</arg>