diff --git a/gui/dialogs/rendering.xml b/gui/dialogs/rendering.xml
index 7f9432210..a3b921219 100644
--- a/gui/dialogs/rendering.xml
+++ b/gui/dialogs/rendering.xml
@@ -222,9 +222,13 @@
hbox
left
-
+
ws30
/scenery/use-vpb
+
+ /sim/gui/dialogs/rendering/vpb-available
+
+
dialog-apply
ws30
@@ -237,18 +241,23 @@
hbox
right
-
-
- /scenery/use-vpb
- true
-
-
-
+
+
+ /scenery/use-vpb
+ true
+
+
elev-lod
+
+
+ /scenery/use-vpb
+ true
+
+
1.0
10.0
1.0
@@ -261,6 +270,12 @@
+
+
+ /scenery/use-vpb
+ true
+
+
%.1f
true
/scenery/elevation-mesh/lod-range-factor
@@ -270,18 +285,24 @@
hbox
right
-
-
- /scenery/use-vpb
- true
-
-
+
+
+ /scenery/use-vpb
+ true
+
+
elev-delta
+
+
+ /scenery/use-vpb
+ true
+
+
0.0
20.0
1.0
@@ -294,6 +315,12 @@
+
+
+ /scenery/use-vpb
+ true
+
+
%2dm
true
/scenery/elevation-mesh/constraint-gap-m
@@ -1118,19 +1145,29 @@
var matfile = getprop("/sim/rendering/materials-file");
foreach (var name; keys(materials)) {
if (matfile == materials[name]) {
- setprop("/sim/gui/dialogs/rendering/texture-set", name);
+ setprop("/sim/gui/dialogs/rendering/texture-set", name);
}
}
- var vendor = getprop("/sim/rendering/gl-vendor");
- if (vendor != nil) {
- vendor = string.lc(vendor);
- if (find("intel", vendor) != -1) {
- setprop("/sim/gui/dialogs/rendering/shader-warning", 1);
- } else {
- setprop("/sim/gui/dialogs/rendering/shader-warning", 0);
- }
- }
+ var vendor = getprop("/sim/rendering/gl-vendor");
+ if (vendor != nil) {
+ vendor = string.lc(vendor);
+ if (find("intel", vendor) != -1) {
+ setprop("/sim/gui/dialogs/rendering/shader-warning", 1);
+ } else {
+ setprop("/sim/gui/dialogs/rendering/shader-warning", 0);
+ }
+ }
+
+ var osg_version = getprop("/sim/version/openscenegraph");
+
+
+ if ((osg_version != nil) and (find("3.6", osg_version) == 0)) {
+ # Currently vpb requires OSG 3.6 specifically.
+ setprop("/sim/gui/dialogs/rendering/vpb-available", 1);
+ } else {
+ setprop("/sim/gui/dialogs/rendering/vpb-available", 0);
+ }
# Mapping from underlying properties to those used by the GUI.