Skip to content

Commit 099864b

Browse files
committed
[docs] scene look: the post-processing stack
A new page for layer 1 of the look model, written for someone building a look rather than reading the architecture: - adding and ORDERING effects, and what the "Effects: N, passes: M" line is for (most effects merge into one fullscreen shader; ambient occlusion needs its own pass and splits the run wherever it sits, so it belongs at one end). - ambient occlusion's parameters, which had no controls at all before this release, including why Quality and Half resolution default to Auto. - LUT grading, and that the file travels to peers and inside a .tpscene by itself. - tone mapping taking over from the renderer's curve, so nothing is graded twice. - the visibility split, stated plainly: the look renders for EVERYONE because it is part of the scene; what is local is your right to switch it off. Turning an effect off in the stack changes it for everybody, and the page says which control does which. - the limits, unvarnished: no post in VR, the camera PiP shows the plain image, depth-less sprites and particles are unaffected, GLTF cannot carry it, and the mobile-driver failure with the one switch that fixes it. - what happens to an effect from a NEWER version (kept, shared, marked unsupported, never quietly deleted). camera.md's view-mode table now says these are SHADING modes and links across — that page previously implied Shaded + AO was the whole story, and it is the place someone looks when the scene's look is not what they expected. index.md gains the feature line; mkdocs.yml the nav entry after Shader Nodes.
1 parent 92ba71e commit 099864b

4 files changed

Lines changed: 123 additions & 0 deletions

File tree

docs/camera.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ Three per-device render modes under **Viewport — this device**:
2828

2929
Ambient occlusion and wireframe are **desktop-only** and never shown to peers. AO detail follows your shadow-quality setting (below), so lowering shadow quality also lightens the AO cost.
3030

31+
These are SHADING modes — they are not how you see the scene's own look. A
32+
[scene look](post-processing.md) renders for everyone in every mode except Wireframe, and
33+
you switch it off for yourself under **Overrides — this device**. If the scene sets its own
34+
ambient occlusion, **Shaded + AO** switches off and says so: the scene's setting is used
35+
instead of yours.
36+
3137
The **Show light helpers** toggle here draws icons for lights so you can see where they are.
3238

3339
## Camera lens

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ You build scenes from primitives, imported models and packs, wire behavior with
2929
- [Mesh Editing](mesh-editing.md) — vertices, edges and faces: extrude, bevel, knife, loops and mirroring.
3030
- [Snapping](snapping.md) — line things up: grid steps, surfaces, and snapping onto real geometry.
3131
- [UV & Textures](uv-editor.md) — unwrap a model, paint on it, and give parts of it their own materials.
32+
- [Scene Look (Post-processing)](post-processing.md) — grade the finished frame: ambient occlusion, colour, bloom, grain. Saved with the scene and shared with everyone.
3233
- [Animation](animation.md) — keyframe clips with a timeline, curves, markers and onion skin.
3334
- [Physics & Simulation](physics.md) — mass, joints, dropping and throwing objects.
3435
- [Terrain & Sculpting](terrain.md) — add ground and shape it with a brush.

docs/post-processing.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Scene Look (Post-processing)
2+
3+
Grade the finished frame. A **scene look** is a stack of screen-space effects — ambient
4+
occlusion, colour grading, bloom, vignette, film grain, pixelation — applied over the
5+
whole viewport after the scene is drawn.
6+
7+
The look is **part of the scene**. It replicates to everyone in the session the moment you
8+
change it, it is saved with the file, and it undoes like any other edit. Nobody has to
9+
switch anything on to see what you made.
10+
11+
## Opening it
12+
13+
**Configure Scene ▸ Post-processing** — or right-click the viewport and choose
14+
**View ▸ Post-processing…**, which opens the panel straight at that section.
15+
16+
## Building a look
17+
18+
Press **+ Add effect** and pick one from its family:
19+
20+
| Family | Effects |
21+
|---|---|
22+
| Ambient occlusion | Ambient occlusion |
23+
| Colour grading | Tone mapping, Hue / saturation, Brightness / contrast, LUT |
24+
| Stylize | Dot screen |
25+
| Camera FX | Bloom, Vignette, Film grain, Chromatic aberration, Pixelation, Scanlines |
26+
| Anti-aliasing | SMAA |
27+
28+
Each row has a grip to **drag it up or down**, a checkbox to switch it off without losing
29+
its settings, and a **** to remove it. Click a row's name to open its parameters.
30+
31+
**The order matters.** The stack runs top to bottom over the frame, so grading placed
32+
before a vignette darkens differently than grading placed after it. Drag to rearrange, or
33+
use the ↑ ↓ buttons.
34+
35+
### What the "passes" line means
36+
37+
Under the enable checkbox you will see something like:
38+
39+
> Effects: 4, passes: 2 (2 merged into a shared pass)
40+
41+
Most effects are combined into a **single fullscreen shader**, so eight of them usually
42+
cost far less than eight times one. Ambient occlusion is the exception — it needs a pass of
43+
its own, and it splits the run wherever you place it. That line is there so you can see the
44+
cost of what you are building; if you care about performance, keep the AO entry at one end
45+
of the stack rather than the middle.
46+
47+
## Ambient occlusion
48+
49+
Soft contact shadows where surfaces meet. Its parameters had no controls at all before this
50+
release:
51+
52+
- **Radius** — how far a surface looks for things that occlude it, in world units.
53+
- **Intensity** — how dark the occlusion gets.
54+
- **Falloff** — how quickly the effect fades with distance.
55+
- **Quality** and **Half resolution** — both default to **Auto**, which follows each
56+
viewer's own shadow-quality setting, so everyone keeps their own performance trade-off.
57+
Pin them when the look matters more than the frame rate.
58+
59+
If your scene sets its own ambient occlusion, the personal **Shaded + AO** button in
60+
**View** switches off and says so — the scene's setting is used instead. Two AO passes would
61+
double every contact shadow and cost twice as much.
62+
63+
## Colour grading with a LUT
64+
65+
A **LUT** (lookup table) is the standard way to move a grade between tools. Put a `.cube`
66+
file — or a LUT strip image — in the [Explorer](explorer.md), then pick it in the LUT
67+
effect's **LUT file** row.
68+
69+
The file is shared with your peers automatically. Anyone who does not have it asks for it,
70+
so people who join later get the grade too, and it travels inside a saved
71+
[`.tpscene`](saving.md).
72+
73+
**Smooth interpolation** (tetrahedral sampling) is slower but avoids banding on small LUTs.
74+
75+
## Tone mapping
76+
77+
Tone mapping decides how bright values are compressed into what your screen can show.
78+
While a **Tone mapping** effect is in the stack it takes over from the renderer's own
79+
curve, so the image is never mapped twice — pick the curve you want (AgX, ACES Filmic,
80+
Neutral, Reinhard, Cineon, Uncharted 2) and set its white point and middle grey.
81+
82+
## Seeing it, or not
83+
84+
The look renders for everybody. What is local is your right to switch it off:
85+
86+
- **View ▸ Overrides — this device** has a **Scene look (post-processing)** checkbox. Turn
87+
it off if your machine struggles, or if an effect is uncomfortable to look at. Your peers
88+
still see the scene as its author made it.
89+
- **Wireframe** skips post-processing entirely — it is a diagnostic view.
90+
- Turning an effect off in the stack, or unticking **Scene look enabled**, changes it *for
91+
everyone* — that is scene data, not a personal setting.
92+
93+
## Limits worth knowing
94+
95+
- **Post-processing does not run in VR.** The effects are skipped in a headset; objects
96+
still look the same, and materials made with the [Shader Graph](shader-graph.md) are
97+
unaffected.
98+
- **The camera preview inset (PiP) shows the plain image**, without the look.
99+
- **Sprites, billboarded avatar photo cards and particles** do not write depth, so effects
100+
that read depth do not affect them. A strong stylize effect makes that more visible than
101+
ambient occlusion ever did.
102+
- **A GLTF export does not carry the look** — glTF has nowhere to put screen-space effects.
103+
The app tells you when you export. Save a **Scene (`.tpscene`)** to keep it.
104+
- On some mobile GPUs fullscreen effects are mis-rendered by the driver: the viewport can
105+
freeze on a stale frame while you move. If that happens, switch the scene look off in
106+
**View ▸ Overrides**.
107+
- Very old browser builds have a shader bug with fullscreen effects; the app detects them,
108+
skips the look and explains once.
109+
110+
## Effects that come from a newer version
111+
112+
If someone using a newer build adds an effect this one does not know, it is shown in the
113+
list as **unsupported** and left completely alone — it is still saved, still shared, and
114+
still there for people whose version does understand it. Nothing you do to the rest of the
115+
stack deletes it.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ nav:
1414
- UV & Textures: uv-editor.md
1515
- Shader Graph: shader-graph.md
1616
- Shader Nodes: shader-nodes.md
17+
- Scene Look (Post-processing): post-processing.md
1718
- Animation: animation.md
1819
- Physics & Simulation: physics.md
1920
- Particle Effects: particles.md

0 commit comments

Comments
 (0)