#### <sup>[Ollin](../../../index.md) → [Examples](../../index.md) → [3D](../index.md) → Effects</sup>

---

## Effects

| [![AmbientOcclusion](https://media.ollin.art/examples/3D/Effects/AmbientOcclusion/still-640.jpg?v=0db656ec)](ambientocclusion.md) | [![Atmosphere](https://media.ollin.art/examples/3D/Effects/Atmosphere/still-640.jpg?v=240b4eec)](atmosphere.md) | [![ContactShadows](https://media.ollin.art/examples/3D/Effects/ContactShadows/still-640.jpg?v=666d2617)](contactshadows.md) | [![FrameInterpolation](https://media.ollin.art/examples/3D/Effects/FrameInterpolation/still-640.jpg?v=ff8e6ab9)](frameinterpolation.md) |
|---|---|---|---|
| [AmbientOcclusion](ambientocclusion.md) | [Atmosphere](atmosphere.md) | [ContactShadows](contactshadows.md) | [FrameInterpolation](frameinterpolation.md) |
| [![LensFlare](https://media.ollin.art/examples/3D/Effects/LensFlare/still-640.jpg?v=16e887f8)](lensflare.md) | [![MotionBlur](https://media.ollin.art/examples/3D/Effects/MotionBlur/still-640.jpg?v=5567b2f1)](motionblur.md) | [![PathTraced](https://media.ollin.art/examples/3D/Effects/PathTraced/still-640.jpg?v=6cc33dd0)](pathtraced.md) | [![RayTracedReflections](https://media.ollin.art/examples/3D/Effects/RayTracedReflections/still-640.jpg?v=5a07a8cf)](raytracedreflections.md) |
| [LensFlare](lensflare.md) | [MotionBlur](motionblur.md) | [PathTraced](pathtraced.md) | [RayTracedReflections](raytracedreflections.md) |
| [![SceneDefocus](https://media.ollin.art/examples/3D/Effects/SceneDefocus/still-640.jpg?v=1299ef05)](scenedefocus.md) | [![ScreenSpaceReflections](https://media.ollin.art/examples/3D/Effects/ScreenSpaceReflections/still-640.jpg?v=e167c52e)](screenspacereflections.md) | [![SpecularAntialias](https://media.ollin.art/examples/3D/Effects/SpecularAntialias/still-640.jpg?v=fc004d3a)](specularantialias.md) | [![TemporalAA](https://media.ollin.art/examples/3D/Effects/TemporalAA/still-640.jpg?v=e0b0f49e)](temporalaa.md) |
| [SceneDefocus](scenedefocus.md) | [ScreenSpaceReflections](screenspacereflections.md) | [SpecularAntialias](specularantialias.md) | [TemporalAA](temporalaa.md) |
| [![Upscaling](https://media.ollin.art/examples/3D/Effects/Upscaling/still-640.jpg?v=6140b5b2)](upscaling.md) | [![Volumes](https://media.ollin.art/examples/3D/Effects/Volumes/still-640.jpg?v=7b3957df)](volumes.md) |  |  |
| [Upscaling](upscaling.md) | [Volumes](volumes.md) |  |  |

This group covers the scene-wide realism passes over the 3D frame.

| Sketch | What it shows |
| --- | --- |
| [SceneDefocus](scenedefocus.md) | Depth of field on a 3D scene, defocused by its own depth buffer. A row of orbs is drawn into a render target, then `scene.combined(with: scene.depth, .defocus(...))` racks focus through them. Drag to rack focus by hand. |
| [AmbientOcclusion](ambientocclusion.md) | Screen-space ambient occlusion from the scene's own depth and normals. It adds the soft darkening in crevices and contact gaps that grounds a brightly lit scene. |
| [ScreenSpaceReflections](screenspacereflections.md) | Surfaces reflecting the scene around them. SSR is traced over the frame and shown on a ring of reflective spheres in different metal finishes. |
| [RayTracedReflections](raytracedreflections.md) | Metals mirroring the actual scene, off-screen geometry included and with none of SSR's streaks. Rough surfaces spread their rays for a glossy result, and there is a `reflectionBounces` parameter. Needs a ray-tracing GPU and an environment. |
| [ContactShadows](contactshadows.md) | The fine dark seam that seats an object on the surface it stands on. |
| [Atmosphere](atmosphere.md) | Fog as a cue for distance and height, and physical aerial perspective, both over one colonnade. Hold space to switch. |
| [Volumes](volumes.md) | A column of smoke drawn from a box of density samples, rising past a ball whose shadow cuts a shaft down through it. The `medium` parameter turns it to cloud, fire, ink, or a glowing nebula. |
| [MotionBlur](motionblur.md) | The streak a real camera's open shutter leaves on something moving. |
| [TemporalAA](temporalaa.md) | Edges refined past MSAA by accumulating jittered frames. |
| [SpecularAntialias](specularantialias.md) | Highlights smaller than their pixel, held still instead of crawling. |
| [Upscaling](upscaling.md) | The frame is rendered small and reconstructed at full size, which keeps the frame rate up. |
| [FrameInterpolation](frameinterpolation.md) | The sketch draws half as often, and a generated frame between each pair lets the display keep its rate. |
| [LensFlare](lensflare.md) | The light a camera adds to a picture on its own. |
| [PathTraced](pathtraced.md) | Tune the scene live, then render the same frame offline with a path tracer. |

Run one with `swift run Example-3D-Effects-<Name>`, for example `swift run Example-3D-Effects-SceneDefocus`.
