IsoSurface Demo - Dev blog experiment... (released)

So, I finally added back all of the post filters and settings for them… plus more settings than before. Now the open sourced version has as much and more functionality than the old prototype did.

Consequently, I’ve uploaded a release:
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-Windows.zip
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-Linux.zip
https://simsilica-tools.googlecode.com/svn/trunk/IsoSurfaceDemo/release/IsoSurfaceDemo-MacOSX.zip

Controls

The controls are similar to before:
-Mouse looks
-Cursor keys look
-WASD moves
-Q moves up
-Z moves down
-shift runs
-ctrl+shift runs super fast

Joystick controls:
-left stick moves
-right stick looks
-dpad moves up and down. (it also moves left/right just like the left stick)
-right shoulder button one runs
-right shoulder button one plus two runs super fast

Creating Settings Panels

Creating the edit screens was pretty easy using the LemurProps sub-project. This includes a PropertyPanel class that can be used to edit the fields and properties of any Java object. Right now it only supports a handful of property types but it works fine for this use-case.

Here is what it can look like to setup a panel:


BloomFilter bloom = new BloomFilter();

PropertyPanel properties = new PropertyPanel("glass");
properties.setEnabledProperty(bloom, "enabled");
properties.addFloatProperty("Bloom Intensity", bloom, "bloomIntensity", 0, 10, 0.1f);
properties.addFloatProperty("Blur Scale", bloom, "blurScale", 0, 10, 0.1f);
properties.addFloatProperty("Exposure Cut-off", bloom, "exposureCutOff", 0, 1, 0.01f);
properties.addFloatProperty("Exposure Power", bloom, "exposurePower", 1f, 100, 0.1f);

This UI goes one further and adds them to rollup panels:


RollupPanel rollup = new RollupPanel("Bloom", properties, "glass");

The only tricky bit is that I want to add the enabled toggle right to the rollups title bar. PropertyPanel exposes a specially configured “enabled” property as a CheckboxModel for easily adding toggles like this.


CheckboxModel cbm = properties.getEnabledModel();
rollup.getTitleContainer().addChild(new Checkbox("", cbm, “glass”));

And that’s how I created all of those edit panels in the settings dialog.

Here is a pic of this release with all effects enabled:

And one with the scattering color wavelengths tweaked and an extremely wide FoV:

5 Likes