Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| realtime:screenspace [2026/04/16 18:56] – [Mental Model] mh | realtime:screenspace [2026/04/16 19:19] (current) – [Core Concept] mh | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| 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. | 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. | ||
| - | <WRAP center tip> | + | |
| - | **→ If it is not visible on the screen, it does not exist.** | + | |
| - | </ | + | |
| Line 36: | Line 35: | ||
| Solution: | Solution: | ||
| - | → Only compute what the camera already sees | + | * Only compute what the camera already sees |
| - | → Reuse existing rendered data | + | |
| - | → Fake the rest | + | |
| This led to the rise of: | This led to the rise of: | ||
| Line 57: | Line 56: | ||
| </ | </ | ||
| - | Strength: | + | |
| + | === Strength: | ||
| * extremely fast | * extremely fast | ||
| * visually convincing | * visually convincing | ||
| - | Weakness: | + | === Weakness: |
| * blind to anything off-screen | * blind to anything off-screen | ||
| * can break at edges or occlusions | * can break at edges or occlusions | ||
| Line 68: | Line 69: | ||
| ===== Screen Space Materials ===== | ===== Screen Space Materials ===== | ||
| - | A Screen Space material ignores object-based shading and instead displays content aligned with the camera view. | + | A Screen Space material |
| - | Think of it as: | + | |
| - | + | → the screen becomes the reference | |
| - | → geometry becomes a canvas | + | |
| - | → the screen becomes the reference | + | |
| Properties: | Properties: | ||
| Line 90: | Line 89: | ||
| - | ===== Key Consequence ===== | + | ==== Key Consequence ==== |
| + | |||
| + | → color = texture(screenX, | ||
| - | < | ||
| - | color = texture(screen_x, | ||
| - | </ | ||
| The material is evaluated per pixel on screen, not per surface in space. | The material is evaluated per pixel on screen, not per surface in space. | ||
| - | → UVs become secondary | + | * UVs become secondary |
| - | → normals become irrelevant | + | |
| - | → lighting is bypassed | + | |
| ===== Screen Space Reflections (SSR) ===== | ===== Screen Space Reflections (SSR) ===== | ||
| - | SSR uses screen space to approximate reflections. | + | **SSR** uses screen space to **approximate reflections**. |
| Instead of tracing rays in 3D: | Instead of tracing rays in 3D: | ||
| - | → sample the already rendered image | + | |
| - | → reuse visible pixels as reflection data | + | → reuse visible pixels as reflection data |
| - | Limitations: | + | === Limitations: |
| * cannot reflect off-screen objects | * cannot reflect off-screen objects | ||
| Line 118: | Line 116: | ||
| * unstable in fast motion | * unstable in fast motion | ||
| - | Relation to Screen Space materials: | + | === Relation to Screen Space materials: |
| * same coordinate system (screen space) | * same coordinate system (screen space) | ||
| Line 127: | Line 125: | ||
| ===== Other Screen Space Techniques ===== | ===== Other Screen Space Techniques ===== | ||
| - | Common siblings: | + | === 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: | + | === All share: |
| - | → operate on the final image | + | |
| - | → avoid expensive world simulation | + | → avoid expensive world simulation |
| ===== Real-Time Philosophy ===== | ===== Real-Time Philosophy ===== | ||
| - | Screen Space is part of a larger doctrine: | + | Screen Space is **part of a larger doctrine**: |
| < | < | ||
| Line 149: | Line 147: | ||
| </ | </ | ||
| - | In real-time systems: | + | === In real-time systems: |
| - | → simulation is expensive | + | * simulation is expensive |
| - | → approximation is common | + | |
| - | → screen space is strategic control | + | |
| ===== Practical Use (Immersive / Media Servers) ===== | ===== Practical Use (Immersive / Media Servers) ===== | ||
| - | In immersive environments, | + | In immersive environments, |
| Used for: | Used for: | ||
| Line 167: | Line 165: | ||
| * stable overlays and UI elements | * stable overlays and UI elements | ||
| - | Key advantage: | + | === Key advantage: |
| - | → What you see = what you output | + | |
| Line 179: | Line 177: | ||
| * no depth awareness beyond visible data | * no depth awareness beyond visible data | ||
| - | Use when: | + | === Use when: === |
| - | → control > realism | + | |
| ===== Final Rune ===== | ===== Final Rune ===== | ||
| - | Screen Space techniques do not simulate the world. | + | Screen Space techniques |
| - | They control what the audience perceives, using only what is already visible. | + | They **control what the audience perceives**, using only what is already visible. |
| - | → Geometry becomes support | + | |
| - | → The screen becomes truth | + | → The screen becomes truth |