Parallax & preview
The author’s job is to describe the height field. The parallax controls decide how strongly the basemap reacts to that description. The 3D preview is for checking your work.
Scene-wide controls
Section titled “Scene-wide controls”Open the inspector → expand Parallax (scene) at the bottom. These settings are scene-level and shared across every player in the room.
| Control | Range | What it does |
|---|---|---|
| Enabled | toggle | Master switch for the parallax effect. Off = a flat top-down map, regardless of what’s drawn. The drawn shapes still exist; the visual effect is just paused. |
| Strength | 0 to 0.5 (default 0.04) | How much the basemap shifts per unit of camera offset. Default is intentionally subtle — bumping past 0.1 gets cartoony, past 0.2 looks broken. Crank it temporarily to see what the height field is doing while you’re authoring. |
| Height scale | 0.5 to 2 (default 1) | A gamma curve on the height values. Below 1 squashes the contrast (everything is closer to the midground); above 1 exaggerates highs and lows. Useful when your authored heights are all subtle and you want a stronger effect without re-drawing. |
This-device opt-out
Section titled “This-device opt-out”Each player has their own toggle (also in the Parallax collapsible) labelled Disable on this device. It’s saved to local storage and does not affect other players — useful if a player’s machine is struggling, or if the effect is making them queasy.
When the GM disables parallax scene-wide, both checks are AND’d: the effect runs only when scene-wide enabled AND this-device-not-disabled.
Default on phones / tablets
Section titled “Default on phones / tablets”On devices with a coarse pointer (touchscreens), the per-device toggle starts disabled by default. Touch users tend to pan more aggressively than mouse users, and parallax over fast pans reads as nausea-inducing motion. Players can opt in from the inspector.
If you’ve never set the toggle on this device, it’s tracking that default. Once you flip it manually — either way — your choice persists.
Visualising the height field
Section titled “Visualising the height field”Expand the Visualise (GM) collapsible.
Heightmap overlay
Section titled “Heightmap overlay”The Heightmap overlay toggle paints the raw height texture directly over the basemap so you can see exactly what the engine is sampling.
- Black = depression (h = −1)
- Mid-grey = ground level (h = 0, no parallax)
- White = elevation (h = +1)
The opacity slider controls how much of the basemap shows through. The little black-to-white legend below the slider is your reference.
This is GM-only — players never see the overlay, regardless of the toggle.
3D preview
Section titled “3D preview”Click Open 3D preview to launch the modal that projects the basemap onto the height field as a tessellated 3D mesh. It’s the fastest way to confirm “does this elevation profile look like what I’m picturing in my head.”
- Drag to orbit the camera (yaw / pitch).
- Scroll wheel to zoom (camera distance from the scene).
- Height multiplier slider — exaggerates the displacement so subtle authored heights are easy to inspect. Doesn’t affect the actual scene.
- Reset camera restores the default angle.
- Esc or the X button closes.
Negative heights show as depressions below the reference plane; positive as elevations above. Sharp cliffs read as cliffs (the mesh is dense enough to keep edges sharp).
The preview reuses the same Pixi canvas, so opening it doesn’t load anything new — it just hides the VTT view, draws the 3D scene, and restores everything on close.
Edge stretching
Section titled “Edge stretching”When you pan past a sharp height transition — the rim of a hole, the edge of a tower — the basemap pixels right at the rim appear stretched across the height change. This mimics what you’d see in the 3D preview, where the basemap “wallpapers” down a cliff face.
Without this, the parallax would pull surrounding pixels into the wrong place: a hole would show grass leaking in from outside instead of looking like a hole; a tower would show grass on its top instead of its own surface.
You don’t need to configure anything — it’s always on. If a region feels too “stamped” at its edges, add a few pixels of Falloff to that region; the gradient lets the parallax flow more smoothly across the transition.
Pause-during-measure
Section titled “Pause-during-measure”When any player switches to the measure tool (the ruler), parallax is automatically paused on their screen for the duration. Distances should always read against the un-parallaxed basemap, otherwise a token “30 ft away” can appear 5–10 px off depending on the local height.
Switch back to any other tool and parallax resumes. There’s no setting for this — it’s always on.
Diagnostics
Section titled “Diagnostics”The Diagnostics collapsible at the bottom shows internal state — useful when you’re debugging or filing a bug report:
- Status:
attached(the parallax filter is mounted on the basemap) ordetaching(something’s wrong). - RT: the height texture’s pixel dimensions.
- Last rebuild: how long the last rasterizer rebuild took (typically 1–5 ms).
- Hash: the cache key. If two clients with the same scene see different parallax, their hashes should match — if they don’t, something’s out of sync.
- Clear all regions / ramps — destructive escape hatch.
Troubleshooting
Section titled “Troubleshooting”“I don’t see any parallax”
Section titled ““I don’t see any parallax””Run through these in order:
- Expand Parallax (scene) → is Enabled on?
- In the same panel → is Disable on this device off?
- Is the Strength slider above 0?
- Have you actually drawn anything? An empty scene has nothing to parallax. Open the Heightmap overlay — if it’s all mid-grey, there are no heights to react to.
- Are you currently in the measure tool? Switch to a different tool — parallax pauses during measurement.
If none of those, check the Diagnostics — Status should read “attached.” If it says “detaching,” reload the page.
“The parallax is on the wrong area”
Section titled ““The parallax is on the wrong area””Open the Heightmap overlay. The greyscale heights should sit exactly where you intended them — if they don’t, the regions are misplaced (move them in the Polygon tab) or the wrong add blend is summing into a place you didn’t mean.
If the heights look right but the parallax looks wrong, your map’s mapWidth / mapHeight values may be out of sync with the basemap’s pixel dimensions. Check the Diagnostics → RT size against your basemap’s resolution.
“It’s making me feel sick”
Section titled ““It’s making me feel sick””Toggle Disable on this device. Your setting is per-device; other players keep the effect.
“It’s too strong / too weak”
Section titled ““It’s too strong / too weak””GM-side: drop Strength to 0.02 for very subtle, raise to 0.06 for noticeable. GM-side: turn Height scale down (0.7) to soften everything globally without re-drawing every region.
“Mobile is laggy”
Section titled ““Mobile is laggy””The system caps the height texture at half resolution on devices with low memory or a coarse pointer. If you’re still seeing performance issues, Disable on this device turns the effect off entirely on that device — every drawn shape is preserved.
Related
Section titled “Related”- 2.5D height & parallax — overview — what the system does and the four authoring tools.
- Drawing regions — polygon, rectangle, circle.
- Ramps — linear gradients.
- Brush — freehand paint.