Rasterizing
Bake shapes, geometry, or a field into a flat image that lives in the scene — ready to feed feedback loops, filters, and content-space transforms.
The render.rasterize node takes whatever you wire in — Analytic shapes, 3D geometry, splats, or a colour field — and renders it into a raster image. That image becomes ordinary data in your scene, so you can blur it, transform it, or loop it back into itself. Think of it as "freeze this look into pixels, then keep working with the pixels."
Why bake to a raster
Some of the most fun effects only become possible once your content is an image:
Feedback / ping-pong trails. Wire
circle → Rasterize → feedback → back in, and each cook stamps the previous frame, leaving glowing trails. See Loops & feedback.Content-space transforms. Once a shape is a raster you can scale, rotate, and slide the pixels — not the shape's control points — for warps and smears.
Filters and post. Image filters expect pixels. Rasterize is how vector shapes and 3D scenes get there.
Caching a look. Bake an expensive build once and reuse the flat result downstream.
The baked image lives in the scene exactly like a loaded image does — see Rasters (images).
2D vs 3D content
Rasterize handles both, and picks the right approach for you:
Flat 2D content (Analytic shapes, text, drawn paths) bakes to fit the canvas, with no camera needed.
3D content (geometry, meshes) is captured through a camera. Wire a camera.viewport into the
camerainput to choose the viewpoint, or leave it unconnected and DNA auto-frames the content for you.
Feed a 3D mesh straight in and the conversion stays on the GPU, so a sphere or imported model bakes cleanly. If you see a 3D object vanish on bake, check that it's reaching Rasterize as real geometry and not already flattened to loose points upstream.
Raster or sprite
The mode control decides what comes out:
Raster (default) gives you the baked image as data — the path for feedback, filters, and content-space transforms described above.
Sprite places the baked image into the 3D scene as a textured point. With
face_cameraon it's a camera-facing billboard (cheap, flat, scales to millions); with it off it's a fixed quad you can tilt with point orientation.
Rasterize bakes exactly one sprite. To scatter many copies, feed it into the utility.iterator (object → Rasterize (Sprite) → Iterator → many instances). For the bigger picture on points-as-textures versus continuously re-baked 3D looks, see Sprites, impostors & billboards.
The output type changes with the mode, so a wire built for a raster will correctly flag as needing reconnection if you switch to Sprite. Just re-wire it.
| Parameter | Type | Default |
|---|---|---|
input | OneOf([FieldOf(Color), CollectionOf(Crc), Collection]) | — |
mode | String | "Raster" |
face_camera | Boolean | true |
camera | OneOf([Camera3D]) | — |
resolution_mode | String | "Canvas" |
res_width | Number | 1024 |
res_height | Number | 1024 |
res_scale | Number | 1 |
padding | Number | 0 |
fit_padding | Number | 0 |
supersample | String | "1×" |
format | String | "16-bit float" |
premultiply | Boolean | true |
color_space | String | "Linear" |
background | String | "Transparent" |
background_color | Color | rgba(0.00, 0.00, 0.00, 1.00) |
reproject | String | "Live" |
bake_frame | Number | 0 |
strength | Number | 1 |
Rasterize vs the Render node
Rasterize is a single-input content converter — point one piece of content at it and get an image back. The full The render node is the scene-wide renderer, with lights, materials, and extra output passes like depth and normals. If you want those passes, reach for Render; Rasterize deliberately keeps to one clean image so it doesn't half-duplicate the renderer.