From: Svjatoslav Agejenko Date: Fri, 2 Oct 2026 19:10:00 +0000 (+0300) Subject: docs(spacemouse): rename device to SpaceMouse, describe GI as baked X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;p=aukio-3d-demos.git docs(spacemouse): rename device to SpaceMouse, describe GI as baked User-facing text and docs now say SpaceMouse, covering both the SpaceNavigator over USB and the SpaceMouse Wireless over Bluetooth: launcher entry, demo readout (including the no-device hint) and javadoc. The manual's SpaceMouse section lists both transports. Also correct the global illumination wording in HouseDemo and the manual: GI is baked in bounce generations over the first seconds and then frees its per-texel state, rather than progressing from per-polygon stamps to per-texel refinement. --- diff --git a/Documentation/index.org b/Documentation/index.org index e63e599..8e0b588 100644 --- a/Documentation/index.org +++ b/Documentation/index.org @@ -189,8 +189,9 @@ recenter if the view drifts off-center. Disable with =-De3d.headtrack=false=. See the *Head tracking* demo for a compass scene built to show this off. -*SpaceMouse 6DOF:* when a 3Dconnexion SpaceNavigator is plugged in -(USB), every demo automatically flies the camera with the cap — +*SpaceMouse 6DOF:* when a 3Dconnexion SpaceMouse is connected +(SpaceNavigator over USB or SpaceMouse Wireless over Bluetooth), +every demo automatically flies the camera with the cap — push/pull/slide to move (same acceleration physics as arrow keys), tilt/twist to look. The left cap button brakes (kills camera velocity). Rotation composes with head tracking and mouse drag. @@ -810,11 +811,12 @@ compiler) running under the crtbasic interpreter. - Light indicators that explain the shadows: every hero light shows a large glow at its position — shadows extend radially away from that point (the source is omnidirectional) -- Progressive global illumination (=ViewPanel.enableGlobalIllumination=): +- Baked global illumination (=ViewPanel.enableGlobalIllumination=): the city's polygons render as lightmapped triangles - (=ObjModel= is a =LightmappedCompositeShape=), so GI proceeds from - per-polygon stamps to per-texel shadow and bounce refinement over the - first seconds (golden images stay lightmapping- and GI-free for + (=ObjModel= is a =LightmappedCompositeShape=), so GI bakes them in + bounce generations — direct light first, one more bounce per + generation after that — over the first seconds, then frees the + per-texel state (golden images stay lightmapping- and GI-free for determinism) * Graphics Benchmark diff --git a/src/main/java/eu/svjatoslav/aukio/e3d/examples/house_demo/HouseDemo.java b/src/main/java/eu/svjatoslav/aukio/e3d/examples/house_demo/HouseDemo.java index fa9c2b4..feaf45c 100644 --- a/src/main/java/eu/svjatoslav/aukio/e3d/examples/house_demo/HouseDemo.java +++ b/src/main/java/eu/svjatoslav/aukio/e3d/examples/house_demo/HouseDemo.java @@ -132,8 +132,10 @@ public class HouseDemo { addLights(viewPanel.getLightingManager(), shapes); - // Progressive global illumination: shadows and indirect bounce - // light fade in over the first seconds on dedicated CPU threads. + // Baked global illumination: shadows and indirect bounce light + // are traced in bounce generations over the first seconds on + // dedicated CPU threads, then the per-texel state is freed and + // only the final lightmap textures remain. // 4 threads: 3-unit texels mean ~16x more work items than 12-unit. viewPanel.enableGlobalIllumination(4); diff --git a/src/main/java/eu/svjatoslav/aukio/e3d/examples/launcher/ApplicationListPanel.java b/src/main/java/eu/svjatoslav/aukio/e3d/examples/launcher/ApplicationListPanel.java index 9be77f2..d27b6fb 100644 --- a/src/main/java/eu/svjatoslav/aukio/e3d/examples/launcher/ApplicationListPanel.java +++ b/src/main/java/eu/svjatoslav/aukio/e3d/examples/launcher/ApplicationListPanel.java @@ -74,7 +74,7 @@ class ApplicationListPanel extends JPanel { new ShowHeadTrackingDemo()), new DemoEntry("SpaceMouse 6DOF", - "Fly with a 3Dconnexion SpaceNavigator — cap moves, tilts and twists", + "Fly with a 3Dconnexion SpaceMouse — cap moves, tilts and twists", new ShowSpaceMouseDemo()), }; diff --git a/src/main/java/eu/svjatoslav/aukio/e3d/examples/spacemouse_demo/SpaceMouseDemo.java b/src/main/java/eu/svjatoslav/aukio/e3d/examples/spacemouse_demo/SpaceMouseDemo.java index 903ab6a..4852cf3 100644 --- a/src/main/java/eu/svjatoslav/aukio/e3d/examples/spacemouse_demo/SpaceMouseDemo.java +++ b/src/main/java/eu/svjatoslav/aukio/e3d/examples/spacemouse_demo/SpaceMouseDemo.java @@ -20,16 +20,17 @@ import eu.svjatoslav.aukio.e3d.renderer.raster.shapes.composite.textcanvas.TextC import static eu.svjatoslav.aukio.e3d.geometry.Point3D.point; /** - * SpaceNavigator 6DOF mouse demo. + * SpaceMouse 6DOF mouse demo. * *

The camera stands at the center of a compass ring (same scene as - * the head tracking demo, for comparable behavior). With a - * SpaceNavigator plugged in, push/pull/slide the cap to fly and + * the head tracking demo, for comparable behavior). With a supported + * 3Dconnexion device connected (SpaceNavigator over USB or SpaceMouse + * Wireless over Bluetooth), push/pull/slide the cap to fly and * tilt/twist to look. A floating readout shows the six raw axis values * live — deflect the cap and confirm each axis moves the expected * number and in the expected direction.

* - *

SpaceNavigator support is automatic in every engine app: the + *

SpaceMouse support is automatic in every engine app: the * device is hot-plug detected, no setup code needed. Left button * brakes (kills camera velocity). Disable with * {@code -De3d.spacemouse=false}.

@@ -52,7 +53,7 @@ public class SpaceMouseDemo { /** * Builds the demo scene: compass ring, floor grid and the axis readout, - * camera at the center of the ring. The SpaceNavigator itself is + * camera at the center of the ring. The SpaceMouse itself is * hot-plug auto-started by the view panel — nothing to wire. * Called by both {@link #main(String[])} (via {@link #buildSceneState}) * and the golden-image harness — must stay deterministic (no time, no @@ -100,8 +101,8 @@ public class SpaceMouseDemo { final int ms) { final SpaceNavigatorHid device = panel.getSpaceMouse(); if (device == null) { - readout.setText(" No SpaceNavigator detected \n" - + " Plug it in — hot-plug is on "); + readout.setText(" No SpaceMouse detected \n" + + " Connect one — hot-plug is on "); return true; } readout.setText(String.format(