====== Screen Space ======
===== Core Concept =====
Screen Space techniques operate **directly in the final image space** (the screen), rather than in object or world space.
Instead of computing how light interacts with geometry, they **reuse what the camera has already rendered** and manipulate it to produce the desired visual result.
→ If it is not visible on the screen, it does not exist.
===== Mental Model =====
Three main spaces to think in:
* **World Space** → physical simulation, lighting, PBR
* **View Space** → camera-relative tricks (Matcap, etc.)
* **Screen Space** → pixel-perfect control of final image
Screen Space sits at the top of the stack:
* Not simulation
* Not approximation
* Final perception control
===== Origin =====
Screen Space techniques emerged in real-time rendering (mid 2000s → early 2010s) as a response to performance limitations.
Full physical simulation (ray tracing, global illumination) was too expensive for real-time systems.
Solution:
* Only compute what the camera already sees
* Reuse existing rendered data
* Fake the rest
This led to the rise of:
* SSAO (Ambient Occlusion)
* SSR (Reflections)
* Screen Space shadows and refraction
===== Core Principle =====
All Screen Space techniques share the same law:
Use the rendered image as the primary data source
→ operate in screen coordinates
→ trade physical accuracy for performance and control
=== Strength: ===
* extremely fast
* visually convincing
=== Weakness: ===
* blind to anything off-screen
* can break at edges or occlusions
===== Screen Space Materials =====
A Screen Space material **ignores object-based shading** and instead **displays content aligned with the camera view**.
→ geometry becomes a canvas
→ the screen becomes the reference
Properties:
* Not affected by lighting
* Not affected by environment maps
* Stable regardless of object orientation
* Perfect alignment with output
Typical usage:
* projection mapping (exact output match)
* overlays / UI in 3D space
* compositing layers
* debug / data visualization
==== Key Consequence ====
→ color = texture(screenX, screenY)
The material is evaluated per pixel on screen, not per surface in space.
* UVs become secondary
* normals become irrelevant
* lighting is bypassed
===== Screen Space Reflections (SSR) =====
**SSR** uses screen space to **approximate reflections**.
Instead of tracing rays in 3D:
→ sample the already rendered image
→ reuse visible pixels as reflection data
=== Limitations: ===
* cannot reflect off-screen objects
* breaks at screen edges
* unstable in fast motion
=== Relation to Screen Space materials: ===
* same coordinate system (screen space)
* same dependency on visible data
* different purpose (effect vs display)
===== Other Screen Space Techniques =====
=== Common siblings: ===
* **SSAO** → fake contact shadows using depth
* **Screen Space Refraction** → distort background using screen data
* **SSGI** → approximate bounced light
* **Screen Space Shadows** → cheap shadow approximation
* **Screen Space Decals** → project textures after rendering
=== All share: ===
→ operate on the final image
→ avoid expensive world simulation
===== Real-Time Philosophy =====
Screen Space is **part of a larger doctrine**:
Reality → Simulation → Approximation → Screen Space → Perception
=== In real-time systems: ===
* simulation is expensive
* approximation is common
* screen space is strategic control
===== Practical Use (Immersive / Media Servers) =====
In immersive environments, Screen Space **shifts from optimization to precision**.
Used for:
* projection-aligned rendering
* predictable visual output
* compositing in 3D pipelines
* stable overlays and UI elements
=== Key advantage: ===
→ What you see = what you output
===== Limitations =====
* breaks physical realism
* flat appearance if misused
* dependent on camera view
* no depth awareness beyond visible data
=== Use when: ===
→ control > realism
===== Final Rune =====
Screen Space techniques **do not simulate the world**.
They **control what the audience perceives**, using only what is already visible.
→ Geometry becomes support
→ The screen becomes truth