Sprites, impostors & billboards

Place baked content in 3D — the rich look of heavy geometry for the cost of a flat image.

Sometimes you want the appearance of a complicated 3D object — a detailed sphere, a forest of plants, a swarm of shapes — without paying to render all of it every frame. The trick is to bake the look into an image and place that image in the scene. The render.rasterize node does this, and it gives you two flavours: impostors and sprites.

Impostors: a baked image that keeps its place

Set Rasterize's mode to Raster and it bakes whatever you feed it into a flat image that lives natively in the scene. When the input is 3D geometry, you can wire a camera (the camera.viewport) to choose the viewpoint, or leave it unconnected and let DNA auto-frame the object.

The clever part is re-baking. With the Live option, the image re-captures as you orbit — the flat card keeps facing you and keeps showing the correct 3D look, so it reads as a real object even though it's just pixels. That's an impostor: it stays a raster, continuously refreshed, holding its position and 3D appearance. You get the impression of heavy geometry at the price of an image.

With Baked instead, the capture happens once and stays put — a frozen snapshot, cheapest of all, perfect when the look doesn't need to change with the camera.

Because the result is a real image, you can feed it straight into a feedback loop (think glowing trails), run it through filters, or move it with a content-space transform. See Rasters (images) and Loops & feedback.

Sprites: the bake as textured points

Switch Rasterize's mode to Sprite and the baked image is attached to a point and placed in the 3D scene as a textured sprite. Now you're working with Points — light, fast, and easy to multiply.

A single sprite carries one baked image. How that sprite is oriented is the next choice.

Billboard vs card

Sprite mode has a Face camera toggle:

Reach for a billboard when you want many cheap, always-facing flecks. Reach for a card when the sprite needs to lie flat on the ground, lean against a wall, or otherwise stay put in 3D.

Many at once

Rasterize bakes exactly one sprite. To fill a scene with them, hand that single sprite to the utility.iterator, which multiplies it into as many instances as you like — each placed, scaled, and rotated however you drive it. A common pattern:

Object → Rasterize (Sprite) → Iterator → a field of instanced impostors

This is how you turn one expensive object into a whole crowd that still plays back in real time.

Billboards shine here: thousands or millions of camera-facing sprites stay smooth where the same count of full geometry would crawl.

Choosing between them

ParameterTypeDefault
inputOneOf([FieldOf(Color), CollectionOf(Crc), Collection])
modeString"Raster"
face_cameraBooleantrue
cameraOneOf([Camera3D])
resolution_modeString"Canvas"
res_widthNumber1024
res_heightNumber1024
res_scaleNumber1
paddingNumber0
fit_paddingNumber0
supersampleString"1×"
formatString"16-bit float"
premultiplyBooleantrue
color_spaceString"Linear"
backgroundString"Transparent"
background_colorColorrgba(0.00, 0.00, 0.00, 1.00)
reprojectString"Live"
bake_frameNumber0
strengthNumber1

See also