Skip to content

Add a Parallax Mapping manual page - #1162

Merged
mvaligursky merged 2 commits into
mainfrom
mv-parallax-docs
Sep 4, 2026
Merged

Add a Parallax Mapping manual page#1162
mvaligursky merged 2 commits into
mainfrom
mv-parallax-docs

Conversation

@mvaligursky

@mvaligursky mvaligursky commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Warning

Do not merge until Engine v2.22 is released. parallaxMode, parallaxSamples, parallaxShadowSamples and heightMapBase do not exist in v2.21 (heightMapBase also needs playcanvas/engine#9245 merged), and the two EngineExample embeds point at examples (materials/parallax-mapping, materials/parallax-terrain) whose thumbnails are only served once the 2.22 examples site deploys.

Description

Parallax mapping had no page of its own. The only coverage was one sentence in the model authoring guide about normal-map alpha, and a four row table in the material inspector reference — neither of which mentions that there are now two modes, that the zero level of the relief is configurable, or that the relief can shadow itself.

New page: user-manual/graphics/physical-rendering/parallax-mapping, added to that category between Physical Materials and Image Based Lighting.

  • The two modesPARALLAX_OFFSET (default, single tap) and PARALLAX_OCCLUSION (ray marched), from Add parallax occlusion mapping as an opt-in parallax mode engine#9213.
  • The zero levelheightMapBase, from Add heightMapBase to unify the parallax zero level across modes engine#9245. Both modes read the map the same way: the base value sits at the geometry, relief above it stands out and relief below it sinks in, with 0.5 the mid-grey pivot default and 1 the depth-only reading for white-floor/dark-crack maps.
  • Sample budgetparallaxSamples is a cap, not a fixed count, and the march scales down with view angle and distance until the effect fades out entirely, so distant surfaces cost nothing.
  • Self shadowingparallaxShadowSamples, from Add soft self shadowing of the height field to parallax occlusion mapping engine#9225. Directional lights only, zero disables it, and it only appears where the light rakes across the grain of the height map — including the counter-intuitive part, that lowering the light does not give more of it.
  • Limitations — no silhouette change, the depth buffer sees the flat surface (so shadows, SSAO and the pre-pass do not follow the relief), and the texture slides at grazing angles.

Correction: the material inspector page said parallax "Requires a normal map to be set". That stopped being true in playcanvas/engine#9207; the sentence now points at the new page instead.

The Japanese translation is included for both files.

Notes

  • The inspector page's property table still lists only Heightmap / UV Channel / Color Channel / Strength, because the Editor does not expose the mode, the base or the sample counts yet — Expose the standard material parallax mode in the material inspector editor#2216 tracks that. Worth a follow-up pass once it lands.
  • Verified with a full npm run build: both locales build with no broken links, and the new page appears in the sidebar and renders both example embeds.

🤖 Generated with Claude Code

Parallax mapping had no page of its own: the only coverage was one line in
the model authoring guide and a four row table in the material inspector
reference, neither of which mentions that there are two modes, that they
read the height map differently, or that the relief can now shadow itself.

Also corrects the inspector page, which still claimed parallax requires a
normal map. That stopped being true in engine 2.22.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mvaligursky
mvaligursky merged commit 44ce4d6 into main Sep 4, 2026
3 checks passed
@mvaligursky
mvaligursky deleted the mv-parallax-docs branch September 4, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant