diff --git a/gui/dialogs/rendering.xml b/gui/dialogs/rendering.xml index 48e0ea25b..42a28f373 100644 --- a/gui/dialogs/rendering.xml +++ b/gui/dialogs/rendering.xml @@ -327,53 +327,6 @@ <subsystem>tile-manager</subsystem> </binding> </button> - - <group> - <layout>hbox</layout> - - <text> - <label>Rembrandt</label> - <halign>left</halign> - <visible> - <property>/sim/rendering/rembrandt/enabled</property> - </visible> - </text> - <text> - <label>(Experimental)</label> - <halign>left</halign> - <color> - <red>1.0</red> - <green>0.6</green> - <blue>0.6</blue> - </color> - <visible> - <property>/sim/rendering/rembrandt/enabled</property> - </visible> - </text> - <hrule> - <stretch>true</stretch> - <visible> - <property>/sim/rendering/rembrandt/enabled</property> - </visible> - </hrule> - </group> - - <button> - <visible> - <property>/sim/rendering/rembrandt/enabled</property> - </visible> - <legend>Rembrandt Options</legend> - <halign>center</halign> - <binding> - <command>dialog-show</command> - <dialog-name>rembrandt</dialog-name> - </binding> - <binding> - <command>dialog-close</command> - <dialog-name>rendering</dialog-name> - </binding> - <pref-width>200</pref-width> - </button> <group> <layout>vbox</layout> @@ -456,7 +409,12 @@ <row>1</row> <col>0</col> <visible> - <property>/sim/rendering/shaders/custom-settings</property> + <and> + <property>/sim/rendering/shaders/custom-settings</property> + <not> + <property>/sim/rendering/shaders/skydome</property> + </not> + </and> </visible> <button> @@ -474,6 +432,35 @@ </button> </group> + <group> + <layout>hbox</layout> + <row>1</row> + <col>0</col> + <visible> + <and> + <property>/sim/rendering/shaders/custom-settings</property> + <property>/sim/rendering/shaders/skydome</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </and> + </visible> + + <button> + <legend>Shader Options</legend> + <halign>left</halign> + <binding> + <command>dialog-show</command> + <dialog-name>shaders-lightfield</dialog-name> + </binding> + <binding> + <command>dialog-close</command> + <dialog-name>rendering</dialog-name> + </binding> + <pref-width>200</pref-width> + </button> + + </group> </group> <group> @@ -602,25 +589,46 @@ </group> <group> - <layout>hbox</layout> - <halign>left</halign> - <checkbox> + <layout>table</layout> + <group> + <layout>hbox</layout> <halign>left</halign> - <label>Atmospheric light scattering</label> - <name>skydome-scattering</name> - <visible> - <not> - <property>/sim/rendering/rembrandt/enabled</property> - </not> - </visible> - <property>/sim/rendering/shaders/skydome</property> - <binding> - <command>dialog-apply</command> - <object-name>skydome-scattering</object-name> - </binding> - </checkbox> + <row>0</row> + <col>0</col> + <checkbox> + <halign>left</halign> + <label>Atmospheric light scattering</label> + <name>skydome-scattering</name> + <visible> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </visible> + <property>/sim/rendering/shaders/skydome</property> + <binding> + <command>dialog-apply</command> + <object-name>skydome-scattering</object-name> + </binding> + </checkbox> + <text> + <label>(Experimental)</label> + <visible> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </visible> + <color> + <red>1.0</red> + <green>0.6</green> + <blue>0.6</blue> + </color> + </text> + </group> <text> - <label>(Experimental)</label> + <row>1</row> + <col>0</col> + <label>This disables most effects/shaders.</label> + <halign>left</halign> <visible> <not> <property>/sim/rendering/rembrandt/enabled</property> @@ -632,123 +640,58 @@ <blue>0.6</blue> </color> </text> - </group> - - <group> - <layout>hbox</layout> - <halign>right</halign> - <visible> - <not> + + <group> + <layout>hbox</layout> + <row>0</row> + <col>0</col> + + <text> + <label>Rembrandt</label> + <halign>left</halign> + <visible> + <property>/sim/rendering/rembrandt/enabled</property> + </visible> + </text> + <text> + <label>(Experimental)</label> + <halign>left</halign> + <color> + <red>1.0</red> + <green>0.6</green> + <blue>0.6</blue> + </color> + <visible> + <property>/sim/rendering/rembrandt/enabled</property> + </visible> + </text> + <hrule> + <stretch>true</stretch> + <visible> + <property>/sim/rendering/rembrandt/enabled</property> + </visible> + </hrule> + </group> + + <button> + <row>1</row> + <col>0</col> + <visible> <property>/sim/rendering/rembrandt/enabled</property> - </not> - </visible> - <text> - <label>Mie factor</label> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - </text> - <slider> - <name>mie-factor</name> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <min>0.0</min> - <max>0.01</max> - <step>0.001</step> - <property>/sim/rendering/mie</property> + </visible> + <legend>Rembrandt Options</legend> + <halign>center</halign> <binding> - <command>dialog-apply</command> - <object-name>mie-factor</object-name> + <command>dialog-show</command> + <dialog-name>rembrandt</dialog-name> </binding> - </slider> - <text> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <label>12345678</label> - <format>%.3f</format> - <live>true</live> - <property>/sim/rendering/mie</property> - </text> - </group> - - <group> - <layout>hbox</layout> - <halign>right</halign> - <visible> - <not> - <property>/sim/rendering/rembrandt/enabled</property> - </not> - </visible> - <text> - <label>Rayleigh factor</label> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - </text> - <slider> - <name>rayleigh-factor</name> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <min>0.0</min> - <max>0.001</max> - <step>0.0001</step> - <property>/sim/rendering/rayleigh</property> <binding> - <command>dialog-apply</command> - <object-name>rayleigh-factor</object-name> + <command>dialog-close</command> + <dialog-name>rendering</dialog-name> </binding> - </slider> - <text> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <label>12345678</label> - <format>%.4f</format> - <live>true</live> - <property>/sim/rendering/rayleigh</property> - </text> - </group> - - <group> - <layout>hbox</layout> - <halign>right</halign> - <visible> - <not> - <property>/sim/rendering/rembrandt/enabled</property> - </not> - </visible> - <text> - <label>Density factor</label> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - </text> - <slider> - <name>density-factor</name> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <min>0.0</min> - <max>1.0</max> - <step>0.1</step> - <property>/sim/rendering/dome-density</property> - <binding> - <command>dialog-apply</command> - <object-name>density-factor</object-name> - </binding> - </slider> - <text> - <enable> - <property>/sim/rendering/shaders/skydome</property> - </enable> - <label>12345678</label> - <format>%.1f</format> - <live>true</live> - <property>/sim/rendering/dome-density</property> - </text> + <pref-width>200</pref-width> + </button> + </group> <empty> diff --git a/gui/dialogs/shaders-lightfield.xml b/gui/dialogs/shaders-lightfield.xml new file mode 100644 index 000000000..b89158f73 --- /dev/null +++ b/gui/dialogs/shaders-lightfield.xml @@ -0,0 +1,323 @@ +<?xml version="1.0"?> + +<PropertyList> + <name>shaders-lightfield</name> + <modal>false</modal> + <layout>vbox</layout> + <padding>20</padding> + + <group> + <layout>hbox</layout> + <empty> + <stretch>1</stretch> + </empty> + + <text> + <label>Shader options</label> + </text> + + <empty> + <stretch>1</stretch> + </empty> + + <button> + <pref-width>16</pref-width> + <pref-height>16</pref-height> + <legend></legend> + <keynum>27</keynum> + <border>2</border> + <binding> + <command>dialog-close</command> + </binding> + </button> + </group> + + <hrule/> + + <group> + <layout>hbox</layout> + <text> + <label>General</label> + <halign>left</halign> + </text> + <hrule> + <stretch>true</stretch> + </hrule> + </group> + + <group> + <layout>hbox</layout> + <halign>right</halign> + + <text> + <halign>left</halign> + <label>Landmass</label> + </text> + <slider> + <name>landmass</name> + <min>0.0</min> + <max>5.0</max> + <step>1.0</step> + <fraction>0.17</fraction> + <live>true</live> + <property>/sim/rendering/shaders/landmass</property> + <binding> + <command>dialog-apply</command> + <object-name>landmass</object-name> + </binding> + </slider> + <empty> + <pref-width>55</pref-width> + </empty> + </group> + + <group> + <layout>hbox</layout> + <halign>right</halign> + <text> + <label>Water</label> + </text> + <slider> + <name>water</name> + <min>0.0</min> + <max>5.0</max> + <step>1.0</step> + <fraction>0.17</fraction> + <live>true</live> + <property>/sim/rendering/shaders/water</property> + <binding> + <command>dialog-apply</command> + <object-name>water</object-name> + </binding> + </slider> + <empty> + <pref-width>55</pref-width> + </empty> + </group> + + <group> + <layout>hbox</layout> + <visible> + <not> + <property>/local-weather/tiles/tile-counter</property> + </not> + </visible> + <text> + <label>Atmospheric effects</label> + <halign>left</halign> + </text> + <hrule> + <stretch>true</stretch> + </hrule> + </group> + + <group> + <layout>hbox</layout> + <halign>right</halign> + <visible> + <not> + <property>/local-weather/tiles/tile-counter</property> + </not> + </visible> + <text> + <label>Mie factor</label> + </text> + <slider> + <name>mie-factor</name> + <min>0.0</min> + <max>0.01</max> + <step>0.001</step> + <live>true</live> + <property>/sim/rendering/mie</property> + <binding> + <command>dialog-apply</command> + <object-name>mie-factor</object-name> + </binding> + </slider> + <text> + <label>12345678</label> + <format>%.3f</format> + <live>true</live> + <property>/sim/rendering/mie</property> + </text> + </group> + + <group> + <layout>hbox</layout> + <halign>right</halign> + <visible> + <not> + <property>/local-weather/tiles/tile-counter</property> + </not> + </visible> + <text> + <label>Rayleigh factor</label> + </text> + <slider> + <name>rayleigh-factor</name> + <min>0.0</min> + <max>0.001</max> + <step>0.0001</step> + <property>/sim/rendering/rayleigh</property> + <binding> + <command>dialog-apply</command> + <object-name>rayleigh-factor</object-name> + </binding> + </slider> + <text> + <label>12345678</label> + <format>%.4f</format> + <live>true</live> + <property>/sim/rendering/rayleigh</property> + </text> + </group> + + <group> + <layout>hbox</layout> + <halign>right</halign> + <visible> + <not> + <property>/local-weather/tiles/tile-counter</property> + </not> + </visible> + <text> + <label>Density factor</label> + </text> + <slider> + <name>density-factor</name> + <min>0.0</min> + <max>1.0</max> + <step>0.1</step> + <property>/sim/rendering/dome-density</property> + <binding> + <command>dialog-apply</command> + <object-name>density-factor</object-name> + </binding> + </slider> + <text> + <label>12345678</label> + <format>%.1f</format> + <live>true</live> + <property>/sim/rendering/dome-density</property> + </text> + </group> + + <group> + <layout>hbox</layout> + <text> + <label>Aircraft</label> + <halign>left</halign> + </text> + <hrule> + <stretch>true</stretch> + </hrule> + </group> + + <nasal> + <open> + if (props.globals.getNode("/sim/rendering/shaders/aircraft") != nil) { + var group = cmdarg().getChildren("group")[9]; + group.removeChildren("slider"); + group.removeChildren("hrule"); + group.removeChildren("text"); + var shaders = props.globals.getNode("/sim/rendering/shaders/aircraft").getChildren(); + for(i=0; size(shaders) > i; i+=1) { + + var fraction = 0.5; + var min = 0; + var max = 1; + var step = 1; + + var name = shaders[i].getNode("name"); + + if (shaders[i].getNode("step") != nil){ + step = shaders[i].getNode("step"); + } + if (shaders[i].getNode("min") != nil){ + min = shaders[i].getNode("min"); + } + if (shaders[i].getNode("max") != nil){ + max = shaders[i].getNode("max"); + } + + if (min != nil and max != nil and step != nil){ + fraction = step/(max+step); + } + + var target = group.getChild("slider", i, 1); + props.copy(group.getNode("slider-template"), target); + target.getNode("label").setValue(name != nil ? name.getValue() : (shaders[i].getName())); + target.getNode("name").setValue("aircraftshader"~i); + target.getNode("binding").getNode("object-name").setValue("aircraftshader"~i); + target.getNode("min").setValue(min); + target.getNode("max").setValue(max); + target.getNode("step").setValue(step); + target.getNode("fraction").setValue(fraction); + target.getNode("property").setValue(shaders[i].getPath()~"/quality-level"); + } + } + + </open> + </nasal> + + <group> + <layout>vbox</layout> + <halign>left</halign> + + <slider-template> + <name> + <!----> + </name> + <label> + <!----> + </label> + <min> + <!----> + </min> + <max> + <!----> + </max> + <step> + <!----> + </step> + <fraction> + <!----> + </fraction> + <property> + <!----> + </property> + <binding> + <command>dialog-apply</command> + <object-name> + <!----> + </object-name> + </binding> + </slider-template> + </group> + + <hrule/> + + <group> + <layout>hbox</layout> + + <button> + <legend>Back</legend> + <binding> + <command>dialog-show</command> + <dialog-name>rendering</dialog-name> + </binding> + <binding> + <command>dialog-close</command> + </binding> + </button> + <button> + <legend>Close</legend> + <default>true</default> + <key>Esc</key> + <binding> + <command>dialog-close</command> + </binding> + </button> + </group> + +</PropertyList> diff --git a/gui/dialogs/shaders.xml b/gui/dialogs/shaders.xml index 1b80b42d5..c848b07dd 100644 --- a/gui/dialogs/shaders.xml +++ b/gui/dialogs/shaders.xml @@ -56,7 +56,9 @@ <halign>left</halign> <label>Generic</label> <enable> - <property>/sim/rendering/shaders/generic</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> @@ -64,7 +66,9 @@ <halign>left</halign> <label>Crop</label> <enable> - <property>/sim/rendering/shaders/crop</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> @@ -72,7 +76,9 @@ <halign>left</halign> <label>Landmass</label> <enable> - <property>/sim/rendering/shaders/landmass</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> @@ -80,7 +86,9 @@ <halign>left</halign> <label>Persistent contrails</label> <enable> - <property>/sim/rendering/shaders/contrails</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> @@ -88,31 +96,29 @@ <halign>left</halign> <label>Transition</label> <enable> - <property>/sim/rendering/shaders/transition</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> <text> <halign>left</halign> <label>Model</label> - <enable> - <property>/sim/rendering/shaders/model</property> - </enable> </text> <text> <halign>left</halign> <label>Urban</label> - <enable> - <property>/sim/rendering/shaders/urban</property> - </enable> </text> <text> <halign>left</halign> <label>Water</label> <enable> - <property>/sim/rendering/shaders/water</property> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> </enable> </text> @@ -123,6 +129,11 @@ <slider> <name>generic</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>1.0</max> <step>1.0</step> @@ -137,6 +148,11 @@ <slider> <name>crop</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>1.0</max> <step>1.0</step> @@ -151,6 +167,11 @@ <slider> <name>landmass</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>5.0</max> <step>1.0</step> @@ -165,6 +186,11 @@ <slider> <name>contrails</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>1.0</max> <step>1.0</step> @@ -179,6 +205,11 @@ <slider> <name>transition</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>1.0</max> <step>1.0</step> @@ -221,6 +252,11 @@ <slider> <name>water</name> + <enable> + <not> + <property>/sim/rendering/rembrandt/enabled</property> + </not> + </enable> <min>0.0</min> <max>5.0</max> <step>1.0</step> @@ -236,6 +272,30 @@ </group> </group> + + <text> + <label>Some shaders are disabled because</label> + <color> + <red>1.0</red> + <green>0.6</green> + <blue>0.6</blue> + </color> + <visible> + <property>/sim/rendering/rembrandt/enabled</property> + </visible> + </text> + <text> + <halign>left</halign> + <label>you have Rembrandt enabled.</label> + <color> + <red>1.0</red> + <green>0.6</green> + <blue>0.6</blue> + </color> + <visible> + <property>/sim/rendering/rembrandt/enabled</property> + </visible> + </text> <group> <layout>hbox</layout>