Merge branch 'next' into canvas-livery
This commit is contained in:
commit
422f63b076
44 changed files with 554 additions and 219 deletions
|
@ -16,14 +16,18 @@
|
||||||
0 Default. Will also be used if an AI model is not found
|
0 Default. Will also be used if an AI model is not found
|
||||||
1-50 Single engine GA aircraft
|
1-50 Single engine GA aircraft
|
||||||
51-100 Multi-engine GA aircraft
|
51-100 Multi-engine GA aircraft
|
||||||
101-150 Turboprop airliners
|
101-150 Business Jets
|
||||||
151-200 Twin engined narrow body jet airliners
|
151-200 Turboprop airliners
|
||||||
201-250 Twin engined wide body jet airliners
|
201-250 Twin engined narrow body jet airliners
|
||||||
251-300 Four engined jet airliners
|
251-300 Twin engined wide body jet airliners
|
||||||
301-350 Military combat aircraft
|
301-350 Four engined jet narrow body airliners
|
||||||
351-400 Military non-combat aircraft (tankers, transports)
|
351-400 Four engined jet wide body airliners
|
||||||
401-500 ????
|
401-450 Single engine prop military aircraft
|
||||||
|
451-500 Multi-engine prop military aircraft
|
||||||
|
501-550 Jet combat aircraft
|
||||||
|
551-600 Military large aircraft (tankers, transports)
|
||||||
|
601-700 Helicopters
|
||||||
|
701-800 Other
|
||||||
-->
|
-->
|
||||||
<PropertyList>
|
<PropertyList>
|
||||||
|
|
||||||
|
@ -172,4 +176,9 @@
|
||||||
<model n="710" type="string">AI/Aircraft/G-164/Models/G-164A-ai.xml</model>
|
<model n="710" type="string">AI/Aircraft/G-164/Models/G-164A-ai.xml</model>
|
||||||
<model n="711" type="string">AI/Aircraft/Gee-Bee/Models/geebee-ai.xml</model>
|
<model n="711" type="string">AI/Aircraft/Gee-Bee/Models/geebee-ai.xml</model>
|
||||||
|
|
||||||
|
<!-- Special case as the ufo is always installed and light enough not to need a separate
|
||||||
|
AI model. We also want to load it in preference to the default glider because it will
|
||||||
|
then be invisible to other MP players who are not in a UFO themselves. -->
|
||||||
|
<model n="712" type="string">Aircraft/ufo/Models/ufo.xml</model>
|
||||||
|
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -68,7 +68,10 @@
|
||||||
<condition>
|
<condition>
|
||||||
<and>
|
<and>
|
||||||
<not>
|
<not>
|
||||||
|
<or>
|
||||||
<property>/sim/current-view/internal</property>
|
<property>/sim/current-view/internal</property>
|
||||||
|
<property>/sim/walker/outside</property>
|
||||||
|
</or>
|
||||||
</not>
|
</not>
|
||||||
<property>/sim/rendering/pilot-model/enabled</property>
|
<property>/sim/rendering/pilot-model/enabled</property>
|
||||||
</and>
|
</and>
|
||||||
|
|
|
@ -61,7 +61,10 @@
|
||||||
<condition>
|
<condition>
|
||||||
<and>
|
<and>
|
||||||
<not>
|
<not>
|
||||||
|
<or>
|
||||||
<property>/sim/current-view/internal</property>
|
<property>/sim/current-view/internal</property>
|
||||||
|
<property>/sim/walker/outside</property>
|
||||||
|
</or>
|
||||||
</not>
|
</not>
|
||||||
<property>/sim/rendering/pilot-model/enabled</property>
|
<property>/sim/rendering/pilot-model/enabled</property>
|
||||||
</and>
|
</and>
|
||||||
|
|
|
@ -68,7 +68,10 @@
|
||||||
<condition>
|
<condition>
|
||||||
<and>
|
<and>
|
||||||
<not>
|
<not>
|
||||||
|
<or>
|
||||||
<property>/sim/current-view/internal</property>
|
<property>/sim/current-view/internal</property>
|
||||||
|
<property>/sim/walker/outside</property>
|
||||||
|
</or>
|
||||||
</not>
|
</not>
|
||||||
<property>/sim/rendering/pilot-model/enabled</property>
|
<property>/sim/rendering/pilot-model/enabled</property>
|
||||||
</and>
|
</and>
|
||||||
|
|
|
@ -68,7 +68,10 @@
|
||||||
<condition>
|
<condition>
|
||||||
<and>
|
<and>
|
||||||
<not>
|
<not>
|
||||||
|
<or>
|
||||||
<property>/sim/current-view/internal</property>
|
<property>/sim/current-view/internal</property>
|
||||||
|
<property>/sim/walker/outside</property>
|
||||||
|
</or>
|
||||||
</not>
|
</not>
|
||||||
<property>/sim/rendering/pilot-model/enabled</property>
|
<property>/sim/rendering/pilot-model/enabled</property>
|
||||||
</and>
|
</and>
|
||||||
|
|
|
@ -68,7 +68,10 @@
|
||||||
<condition>
|
<condition>
|
||||||
<and>
|
<and>
|
||||||
<not>
|
<not>
|
||||||
|
<or>
|
||||||
<property>/sim/current-view/internal</property>
|
<property>/sim/current-view/internal</property>
|
||||||
|
<property>/sim/walker/outside</property>
|
||||||
|
</or>
|
||||||
</not>
|
</not>
|
||||||
<property>/sim/rendering/pilot-model/enabled</property>
|
<property>/sim/rendering/pilot-model/enabled</property>
|
||||||
</and>
|
</and>
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
<position-z-m type="float">0</position-z-m>
|
<position-z-m type="float">0</position-z-m>
|
||||||
<jetway-hood-deg type="float">3</jetway-hood-deg>
|
<jetway-hood-deg type="float">3</jetway-hood-deg>
|
||||||
</door>
|
</door>
|
||||||
|
<fallback-model-index>712</fallback-model-index>
|
||||||
</model>
|
</model>
|
||||||
|
|
||||||
<instrumentation>
|
<instrumentation>
|
||||||
|
|
|
@ -840,7 +840,7 @@
|
||||||
<p>Yes, though it can be a difficult task. FlightGear's scenery
|
<p>Yes, though it can be a difficult task. FlightGear's scenery
|
||||||
generation is handled by a sister project, TerraGear. For more
|
generation is handled by a sister project, TerraGear. For more
|
||||||
details, see
|
details, see
|
||||||
<a href="http://terragear.org/">http://terragear.org/</a>.</p>
|
<a href="http://wiki.flightgear.org/TerraGear">http://wiki.flightgear.org/TerraGear</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ Contents ----------------------------------------------------------------------
|
||||||
3.7 ROAD_ROUGH / ROAD_DETAILED
|
3.7 ROAD_ROUGH / ROAD_DETAILED
|
||||||
3.8 RAILWAY_ROUGH / RAILWAY_DETAILED
|
3.8 RAILWAY_ROUGH / RAILWAY_DETAILED
|
||||||
3.9 BUILDING_LIST
|
3.9 BUILDING_LIST
|
||||||
|
3.10 TREE_LIST
|
||||||
|
|
||||||
4 model manager ("/models/model")
|
4 model manager ("/models/model")
|
||||||
4.1 static objects
|
4.1 static objects
|
||||||
|
@ -193,9 +194,9 @@ is always the same and described in section 3.3.
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
specifies the terrain elevation data file. These files are generated with
|
specifies the terrain elevation data file. These files are generated with
|
||||||
the TerraGear tools (http://www.terragear.org/) and have file extension
|
the TerraGear tools (http://wiki.flightgear.org/TerraGear) and have file
|
||||||
".btg" ("binary terragear"; there used to be an "*.atg" file, too, where
|
extension ".btg" ("binary terragear"; there used to be an "*.atg" file, too,
|
||||||
the 'a' stood for ASCII).
|
where the 'a' stood for ASCII).
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
@ -280,8 +281,8 @@ this is an expensive operation and is strongly discouraged.
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
defines taxiway or runway sign. The syntax is much like that of OBJECT_SHARED
|
defines taxiway or runway sign. The syntax is much like that of OBJECT_SHARED
|
||||||
entries, except that the path is replaced with a sign contents specification
|
entries, except that the <object-path> is replaced with a sign contents specification
|
||||||
and that there is an additional size value at the end of the line.
|
and that <radius> is replaced with a size value at the end of the line.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
@ -392,7 +393,7 @@ gradually fade in
|
||||||
3.7 ROAD_ROUGH / ROAD_DETAILED
|
3.7 ROAD_ROUGH / ROAD_DETAILED
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
Identical to BUILDING_ROUGH / BIULDING_DETAILED above, except used for roads.
|
Identical to BUILDING_ROUGH / BUILDING_DETAILED above, except used for roads.
|
||||||
the material definition "OSM_Road" is applied.
|
the material definition "OSM_Road" is applied.
|
||||||
|
|
||||||
3.8 RAILWAY_ROUGH / RAILWAY_DETAILED
|
3.8 RAILWAY_ROUGH / RAILWAY_DETAILED
|
||||||
|
@ -463,7 +464,7 @@ For example, the following entries generates 3 small, 2 medium and 2 large build
|
||||||
0 400 0 0 1
|
0 400 0 0 1
|
||||||
0 500 0 0 2
|
0 500 0 0 2
|
||||||
|
|
||||||
3.9 TREE_LIST
|
3.10 TREE_LIST
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Defines a file containing tree coordinates that should be rendered using
|
Defines a file containing tree coordinates that should be rendered using
|
||||||
|
@ -485,7 +486,7 @@ Where:
|
||||||
the point at which the material definition will be evaluated (for regional
|
the point at which the material definition will be evaluated (for regional
|
||||||
materials).
|
materials).
|
||||||
|
|
||||||
See README.materials for details on configuring the random building parameters.
|
See README.materials for details on configuring the random vegetation parameters.
|
||||||
|
|
||||||
The referenced <filename> (in the example trees.txt.gz) contains lines of the form
|
The referenced <filename> (in the example trees.txt.gz) contains lines of the form
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,10 @@
|
||||||
<predicate>
|
<predicate>
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/skydome</property>
|
<property>/sim/rendering/shaders/skydome</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<and>
|
<and>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">6.0</value>
|
<value type="float">6.0</value>
|
||||||
|
|
|
@ -147,6 +147,10 @@
|
||||||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>visibility</name>
|
<name>visibility</name>
|
||||||
|
@ -621,6 +625,11 @@
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/crop</property>
|
<property>/sim/rendering/shaders/crop</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<or>
|
<or>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">2.0</value>
|
<value type="float">2.0</value>
|
||||||
|
|
|
@ -75,6 +75,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/transition</property>
|
<property>/sim/rendering/shaders/transition</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<or>
|
<or>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">2.0</value>
|
<value type="float">2.0</value>
|
||||||
|
|
|
@ -140,6 +140,10 @@
|
||||||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>visibility</name>
|
<name>visibility</name>
|
||||||
|
@ -614,6 +618,11 @@
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
<value>2</value> <!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
|
|
@ -50,6 +50,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/landmass</property>
|
<property>/sim/rendering/shaders/landmass</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">4.0</value>
|
<value type="float">4.0</value>
|
||||||
<float-property>/sim/rendering/shaders/landmass</float-property>
|
<float-property>/sim/rendering/shaders/landmass</float-property>
|
||||||
|
@ -384,6 +388,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/landmass</property>
|
<property>/sim/rendering/shaders/landmass</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<or>
|
<or>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">2.0</value>
|
<value type="float">2.0</value>
|
||||||
|
|
|
@ -330,6 +330,10 @@
|
||||||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>grain_strength</name>
|
<name>grain_strength</name>
|
||||||
|
@ -835,6 +839,11 @@
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<!-- AMBIENT_AND_DIFFUSE -->
|
<!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
@ -973,6 +982,10 @@
|
||||||
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
<fragment-shader>Shaders/hazes.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>visibility</name>
|
<name>visibility</name>
|
||||||
|
@ -1161,6 +1174,11 @@
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<!-- AMBIENT_AND_DIFFUSE -->
|
<!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
@ -1282,6 +1300,10 @@
|
||||||
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
<fragment-shader>Shaders/noise.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>visibility</name>
|
<name>visibility</name>
|
||||||
|
@ -1405,6 +1427,11 @@
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<!-- AMBIENT_AND_DIFFUSE -->
|
<!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
@ -1435,9 +1462,14 @@
|
||||||
|
|
||||||
<technique n="11">
|
<technique n="11">
|
||||||
<predicate>
|
<predicate>
|
||||||
|
<and>
|
||||||
|
<or>
|
||||||
|
<property>/sim/rendering/photoscenery/enabled</property>
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/generic</property>
|
<property>/sim/rendering/shaders/generic</property>
|
||||||
|
</and>
|
||||||
|
</or>
|
||||||
<or>
|
<or>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">2.0</value>
|
<value type="float">2.0</value>
|
||||||
|
@ -1529,6 +1561,10 @@
|
||||||
<fragment-shader>Shaders/default.frag</fragment-shader>
|
<fragment-shader>Shaders/default.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/include_fog.frag</fragment-shader>
|
<fragment-shader>Shaders/include_fog.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>visibility</name>
|
<name>visibility</name>
|
||||||
|
@ -1571,6 +1607,11 @@
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<!-- AMBIENT_AND_DIFFUSE -->
|
<!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
|
|
@ -160,6 +160,10 @@
|
||||||
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
|
||||||
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
|
||||||
|
<attribute>
|
||||||
|
<name>orthophotoTexCoord</name>
|
||||||
|
<index>14</index>
|
||||||
|
</attribute>
|
||||||
</program>
|
</program>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>grain_strength</name>
|
<name>grain_strength</name>
|
||||||
|
@ -665,6 +669,11 @@
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
<!-- AMBIENT_AND_DIFFUSE -->
|
<!-- AMBIENT_AND_DIFFUSE -->
|
||||||
</uniform>
|
</uniform>
|
||||||
|
<uniform>
|
||||||
|
<name>orthophotoTexture</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">15</value>
|
||||||
|
</uniform>
|
||||||
<!-- BEGIN shadows include -->
|
<!-- BEGIN shadows include -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>shadow_tex</name>
|
<name>shadow_tex</name>
|
||||||
|
|
|
@ -54,6 +54,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/skydome</property>
|
<property>/sim/rendering/shaders/skydome</property>
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
<property>/sim/rendering/shaders/urban</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">4.0</value>
|
<value type="float">4.0</value>
|
||||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||||
|
@ -780,6 +784,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/skydome</property>
|
<property>/sim/rendering/shaders/skydome</property>
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
<property>/sim/rendering/shaders/urban</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">1.0</value>
|
<value type="float">1.0</value>
|
||||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||||
|
@ -1460,6 +1468,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
<property>/sim/rendering/shaders/urban</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">4.0</value>
|
<value type="float">4.0</value>
|
||||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||||
|
@ -1748,6 +1760,10 @@
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
<property>/sim/rendering/shaders/quality-level</property>
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
<property>/sim/rendering/shaders/urban</property>
|
||||||
|
<equal>
|
||||||
|
<value type="float">0.0</value>
|
||||||
|
<float-property>/sim/rendering/photoscenery/enabled</float-property>
|
||||||
|
</equal>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">1.0</value>
|
<value type="float">1.0</value>
|
||||||
<float-property>/sim/rendering/shaders/urban</float-property>
|
<float-property>/sim/rendering/shaders/urban</float-property>
|
||||||
|
|
|
@ -409,7 +409,6 @@
|
||||||
<technique n="5">
|
<technique n="5">
|
||||||
<predicate>
|
<predicate>
|
||||||
<and>
|
<and>
|
||||||
<property>/sim/rendering/shaders/skydome</property>
|
|
||||||
<or>
|
<or>
|
||||||
<less-equal>
|
<less-equal>
|
||||||
<value type="float">2.0</value>
|
<value type="float">2.0</value>
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 2 MiB |
|
@ -558,6 +558,13 @@ var applyApplicableBrakes = func(v, which = 0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var autopilotDisconnect = func() {
|
||||||
|
var aps = props.getNode("/controls/autoflight").getChildren("autopilot");
|
||||||
|
foreach (var ap; aps) {
|
||||||
|
ap.getChild("engage").setBoolValue(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# 1: Deploy, -1: Release
|
# 1: Deploy, -1: Release
|
||||||
var deployChute = func(v) setprop("/controls/flight/drag-chute", v);
|
var deployChute = func(v) setprop("/controls/flight/drag-chute", v);
|
||||||
|
|
||||||
|
|
|
@ -418,7 +418,7 @@ var PropertyToggleButton = {
|
||||||
|
|
||||||
var c = prop.getNode("binding", 1).getNode("command", 1).getValue();
|
var c = prop.getNode("binding", 1).getNode("command", 1).getValue();
|
||||||
var p = prop.getNode("binding", 1).getNode("property", 1).getValue();
|
var p = prop.getNode("binding", 1).getNode("property", 1).getValue();
|
||||||
return ((c == "property-toggle") and (p == me.prop));
|
return ((c == "property-toggle") and (p == me.binding));
|
||||||
},
|
},
|
||||||
|
|
||||||
getBinding: func(button) {
|
getBinding: func(button) {
|
||||||
|
@ -566,6 +566,7 @@ var buttonBindings = [
|
||||||
NasalHoldButton.new("Brakes (air/wheel)", "controls.applyApplicableBrakes(1);", "controls.applyApplicableBrakes(0);"),
|
NasalHoldButton.new("Brakes (air/wheel)", "controls.applyApplicableBrakes(1);", "controls.applyApplicableBrakes(0);"),
|
||||||
NasalHoldButton.new("Parking brakes", "controls.parkingBrakeToggle(0);", "controls.parkingBrakeToggle(1);"),
|
NasalHoldButton.new("Parking brakes", "controls.parkingBrakeToggle(0);", "controls.parkingBrakeToggle(1);"),
|
||||||
NasalHoldButton.new("NWS toggle", "controls.toggleNWS(0);", "controls.toggleNWS(1);"),
|
NasalHoldButton.new("NWS toggle", "controls.toggleNWS(0);", "controls.toggleNWS(1);"),
|
||||||
|
NasalButton.new("Autopilot disconnect", "controls.autopilotDisconnect();",0),
|
||||||
|
|
||||||
PropertyToggleButton.new("Total Freeze", "/sim/freeze/clock"),
|
PropertyToggleButton.new("Total Freeze", "/sim/freeze/clock"),
|
||||||
|
|
||||||
|
|
|
@ -1484,7 +1484,7 @@ foreach(s; cloudShadowArray)
|
||||||
}
|
}
|
||||||
|
|
||||||
# now write out the closest cloud for the detail effects
|
# now write out the closest cloud for the detail effects
|
||||||
|
if (index_min != -1) {
|
||||||
var s = cloudShadowArray[index_min];
|
var s = cloudShadowArray[index_min];
|
||||||
|
|
||||||
diffx = (s.lat - eyeLat) * local_weather.lat_to_m + offset_x;
|
diffx = (s.lat - eyeLat) * local_weather.lat_to_m + offset_x;
|
||||||
|
@ -1497,7 +1497,7 @@ foreach(s; cloudShadowArray)
|
||||||
#print("Dist_max:", dist_max, " index_max: ", index_max);
|
#print("Dist_max:", dist_max, " index_max: ", index_max);
|
||||||
cloudShadowMinIndex = index_max;
|
cloudShadowMinIndex = index_max;
|
||||||
if (dist_max > 0.0) {cloudShadowMaxDist = dist_max;}
|
if (dist_max > 0.0) {cloudShadowMaxDist = dist_max;}
|
||||||
|
}
|
||||||
|
|
||||||
settimer( func {shadow_management_loop(i)}, 0);
|
settimer( func {shadow_management_loop(i)}, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2780,14 +2780,14 @@ var set_METAR_weather_station = func {
|
||||||
|
|
||||||
var gust_angvar = 0.5 * weather_tile_management.relangle(wind_range_from, wind_range_to);
|
var gust_angvar = 0.5 * weather_tile_management.relangle(wind_range_from, wind_range_to);
|
||||||
|
|
||||||
|
var gust_relative_strength = 0.0;
|
||||||
if ((gust_strength > 0.0) or (gust_angvar > 0.0))
|
if ((gust_strength > 0.0) or (gust_angvar > 0.0))
|
||||||
{
|
{
|
||||||
var gust_relative_strength = (gust_strength - windspeed)/windspeed;
|
gust_relative_strength = (gust_strength - windspeed)/windspeed;
|
||||||
setprop(lw~"tmp/gust-frequency-hz", 0.2 + rand()*0.8);
|
setprop(lw~"tmp/gust-frequency-hz", 0.2 + rand()*0.8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var gust_relative_strength = 0.0;
|
|
||||||
setprop(lw~"tmp/gust-frequency-hz", 0.0);
|
setprop(lw~"tmp/gust-frequency-hz", 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -452,11 +452,10 @@ var _cond_cmp = func(p, op) {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(left == nil or right == nil) {
|
|
||||||
logprint(LOG_ALERT, "condition: comparing with nil");
|
if (left == nil) left = 0.0;
|
||||||
dump(p);
|
if (right == nil) right = 0.0;
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
if(op < 0) return left < right;
|
if(op < 0) return left < right;
|
||||||
if(op > 0) return left > right;
|
if(op > 0) return left > right;
|
||||||
return left == right;
|
return left == right;
|
||||||
|
|
|
@ -9,11 +9,13 @@ varying vec3 relPos;
|
||||||
varying vec3 worldPos;
|
varying vec3 worldPos;
|
||||||
varying vec2 rawPos;
|
varying vec2 rawPos;
|
||||||
varying vec3 ecViewdir;
|
varying vec3 ecViewdir;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
|
|
||||||
uniform sampler2D texture;
|
uniform sampler2D texture;
|
||||||
uniform sampler2D overlay_texture;
|
uniform sampler2D overlay_texture;
|
||||||
uniform sampler2D grain_texture;
|
uniform sampler2D grain_texture;
|
||||||
|
uniform sampler2D orthophotoTexture;
|
||||||
|
|
||||||
varying float steepness;
|
varying float steepness;
|
||||||
|
|
||||||
|
@ -54,6 +56,8 @@ uniform int use_searchlight;
|
||||||
uniform int use_landing_light;
|
uniform int use_landing_light;
|
||||||
uniform int use_alt_landing_light;
|
uniform int use_alt_landing_light;
|
||||||
|
|
||||||
|
uniform bool orthophotoAvailable;
|
||||||
|
|
||||||
const float EarthRadius = 5800000.0;
|
const float EarthRadius = 5800000.0;
|
||||||
const float terminator_width = 200000.0;
|
const float terminator_width = 200000.0;
|
||||||
|
|
||||||
|
@ -163,6 +167,13 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
||||||
texel = texture2D(texture, gl_TexCoord[0].st * base_layer_magnification);
|
texel = texture2D(texture, gl_TexCoord[0].st * base_layer_magnification);
|
||||||
float local_autumn_factor = texel.a;
|
float local_autumn_factor = texel.a;
|
||||||
|
|
||||||
|
if (orthophotoAvailable) {
|
||||||
|
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||||
|
if (sat_texel.a > 0) {
|
||||||
|
texel.rgb = sat_texel.rgb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
float distortion_factor = 1.0;
|
float distortion_factor = 1.0;
|
||||||
float noise_term;
|
float noise_term;
|
||||||
float snow_alpha;
|
float snow_alpha;
|
||||||
|
|
|
@ -5,12 +5,16 @@
|
||||||
|
|
||||||
varying vec4 diffuse_term;
|
varying vec4 diffuse_term;
|
||||||
varying vec3 normal;
|
varying vec3 normal;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
uniform sampler2D texture;
|
uniform sampler2D texture;
|
||||||
|
uniform sampler2D orthophotoTexture;
|
||||||
|
|
||||||
////fog "include" /////
|
////fog "include" /////
|
||||||
uniform int fogType;
|
uniform int fogType;
|
||||||
|
|
||||||
|
uniform bool orthophotoAvailable;
|
||||||
|
|
||||||
vec3 fog_Func(vec3 color, int type);
|
vec3 fog_Func(vec3 color, int type);
|
||||||
//////////////////////
|
//////////////////////
|
||||||
|
|
||||||
|
@ -54,6 +58,14 @@ void main()
|
||||||
// is closer to what the OpenGL fixed function pipeline does.
|
// is closer to what the OpenGL fixed function pipeline does.
|
||||||
color = clamp(color, 0.0, 1.0);
|
color = clamp(color, 0.0, 1.0);
|
||||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||||
|
|
||||||
|
if (orthophotoAvailable) {
|
||||||
|
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||||
|
if (sat_texel.a > 0) {
|
||||||
|
texel.rgb = sat_texel.rgb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fragColor = color * texel + specular;
|
fragColor = color * texel + specular;
|
||||||
|
|
||||||
fragColor.rgb = fog_Func(fragColor.rgb, fogType);
|
fragColor.rgb = fog_Func(fragColor.rgb, fogType);
|
||||||
|
|
|
@ -12,12 +12,15 @@
|
||||||
#define MODE_DIFFUSE 1
|
#define MODE_DIFFUSE 1
|
||||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||||
|
|
||||||
|
attribute vec2 orthophotoTexCoord;
|
||||||
|
|
||||||
// The constant term of the lighting equation that doesn't depend on
|
// The constant term of the lighting equation that doesn't depend on
|
||||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||||
// component is set to 1 for front, 0 for back in order to work around
|
// component is set to 1 for front, 0 for back in order to work around
|
||||||
// bugs with gl_FrontFacing in the fragment shader.
|
// bugs with gl_FrontFacing in the fragment shader.
|
||||||
varying vec4 diffuse_term;
|
varying vec4 diffuse_term;
|
||||||
varying vec3 normal;
|
varying vec3 normal;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
uniform int colorMode;
|
uniform int colorMode;
|
||||||
|
|
||||||
|
@ -33,6 +36,7 @@ void main()
|
||||||
{
|
{
|
||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||||
|
orthoTexCoord = orthophotoTexCoord;
|
||||||
normal = gl_NormalMatrix * gl_Normal;
|
normal = gl_NormalMatrix * gl_Normal;
|
||||||
vec4 ambient_color, diffuse_color;
|
vec4 ambient_color, diffuse_color;
|
||||||
if (colorMode == MODE_DIFFUSE) {
|
if (colorMode == MODE_DIFFUSE) {
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
#define MODE_DIFFUSE 1
|
#define MODE_DIFFUSE 1
|
||||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||||
|
|
||||||
|
attribute vec2 orthophotoTexCoord;
|
||||||
|
|
||||||
// The constant term of the lighting equation that doesn't depend on
|
// The constant term of the lighting equation that doesn't depend on
|
||||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||||
// component is set to 1 for front, 0 for back in order to work around
|
// component is set to 1 for front, 0 for back in order to work around
|
||||||
|
@ -22,6 +24,7 @@
|
||||||
varying vec4 diffuse_term;
|
varying vec4 diffuse_term;
|
||||||
varying vec3 normal;
|
varying vec3 normal;
|
||||||
varying vec3 relPos;
|
varying vec3 relPos;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
varying float yprime_alt;
|
varying float yprime_alt;
|
||||||
varying float mie_angle;
|
varying float mie_angle;
|
||||||
|
@ -77,6 +80,7 @@ void main()
|
||||||
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||||
|
orthoTexCoord = orthophotoTexCoord;
|
||||||
normal = gl_NormalMatrix * gl_Normal;
|
normal = gl_NormalMatrix * gl_Normal;
|
||||||
vec4 ambient_color, diffuse_color;
|
vec4 ambient_color, diffuse_color;
|
||||||
if (colorMode == MODE_DIFFUSE) {
|
if (colorMode == MODE_DIFFUSE) {
|
||||||
|
|
|
@ -9,10 +9,12 @@ varying vec3 relPos;
|
||||||
|
|
||||||
|
|
||||||
uniform sampler2D texture;
|
uniform sampler2D texture;
|
||||||
|
uniform sampler2D orthophotoTexture;
|
||||||
|
|
||||||
|
|
||||||
varying float yprime_alt;
|
varying float yprime_alt;
|
||||||
varying float mie_angle;
|
varying float mie_angle;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
|
|
||||||
uniform float visibility;
|
uniform float visibility;
|
||||||
|
@ -25,6 +27,8 @@ uniform float overcast;
|
||||||
uniform float eye_alt;
|
uniform float eye_alt;
|
||||||
uniform float cloud_self_shading;
|
uniform float cloud_self_shading;
|
||||||
|
|
||||||
|
uniform bool orthophotoAvailable;
|
||||||
|
|
||||||
const float EarthRadius = 5800000.0;
|
const float EarthRadius = 5800000.0;
|
||||||
const float terminator_width = 200000.0;
|
const float terminator_width = 200000.0;
|
||||||
|
|
||||||
|
@ -86,6 +90,14 @@ void main()
|
||||||
// is closer to what the OpenGL fixed function pipeline does.
|
// is closer to what the OpenGL fixed function pipeline does.
|
||||||
color = clamp(color, 0.0, 1.0);
|
color = clamp(color, 0.0, 1.0);
|
||||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||||
|
|
||||||
|
if (orthophotoAvailable) {
|
||||||
|
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||||
|
if (sat_texel.a > 0) {
|
||||||
|
texel.rgb = sat_texel.rgb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fragColor = color * texel + specular;
|
fragColor = color * texel + specular;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,14 @@ varying vec3 normal;
|
||||||
varying vec3 relPos;
|
varying vec3 relPos;
|
||||||
varying vec2 rawPos;
|
varying vec2 rawPos;
|
||||||
varying vec3 worldPos;
|
varying vec3 worldPos;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uniform sampler2D texture;
|
uniform sampler2D texture;
|
||||||
uniform sampler2D detail_texture;
|
uniform sampler2D detail_texture;
|
||||||
uniform sampler2D mix_texture;
|
uniform sampler2D mix_texture;
|
||||||
|
uniform sampler2D orthophotoTexture;
|
||||||
|
|
||||||
//varying float yprime_alt;
|
//varying float yprime_alt;
|
||||||
//varying float mie_angle;
|
//varying float mie_angle;
|
||||||
|
@ -41,6 +43,8 @@ uniform float hires_overlay_bias;
|
||||||
uniform int quality_level;
|
uniform int quality_level;
|
||||||
uniform int tquality_level;
|
uniform int tquality_level;
|
||||||
|
|
||||||
|
uniform bool orthophotoAvailable;
|
||||||
|
|
||||||
const float EarthRadius = 5800000.0;
|
const float EarthRadius = 5800000.0;
|
||||||
const float terminator_width = 200000.0;
|
const float terminator_width = 200000.0;
|
||||||
|
|
||||||
|
@ -123,14 +127,24 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
||||||
|
|
||||||
|
|
||||||
// get the texels
|
// get the texels
|
||||||
|
int flag = 1;
|
||||||
|
int mix_flag = 1;
|
||||||
|
|
||||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||||
float local_autumn_factor = texel.a;
|
float local_autumn_factor = texel.a;
|
||||||
|
|
||||||
|
if (orthophotoAvailable) {
|
||||||
|
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||||
|
if (sat_texel.a > 0) {
|
||||||
|
texel.rgb = sat_texel.rgb;
|
||||||
|
flag = 0;
|
||||||
|
mix_flag = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
float distortion_factor = 1.0;
|
float distortion_factor = 1.0;
|
||||||
vec2 stprime;
|
vec2 stprime;
|
||||||
int flag = 1;
|
|
||||||
int mix_flag = 1;
|
|
||||||
float noise_term;
|
float noise_term;
|
||||||
float snow_alpha;
|
float snow_alpha;
|
||||||
|
|
||||||
|
@ -155,14 +169,14 @@ float noise_2000m = Noise3D(worldPos.xyz, 2000.0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tquality_level > 2)
|
if ((tquality_level > 2) && (mix_flag == 1))
|
||||||
{
|
{
|
||||||
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
||||||
if (mix_texel.a <0.1) {mix_flag = 0;}
|
if (mix_texel.a <0.1) {mix_flag = 0;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (tquality_level > 3)
|
if (tquality_level > 3 && (flag == 1))
|
||||||
{
|
{
|
||||||
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
||||||
//distortion_factor = 0.9375 + (1.0 * nvL[2]);
|
//distortion_factor = 0.9375 + (1.0 * nvL[2]);
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
#define MODE_DIFFUSE 1
|
#define MODE_DIFFUSE 1
|
||||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||||
|
|
||||||
|
attribute vec2 orthophotoTexCoord;
|
||||||
|
|
||||||
// The constant term of the lighting equation that doesn't depend on
|
// The constant term of the lighting equation that doesn't depend on
|
||||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||||
// component is set to 1 for front, 0 for back in order to work around
|
// component is set to 1 for front, 0 for back in order to work around
|
||||||
|
@ -24,6 +26,7 @@ varying vec3 normal;
|
||||||
varying vec3 relPos;
|
varying vec3 relPos;
|
||||||
varying vec2 rawPos;
|
varying vec2 rawPos;
|
||||||
varying vec3 worldPos;
|
varying vec3 worldPos;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
|
|
||||||
varying float mie_angle;
|
varying float mie_angle;
|
||||||
|
@ -95,6 +98,7 @@ void main()
|
||||||
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||||
|
orthoTexCoord = orthophotoTexCoord;
|
||||||
normal = gl_NormalMatrix * gl_Normal;
|
normal = gl_NormalMatrix * gl_Normal;
|
||||||
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
||||||
vec4 ambient_color, diffuse_color;
|
vec4 ambient_color, diffuse_color;
|
||||||
|
|
|
@ -10,6 +10,7 @@ varying vec2 rawPos;
|
||||||
varying vec3 worldPos;
|
varying vec3 worldPos;
|
||||||
varying vec3 ecViewdir;
|
varying vec3 ecViewdir;
|
||||||
varying vec2 grad_dir;
|
varying vec2 grad_dir;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
|
|
||||||
uniform sampler2D texture;
|
uniform sampler2D texture;
|
||||||
|
@ -18,6 +19,7 @@ uniform sampler2D mix_texture;
|
||||||
uniform sampler2D grain_texture;
|
uniform sampler2D grain_texture;
|
||||||
uniform sampler2D dot_texture;
|
uniform sampler2D dot_texture;
|
||||||
uniform sampler2D gradient_texture;
|
uniform sampler2D gradient_texture;
|
||||||
|
uniform sampler2D orthophotoTexture;
|
||||||
|
|
||||||
|
|
||||||
varying float steepness;
|
varying float steepness;
|
||||||
|
@ -62,6 +64,8 @@ uniform int use_searchlight;
|
||||||
uniform int use_landing_light;
|
uniform int use_landing_light;
|
||||||
uniform int use_alt_landing_light;
|
uniform int use_alt_landing_light;
|
||||||
|
|
||||||
|
uniform bool orthophotoAvailable;
|
||||||
|
|
||||||
const float EarthRadius = 5800000.0;
|
const float EarthRadius = 5800000.0;
|
||||||
const float terminator_width = 200000.0;
|
const float terminator_width = 200000.0;
|
||||||
|
|
||||||
|
@ -233,6 +237,16 @@ float snownoise_50m = mix(noise_50m, slopenoise_100m, clamp(3.0*(1.0-steepness),
|
||||||
|
|
||||||
texel = texture2D(texture, gl_TexCoord[0].st);
|
texel = texture2D(texture, gl_TexCoord[0].st);
|
||||||
float local_autumn_factor = texel.a;
|
float local_autumn_factor = texel.a;
|
||||||
|
|
||||||
|
if (orthophotoAvailable) {
|
||||||
|
vec4 sat_texel = texture2D(orthophotoTexture, orthoTexCoord);
|
||||||
|
if (sat_texel.a > 0) {
|
||||||
|
texel.rgb = sat_texel.rgb;
|
||||||
|
flag = 0;
|
||||||
|
mix_flag = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
grain_texel = texture2D(grain_texture, gl_TexCoord[0].st * 25.0);
|
grain_texel = texture2D(grain_texture, gl_TexCoord[0].st * 25.0);
|
||||||
gradient_texel = texture2D(gradient_texture, gl_TexCoord[0].st * 4.0);
|
gradient_texel = texture2D(gradient_texture, gl_TexCoord[0].st * 4.0);
|
||||||
|
|
||||||
|
@ -264,11 +278,14 @@ float snownoise_50m = mix(noise_50m, slopenoise_100m, clamp(3.0*(1.0-steepness),
|
||||||
}
|
}
|
||||||
|
|
||||||
// the mixture/gradient texture
|
// the mixture/gradient texture
|
||||||
|
if (mix_flag == 1) {
|
||||||
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
mix_texel = texture2D(mix_texture, gl_TexCoord[0].st * 1.3);
|
||||||
if (mix_texel.a <0.1) {mix_flag = 0;}
|
if (mix_texel.a <0.1) {mix_flag = 0;}
|
||||||
|
}
|
||||||
|
|
||||||
// the hires overlay texture is loaded with parallax mapping
|
// the hires overlay texture is loaded with parallax mapping
|
||||||
|
|
||||||
|
if (flag == 1) {
|
||||||
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
stprime = vec2 (0.86*gl_TexCoord[0].s + 0.5*gl_TexCoord[0].t, 0.5*gl_TexCoord[0].s - 0.86*gl_TexCoord[0].t);
|
||||||
distortion_factor = 0.97 + 0.06 * noise_500m;
|
distortion_factor = 0.97 + 0.06 * noise_500m;
|
||||||
stprime = stprime * distortion_factor * 15.0;
|
stprime = stprime * distortion_factor * 15.0;
|
||||||
|
@ -276,6 +293,8 @@ float snownoise_50m = mix(noise_50m, slopenoise_100m, clamp(3.0*(1.0-steepness),
|
||||||
|
|
||||||
detail_texel = texture2D(detail_texture, stprime);
|
detail_texel = texture2D(detail_texture, stprime);
|
||||||
if (detail_texel.a <0.1) {flag = 0;}
|
if (detail_texel.a <0.1) {flag = 0;}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
#define MODE_DIFFUSE 1
|
#define MODE_DIFFUSE 1
|
||||||
#define MODE_AMBIENT_AND_DIFFUSE 2
|
#define MODE_AMBIENT_AND_DIFFUSE 2
|
||||||
|
|
||||||
|
attribute vec2 orthophotoTexCoord;
|
||||||
|
|
||||||
// The constant term of the lighting equation that doesn't depend on
|
// The constant term of the lighting equation that doesn't depend on
|
||||||
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
// the surface normal is passed in gl_{Front,Back}Color. The alpha
|
||||||
// component is set to 1 for front, 0 for back in order to work around
|
// component is set to 1 for front, 0 for back in order to work around
|
||||||
|
@ -26,6 +28,7 @@ varying vec2 rawPos;
|
||||||
varying vec3 worldPos;
|
varying vec3 worldPos;
|
||||||
varying vec3 ecViewdir;
|
varying vec3 ecViewdir;
|
||||||
varying vec2 grad_dir;
|
varying vec2 grad_dir;
|
||||||
|
varying vec2 orthoTexCoord;
|
||||||
|
|
||||||
varying float mie_angle;
|
varying float mie_angle;
|
||||||
varying float steepness;
|
varying float steepness;
|
||||||
|
@ -110,6 +113,7 @@ void main()
|
||||||
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
//vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
|
||||||
//gl_Position = ftransform();
|
//gl_Position = ftransform();
|
||||||
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
||||||
|
orthoTexCoord = orthophotoTexCoord;
|
||||||
normal = gl_NormalMatrix * gl_Normal;
|
normal = gl_NormalMatrix * gl_Normal;
|
||||||
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
//nvec = (gl_NormalMatrix * gl_Normal).xy;
|
||||||
vec4 ambient_color, diffuse_color;
|
vec4 ambient_color, diffuse_color;
|
||||||
|
|
|
@ -21,6 +21,10 @@
|
||||||
|
|
||||||
<!-- View menu -->
|
<!-- View menu -->
|
||||||
<view>View</view>
|
<view>View</view>
|
||||||
|
<view-clone>Add Clone View</view-clone>
|
||||||
|
<view-push>Push Pair View</view-push>
|
||||||
|
<view-last-pair>Add Pair View</view-last-pair>
|
||||||
|
<view-last-pair-double>Add Pair Foreground View</view-last-pair-double>
|
||||||
<toggle-fullscreen>Toggle Fullscreen</toggle-fullscreen>
|
<toggle-fullscreen>Toggle Fullscreen</toggle-fullscreen>
|
||||||
<rendering-options>Rendering Options</rendering-options>
|
<rendering-options>Rendering Options</rendering-options>
|
||||||
<view-options>View Options</view-options>
|
<view-options>View Options</view-options>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
<help-desc>Show the most relevant command line options</help-desc>
|
<help-desc>Show the most relevant command line options</help-desc>
|
||||||
<verbose-desc>Show all command line options when combined with --help or -h</verbose-desc>
|
<verbose-desc>Show all command line options when combined with --help or -h</verbose-desc>
|
||||||
<launcher-desc>Use GUI launcher</launcher-desc>
|
<launcher-desc>Use GUI launcher</launcher-desc>
|
||||||
|
<composite-viewer-desc>Enable CompositeViewer (extra view windows)</composite-viewer-desc>
|
||||||
<version-desc>Display the current FlightGear version</version-desc>
|
<version-desc>Display the current FlightGear version</version-desc>
|
||||||
<fg-root-desc>Specify the root data path</fg-root-desc>
|
<fg-root-desc>Specify the root data path</fg-root-desc>
|
||||||
<fg-scenery-desc n="0">Specify the scenery path(s);</fg-scenery-desc>
|
<fg-scenery-desc n="0">Specify the scenery path(s);</fg-scenery-desc>
|
||||||
|
|
|
@ -58,6 +58,9 @@ Started September 2000 by David Megginson, david@megginson.com
|
||||||
<enabled type="bool" userarchive="y">false</enabled>
|
<enabled type="bool" userarchive="y">false</enabled>
|
||||||
<sun-atlas-size type="int" userarchive="y">2048</sun-atlas-size>
|
<sun-atlas-size type="int" userarchive="y">2048</sun-atlas-size>
|
||||||
</shadows>
|
</shadows>
|
||||||
|
<photoscenery>
|
||||||
|
<enabled type="bool" userarchive="y">false</enabled>
|
||||||
|
</photoscenery>
|
||||||
<debug type="bool">false</debug>
|
<debug type="bool">false</debug>
|
||||||
<realism type="int">5</realism>
|
<realism type="int">5</realism>
|
||||||
<filtering type="int">8</filtering>
|
<filtering type="int">8</filtering>
|
||||||
|
@ -732,6 +735,7 @@ Started September 2000 by David Megginson, david@megginson.com
|
||||||
<drag-sensitivity type="double" userarchive="y">1.0</drag-sensitivity>
|
<drag-sensitivity type="double" userarchive="y">1.0</drag-sensitivity>
|
||||||
<invert-mouse-wheel type="bool" userarchive="y">false</invert-mouse-wheel>
|
<invert-mouse-wheel type="bool" userarchive="y">false</invert-mouse-wheel>
|
||||||
<skip-flight-controls-mode type="bool" userarchive="y">false</skip-flight-controls-mode>
|
<skip-flight-controls-mode type="bool" userarchive="y">false</skip-flight-controls-mode>
|
||||||
|
<mouse-rudder-elevator type="bool" userarchive="y">false</mouse-rudder-elevator>
|
||||||
</mouse>
|
</mouse>
|
||||||
<replay>
|
<replay>
|
||||||
<duration type="double" userarchive="y">90</duration>
|
<duration type="double" userarchive="y">90</duration>
|
||||||
|
|
|
@ -486,6 +486,19 @@ var assignButton = func(cmd) {
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<row>10</row>
|
||||||
|
<col>3</col>
|
||||||
|
<halign>fill</halign>
|
||||||
|
<legend>Autopilot disconnect</legend>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>
|
||||||
|
assignButton("Autopilot disconnect");
|
||||||
|
</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<row>0</row>
|
<row>0</row>
|
||||||
<col>4</col>
|
<col>4</col>
|
||||||
|
|
|
@ -209,6 +209,35 @@
|
||||||
<col>1</col>
|
<col>1</col>
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
|
<!-- end group 5 -->
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<!-- start group 6 -->
|
||||||
|
<group>
|
||||||
|
|
||||||
|
<halign>left</halign>
|
||||||
|
<valign>top</valign>
|
||||||
|
<layout>table</layout>
|
||||||
|
|
||||||
|
<!-- gap to left border -->
|
||||||
|
<text>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label> </label>
|
||||||
|
<row>0</row>
|
||||||
|
<col>0</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label> Mouse rudder also controls elevator</label>
|
||||||
|
<property>/sim/mouse/mouse-rudder-elevator</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<row>0</row>
|
||||||
|
<col>1</col>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
<!-- empty line before next -->
|
<!-- empty line before next -->
|
||||||
<text>
|
<text>
|
||||||
<row>1</row>
|
<row>1</row>
|
||||||
|
@ -217,7 +246,7 @@
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<!-- end group 5 -->
|
<!-- end group 6 -->
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<hrule/>
|
<hrule/>
|
||||||
|
|
|
@ -873,9 +873,26 @@
|
||||||
</binding>
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
|
|
||||||
<text>
|
<checkbox>
|
||||||
<row>8</row>
|
<row>8</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
|
<label>Satellite Photoscenery</label>
|
||||||
|
<name>satellite-photoscenery</name>
|
||||||
|
<enable>
|
||||||
|
<not>
|
||||||
|
<property>/sim/rendering/rembrandt/enabled</property>
|
||||||
|
</not>
|
||||||
|
</enable>
|
||||||
|
<property>/sim/rendering/photoscenery/enabled</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>satellite-photoscenery</object-name>
|
||||||
|
</binding>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>9</row>
|
||||||
|
<col>0</col>
|
||||||
<colspan>2</colspan>
|
<colspan>2</colspan>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<color>
|
<color>
|
||||||
|
@ -887,7 +904,7 @@
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<row>9</row>
|
<row>10</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<colspan>2</colspan>
|
<colspan>2</colspan>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
|
@ -898,7 +915,6 @@
|
||||||
</color>
|
</color>
|
||||||
<label>and disk space, and are only available in limited areas.</label>
|
<label>and disk space, and are only available in limited areas.</label>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
|
@ -1113,6 +1129,7 @@
|
||||||
|
|
||||||
|
|
||||||
var reload_props = [
|
var reload_props = [
|
||||||
|
"/sim/rendering/photoscenery/enabled",
|
||||||
"/sim/rendering/materials-file",
|
"/sim/rendering/materials-file",
|
||||||
"/sim/rendering/osm-buildings",
|
"/sim/rendering/osm-buildings",
|
||||||
"/sim/rendering/random-buildings",
|
"/sim/rendering/random-buildings",
|
||||||
|
|
|
@ -93,6 +93,49 @@
|
||||||
<menu>
|
<menu>
|
||||||
<name>view</name>
|
<name>view</name>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<enable>
|
||||||
|
<property>/sim/rendering/composite-viewer-enabled</property>
|
||||||
|
</enable>
|
||||||
|
<name>view-clone</name>
|
||||||
|
<key>Sup-v</key>
|
||||||
|
<binding>
|
||||||
|
<command>view-clone</command>
|
||||||
|
</binding>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<enable>
|
||||||
|
<property>/sim/rendering/composite-viewer-enabled</property>
|
||||||
|
</enable>
|
||||||
|
<name>view-push</name>
|
||||||
|
<binding>
|
||||||
|
<command>view-push</command>
|
||||||
|
</binding>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<enable>
|
||||||
|
<property>/sim/rendering/composite-viewer-enabled</property>
|
||||||
|
</enable>
|
||||||
|
<name>view-last-pair</name>
|
||||||
|
<key>Sup-V</key>
|
||||||
|
<binding>
|
||||||
|
<command>view-last-pair</command>
|
||||||
|
</binding>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<enable>
|
||||||
|
<property>/sim/rendering/composite-viewer-enabled</property>
|
||||||
|
</enable>
|
||||||
|
<name>view-last-pair-double</name>
|
||||||
|
<key></key>
|
||||||
|
<binding>
|
||||||
|
<command>view-last-pair-double</command>
|
||||||
|
</binding>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<name>toggle-fullscreen</name>
|
<name>toggle-fullscreen</name>
|
||||||
<key>Shift-F10</key>
|
<key>Shift-F10</key>
|
||||||
|
|
8
mice.xml
8
mice.xml
|
@ -151,19 +151,17 @@ current mode for each mouse is held in the
|
||||||
<!-- No buttons pressed: control elevator -->
|
<!-- No buttons pressed: control elevator -->
|
||||||
<binding>
|
<binding>
|
||||||
<condition>
|
<condition>
|
||||||
<!--
|
|
||||||
<and>
|
<and>
|
||||||
|
<or>
|
||||||
<not>
|
<not>
|
||||||
<property>/devices/status/mice/mouse[0]/button[0]</property>
|
<property>/devices/status/mice/mouse[0]/button[0]</property>
|
||||||
</not>
|
</not>
|
||||||
|
<property>/sim/mouse/mouse-rudder-elevator</property>
|
||||||
|
</or>
|
||||||
<not>
|
<not>
|
||||||
<property>/devices/status/mice/mouse[0]/button[1]</property>
|
<property>/devices/status/mice/mouse[0]/button[1]</property>
|
||||||
</not>
|
</not>
|
||||||
</and>
|
</and>
|
||||||
-->
|
|
||||||
<not>
|
|
||||||
<property>/devices/status/mice/mouse[0]/button[1]</property>
|
|
||||||
</not>
|
|
||||||
</condition>
|
</condition>
|
||||||
<command>property-adjust</command>
|
<command>property-adjust</command>
|
||||||
<property>/controls/flight/elevator</property>
|
<property>/controls/flight/elevator</property>
|
||||||
|
|
|
@ -58,6 +58,13 @@
|
||||||
<brief/>
|
<brief/>
|
||||||
</option>
|
</option>
|
||||||
|
|
||||||
|
<option>
|
||||||
|
<name>composite-viewer</name>
|
||||||
|
<description>composite-viewer-desc</description>
|
||||||
|
<arg>1</arg>
|
||||||
|
<brief/>
|
||||||
|
</option>
|
||||||
|
|
||||||
<option>
|
<option>
|
||||||
<name>verbose</name>
|
<name>verbose</name>
|
||||||
<short>v</short>
|
<short>v</short>
|
||||||
|
|
Loading…
Add table
Reference in a new issue