diff --git a/Input/Joysticks/Qware/qware-usb-joystick.xml b/Input/Joysticks/Qware/qware-usb-joystick.xml
new file mode 100644
index 000000000..6db7fd1ec
--- /dev/null
+++ b/Input/Joysticks/Qware/qware-usb-joystick.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+ 5-Axis,12-Button with POV
+
+
+ Aileron
+
+ property-scale
+ /controls/flight/aileron
+ 2
+
+
+
+
+ Elevator
+
+ property-scale
+ /controls/flight/elevator
+ -1.0
+ 2
+
+
+
+
+ Throttle
+
+ nasal
+
+
+
+
+
+ Rudder
+
+ property-scale
+ /controls/flight/rudder
+ 2
+
+
+
+
+ View (left/right)
+
+ true
+
+ property-adjust
+ /sim/current-view/goal-heading-offset-deg
+ 1.0
+
+
+
+ true
+
+ property-adjust
+ /sim/current-view/goal-heading-offset-deg
+ -1.0
+
+
+
+
+
+ View (up/down)
+
+ true
+
+ property-adjust
+ /sim/current-view/goal-pitch-offset-deg
+ -1.0
+
+
+
+ true
+
+ property-adjust
+ /sim/current-view/goal-pitch-offset-deg
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Input/Joysticks/Saitek/X52-pro.xml b/Input/Joysticks/Saitek/X52-pro.xml
index 9f554eab8..b7853b0a3 100644
--- a/Input/Joysticks/Saitek/X52-pro.xml
+++ b/Input/Joysticks/Saitek/X52-pro.xml
@@ -105,6 +105,7 @@ $Id$
Saitek X52 Pro Flight Control System
+ Saitek X52 Pro Flight Controller
Saitek Saitek X52 Pro Flight Control System
diff --git a/Shaders/urban.frag b/Shaders/urban.frag
index a63e52116..71da87af9 100644
--- a/Shaders/urban.frag
+++ b/Shaders/urban.frag
@@ -175,9 +175,12 @@ void main (void)
if ( quality_level >= 3.0 ) {
linear_search_steps = 20;
}
+ vec3 normal = normalize(VNormal);
+ vec3 tangent = normalize(VTangent);
+ vec3 binormal = normalize(VBinormal);
vec3 ecPos3 = ecPosition.xyz / ecPosition.w;
vec3 V = normalize(ecPos3);
- vec3 s = vec3(dot(V, VTangent), dot(V, VBinormal), dot(VNormal, -V));
+ vec3 s = vec3(dot(V, tangent), dot(V, binormal), dot(normal, -V));
vec2 ds = s.xy * depth_factor / s.z;
vec2 dp = gl_TexCoord[0].st - ds;
float d = ray_intersect(dp, ds);
@@ -189,7 +192,7 @@ void main (void)
float emis = N.z;
N.z = sqrt(1.0 - min(1.0,dot(N.xy, N.xy)));
float Nz = N.z;
- N = normalize(N.x * VTangent + N.y * VBinormal + N.z * VNormal);
+ N = normalize(N.x * tangent + N.y * binormal + N.z * normal);
vec3 l = gl_LightSource[0].position.xyz;
vec3 diffuse = gl_Color.rgb * max(0.0, dot(N, l));
@@ -198,7 +201,7 @@ void main (void)
// Shadow
if ( quality_level >= 2.0 ) {
dp += ds * d;
- vec3 sl = normalize( vec3( dot( l, VTangent ), dot( l, VBinormal ), dot( -l, VNormal ) ) );
+ vec3 sl = normalize( vec3( dot( l, tangent ), dot( l, binormal ), dot( -l, normal ) ) );
ds = sl.xy * depth_factor / sl.z;
dp -= ds * d;
float dl = ray_intersect(dp, ds);
@@ -237,11 +240,15 @@ void main (void)
finalColor *= ambient_light;
vec4 p = vec4( ecPos3 + tile_size * V * (d-1.0) * depth_factor / s.z, 1.0 );
- vec4 iproj = gl_ProjectionMatrix * p;
- iproj /= iproj.w;
finalColor.rgb = fog_Func(finalColor.rgb, fogType);
gl_FragColor = finalColor;
- gl_FragDepth = (iproj.z+1.0)/2.0;
+ if (dot(normal,-V) > 0.017) {
+ vec4 iproj = gl_ProjectionMatrix * p;
+ iproj /= iproj.w;
+ gl_FragDepth = (iproj.z+1.0)/2.0;
+ } else {
+ gl_FragDepth = gl_FragCoord.z;
+ }
}
diff --git a/Textures/Terrain/Town1.mask.png b/Textures/Terrain/Town1.mask.png
new file mode 100644
index 000000000..4cd972dc5
Binary files /dev/null and b/Textures/Terrain/Town1.mask.png differ
diff --git a/Textures/Terrain/city1.mask.png b/Textures/Terrain/city1.mask.png
new file mode 100644
index 000000000..d5293e8df
Binary files /dev/null and b/Textures/Terrain/city1.mask.png differ
diff --git a/Textures/Terrain/city2.mask.png b/Textures/Terrain/city2.mask.png
new file mode 100644
index 000000000..9eb58a72d
Binary files /dev/null and b/Textures/Terrain/city2.mask.png differ
diff --git a/Textures/Terrain/countryside1.green.mask.png b/Textures/Terrain/countryside1.green.mask.png
new file mode 100644
index 000000000..32d8d503f
Binary files /dev/null and b/Textures/Terrain/countryside1.green.mask.png differ
diff --git a/Textures/Terrain/countryside2.green.mask.png b/Textures/Terrain/countryside2.green.mask.png
new file mode 100644
index 000000000..f4c2c0d7b
Binary files /dev/null and b/Textures/Terrain/countryside2.green.mask.png differ
diff --git a/Textures/Terrain/countryside3.green.mask.png b/Textures/Terrain/countryside3.green.mask.png
new file mode 100644
index 000000000..4c326f551
Binary files /dev/null and b/Textures/Terrain/countryside3.green.mask.png differ
diff --git a/Textures/Terrain/countryside4.green.mask.png b/Textures/Terrain/countryside4.green.mask.png
new file mode 100644
index 000000000..2ed424b92
Binary files /dev/null and b/Textures/Terrain/countryside4.green.mask.png differ
diff --git a/Textures/Terrain/cropgrass1.mask.png b/Textures/Terrain/cropgrass1.mask.png
new file mode 100644
index 000000000..521b13ee1
Binary files /dev/null and b/Textures/Terrain/cropgrass1.mask.png differ
diff --git a/Textures/Terrain/cropgrass2.mask.png b/Textures/Terrain/cropgrass2.mask.png
new file mode 100644
index 000000000..953048a9b
Binary files /dev/null and b/Textures/Terrain/cropgrass2.mask.png differ
diff --git a/Textures/Terrain/cropgrass3.mask.png b/Textures/Terrain/cropgrass3.mask.png
new file mode 100644
index 000000000..9122b400e
Binary files /dev/null and b/Textures/Terrain/cropgrass3.mask.png differ
diff --git a/Textures/Terrain/cropwood.mask.png b/Textures/Terrain/cropwood.mask.png
new file mode 100644
index 000000000..bf46beedd
Binary files /dev/null and b/Textures/Terrain/cropwood.mask.png differ
diff --git a/Textures/Terrain/drycrop1.mask.png b/Textures/Terrain/drycrop1.mask.png
new file mode 100644
index 000000000..df4286f41
Binary files /dev/null and b/Textures/Terrain/drycrop1.mask.png differ
diff --git a/Textures/Terrain/drycrop2.mask.png b/Textures/Terrain/drycrop2.mask.png
new file mode 100644
index 000000000..b8ad5cf71
Binary files /dev/null and b/Textures/Terrain/drycrop2.mask.png differ
diff --git a/Textures/Terrain/drycrop3.mask.png b/Textures/Terrain/drycrop3.mask.png
new file mode 100644
index 000000000..bb64848a8
Binary files /dev/null and b/Textures/Terrain/drycrop3.mask.png differ
diff --git a/Textures/Terrain/drycrop4.mask.png b/Textures/Terrain/drycrop4.mask.png
new file mode 100644
index 000000000..a2323a04c
Binary files /dev/null and b/Textures/Terrain/drycrop4.mask.png differ
diff --git a/Textures/Terrain/golfcourse1.mask.png b/Textures/Terrain/golfcourse1.mask.png
new file mode 100644
index 000000000..33e948bf1
Binary files /dev/null and b/Textures/Terrain/golfcourse1.mask.png differ
diff --git a/Textures/Terrain/irrcrop.mask.png b/Textures/Terrain/irrcrop.mask.png
new file mode 100644
index 000000000..1d6f7f03b
Binary files /dev/null and b/Textures/Terrain/irrcrop.mask.png differ
diff --git a/Textures/Terrain/irrcrop1.mask.png b/Textures/Terrain/irrcrop1.mask.png
new file mode 100644
index 000000000..d0fb025ff
Binary files /dev/null and b/Textures/Terrain/irrcrop1.mask.png differ
diff --git a/Textures/Terrain/irrcrop2.mask.png b/Textures/Terrain/irrcrop2.mask.png
new file mode 100644
index 000000000..952a631ea
Binary files /dev/null and b/Textures/Terrain/irrcrop2.mask.png differ
diff --git a/Textures/Terrain/irrcrop3.mask.png b/Textures/Terrain/irrcrop3.mask.png
new file mode 100644
index 000000000..3e25ec37b
Binary files /dev/null and b/Textures/Terrain/irrcrop3.mask.png differ
diff --git a/Textures/Terrain/mixedcrop1.mask.png b/Textures/Terrain/mixedcrop1.mask.png
new file mode 100644
index 000000000..15273a10c
Binary files /dev/null and b/Textures/Terrain/mixedcrop1.mask.png differ
diff --git a/Textures/Terrain/mixedcrop2.mask.png b/Textures/Terrain/mixedcrop2.mask.png
new file mode 100644
index 000000000..80809b825
Binary files /dev/null and b/Textures/Terrain/mixedcrop2.mask.png differ
diff --git a/Textures/Terrain/mixedcrop3.mask.png b/Textures/Terrain/mixedcrop3.mask.png
new file mode 100644
index 000000000..f224b6546
Binary files /dev/null and b/Textures/Terrain/mixedcrop3.mask.png differ
diff --git a/Textures/Terrain/mixedcrop3b.mask.png b/Textures/Terrain/mixedcrop3b.mask.png
new file mode 100644
index 000000000..b40ab5bbf
Binary files /dev/null and b/Textures/Terrain/mixedcrop3b.mask.png differ
diff --git a/Textures/Terrain/mixedcrop4.mask.png b/Textures/Terrain/mixedcrop4.mask.png
new file mode 100644
index 000000000..6f0533540
Binary files /dev/null and b/Textures/Terrain/mixedcrop4.mask.png differ
diff --git a/Textures/Terrain/naturalcrop1.mask.png b/Textures/Terrain/naturalcrop1.mask.png
new file mode 100644
index 000000000..b82e6931f
Binary files /dev/null and b/Textures/Terrain/naturalcrop1.mask.png differ
diff --git a/gui/dialogs/rendering.xml b/gui/dialogs/rendering.xml
index 419ec3b7a..3852848b9 100644
--- a/gui/dialogs/rendering.xml
+++ b/gui/dialogs/rendering.xml
@@ -199,6 +199,30 @@
+
+ hbox
+ right
+
+
+
+
+ vegetation-density
+ 0
+ 10.0
+ /sim/rendering/vegetation-density
+
+ dialog-apply
+ vegetation-density
+
+
+
+
+ %.2f
+ true
+ /sim/rendering/vegetation-density
+
+
+
left
@@ -432,9 +456,6 @@
hbox
-
- /sim/rendering/shaders/quality-level
-
left
@@ -452,9 +473,6 @@
vbox
left
-
- /sim/rendering/shaders/quality-level
-
skydome-scattering
/sim/rendering/shaders/skydome
@@ -471,19 +489,13 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
mie-factor
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
0.0
0.01
@@ -496,10 +508,7 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
%.3f
@@ -514,19 +523,13 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
rayleigh-factor
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
0.0
0.001
@@ -539,10 +542,7 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
%.4f
@@ -557,19 +557,13 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
density-factor
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
0.0
1.0
@@ -582,10 +576,7 @@
-
- /sim/rendering/shaders/quality-level
- /sim/rendering/shaders/skydome
-
+ /sim/rendering/shaders/skydome
%.1f
diff --git a/materials-dds.xml b/materials-dds.xml
index 2537ba768..a59937727 100644
--- a/materials-dds.xml
+++ b/materials-dds.xml
@@ -109,6 +109,18 @@ Properties currently used:
effect - The name of an effect to inherit from. The default is
Effects/terrain-default.
+ object-mask: png file used as a mask for trees (green channel), buildings
+ (blue channel) and building rotation (red channel). Note that this is
+ used as a mask on the coverage-m2 and wood-coverage values. I.e. the
+ wood-coverage value is used to determine the placement of a number of
+ trees, which are then masked by the object-mask texture. Partial values
+ are randomly checked against, so a green value of 128 (0.5) means that
+ if the wood-coverage indicates that a tree is located at that point,
+ it only has a 50% chance of being added. Finally, note that if an
+ object-mask is defined, the tree-density and wood-size values are ignored,
+ and trees are placed evenly using theh wood-coverage value and
+ masked.
+
ambient, diffuse, specular, emissive, and shininess are copied into the
parameter section of the effect created for this material.
************************************************************************
@@ -123,7 +135,7 @@ Shared parameters for various materials.
8000
-
+
@@ -1339,6 +1351,8 @@ Shared parameters for various materials.
Terrain/city2.png
Terrain/city2-relief-light.png
+ Terrain/city1.mask.png
+ Terrain/city2.mask.png
- 1000000.0
- 20000.0
- 4000.0
+ 10000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2110,8 +2113,11 @@ Shared parameters for various materials.
Vineyard
Rice
Terrain/irrcrop1.dds
- Terrain/irrcrop2.dds
+ Terrain/irrcrop2.dds
Terrain/irrcrop3.dds
+ Terrain/irrcrop1.mask.png
+ Terrain/irrcrop2.mask.png
+ Terrain/irrcrop3.mask.png
2000
2000
2000000.0
@@ -2120,24 +2126,20 @@ Shared parameters for various materials.
0.3
0.6
1e30
-
- 5000
-
-
-
+
+ 5000
+
+
- 500000.0
+ 10000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2188,6 +2190,10 @@ Shared parameters for various materials.
Terrain/countryside4.green.dds
Terrain.winter/countryside4.winter.dds
+ Terrain/countryside1.green.mask.png
+ Terrain/countryside2.green.mask.png
+ Terrain/countryside3.green.mask.png
+ Terrain/countryside4.green.mask.png
1800
1800
1
@@ -2196,24 +2202,20 @@ Shared parameters for various materials.
0.6
1e30
2000000.0
-
- 5000
-
-
-
+
+ 5000
+
+
- 500000.0
- 20000.0
- 5000.0
+ 10000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2250,6 +2250,7 @@ Shared parameters for various materials.
NaturalCrop
Effects/transition-base-rock
Terrain/naturalcrop1.png
+ Terrain/naturalcrop1.mask.png
2000
2000
1
@@ -2258,9 +2259,21 @@ Shared parameters for various materials.
0.6
1e30
2000000.0
+
+ 5000
+
+
500000.0
- 20000.0
- 5000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2280,7 +2293,7 @@ Shared parameters for various materials.
CropGrass
Grassland
Terrain/cropgrass1.dds
- Terrain/cropgrass2.dds
+ Terrain/cropgrass2.dds
1500
1500
2000000.0
@@ -2320,8 +2333,9 @@ Shared parameters for various materials.
GolfCourse
Effects/transition-base-dirt
Terrain/golfcourse1.png
- 400
- 400
+ Terrain/golfcourse1.mask.png
+ 800
+ 800
2000000.0
0.93
@@ -2341,7 +2355,7 @@ Shared parameters for various materials.
0.1
0.3
1e30
- 500000.0
+ 5000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2361,6 +2375,7 @@ Shared parameters for various materials.
AgroForest
Effects/transition-base-dirt
Terrain/cropwood.dds
+ Terrain/cropwood.mask.png
1500
1500
2000000.0
@@ -2369,7 +2384,7 @@ Shared parameters for various materials.
0.6
0.7
10
- 4000.0
+ 4000.0
Textures.high/Trees/mixed-summer.dds
8
@@ -2608,12 +2623,16 @@ Shared parameters for various materials.
Terrain/city2.png
Terrain/city2-relief-light.png
+ Terrain/city1.mask.png
+ Terrain/city2.mask.png
+ Terrain/city1.mask.png
+ Terrain/city2.mask.png
1000
1000
100000.0
@@ -2633,12 +2652,12 @@ Shared parameters for various materials.
@@ -2648,7 +2667,7 @@ Shared parameters for various materials.
Models/Residential/medium-apartment.ac
Models/Buildings/renovated-apartment.ac
1000000
- random
+ mask
250000.0
- 5000.0
- 2000.0
Textures.high/Trees/mixed-winter.png
8
@@ -2707,6 +2724,8 @@ Shared parameters for various materials.
Terrain/city2.png
Terrain/city2-relief-light.png
+ Terrain/city1.mask.png
+ Terrain/city2.mask.png
+ Terrain/countryside1.green.mask.png
+ Terrain/countryside2.green.mask.png
+ Terrain/countryside3.green.mask.png
+ Terrain/countryside4.green.mask.png
1800
1800
1
@@ -3238,24 +3241,20 @@ Shared parameters for various materials.
0.6
1e30
2000000.0
-
- 5000
-
-
-
+
+ 5000
+
+
- 1000000.0
- 20000.0
- 4000.0
+ 10000.0
Textures/Trees/mixed-summer.png
8
@@ -1574,6 +1578,9 @@ Shared parameters for various materials.
Terrain/irrcrop1.png
Terrain/irrcrop2.png
Terrain/irrcrop3.png
+ Terrain/irrcrop1.mask.png
+ Terrain/irrcrop2.mask.png
+ Terrain/irrcrop3.mask.png
2000
2000
2000000.0
@@ -1583,22 +1590,18 @@ Shared parameters for various materials.
0.6
1e30
- 5000
-
-
+ 5000
+
- 500000.0
+ 10000.0
Textures/Trees/mixed-summer.png
8
@@ -1638,6 +1641,10 @@ Shared parameters for various materials.
Terrain/drycrop2.png
Terrain/drycrop3.png
Terrain/drycrop4.png
+ Terrain/drycrop1.mask.png
+ Terrain/drycrop2.mask.png
+ Terrain/drycrop3.mask.png
+ Terrain/drycrop4.mask.png
2000
2000
1
@@ -1647,22 +1654,18 @@ Shared parameters for various materials.
1e30
2000000.0
- 5000
-
-
+ 5000
+
- 500000.0
- 20000.0
- 5000.0
+ 10000.0
Textures/Trees/mixed-summer.png
8
@@ -1769,6 +1770,7 @@ Shared parameters for various materials.
GolfCourse
Terrain/golfcourse1.png
+ Terrain/golfcourse1.mask.png
2000
2000
2000000.0
@@ -1790,7 +1792,7 @@ Shared parameters for various materials.
0.1
0.3
1e30
- 500000.0
+ 5000.0
Textures/Trees/mixed-summer.png
8
@@ -1810,6 +1812,7 @@ Shared parameters for various materials.
AgroForest
Effects/landmass
Terrain/cropwood.png
+ Terrain/cropwood.mask.png
2000
2000
2000000.0
@@ -2039,6 +2042,8 @@ Shared parameters for various materials.
Terrain/city2.png
Terrain/city2-relief-light.png
+ Terrain/city1.mask.png
+ Terrain/city2.mask.png
- 1000000.0
- 20000.0
- 4000.0
+ 10000.0
Textures/Trees/mixed-winter.png
8
@@ -2496,6 +2486,9 @@ Shared parameters for various materials.
Terrain.winter/irrcrop1.png
Terrain.winter/irrcrop2.png
Terrain.winter/irrcrop3.png
+ Terrain/irrcrop1.mask.png
+ Terrain/irrcrop2.mask.png
+ Terrain/irrcrop3.mask.png
2000
2000
2000000.0
@@ -2505,22 +2498,18 @@ Shared parameters for various materials.
0.6
1e30
- 5000
-
-
+ 5000
+
- 150000.0
- 10000.0
- 5000.0
+ 10000.0
Textures/Trees/mixed-winter.png
8
@@ -2561,6 +2548,10 @@ Shared parameters for various materials.
Terrain.winter/drycrop2.png
Terrain.winter/drycrop3.png
Terrain.winter/drycrop4.png
+ Terrain/drycrop1.png
+ Terrain/drycrop2.png
+ Terrain/drycrop3.png
+ Terrain/drycrop4.png
2000
2000
1
@@ -2570,22 +2561,18 @@ Shared parameters for various materials.
1e30
2000000.0
- 5000
-
-
+ 5000
+
- 150000.0
- 10000.0
- 5000.0
+ 10000.0
Textures/Trees/mixed-winter.png
8
@@ -2693,6 +2678,7 @@ Shared parameters for various materials.
GolfCourse
Terrain.winter/golfcourse.png
+ Terrain/golfcourse1.mask.png
2000
2000
2000000.0
@@ -2714,9 +2700,7 @@ Shared parameters for various materials.
0.1
0.3
1e30
- 150000.0
- 10000.0
- 5000.0
+ 5000.0
Textures/Trees/mixed-winter.png
8
@@ -2732,8 +2716,10 @@ Shared parameters for various materials.
CropWoodCover
+ CropWood
AgroForest
Terrain.winter/cropwood.png
+ Terrain/cropwood.mask.png
2000
2000
2000000.0
diff --git a/preferences.xml b/preferences.xml
index 7ae4a3bff..1f50279c9 100644
--- a/preferences.xml
+++ b/preferences.xml
@@ -103,10 +103,9 @@ Started September 2000 by David Megginson, david@megginson.com
10000
- true
- true
+ true
+ true
+ 1.0
false