Materials
How a surface reacts to light: its colour, its shine, and whether it reads as metal, plastic, ink or smoke.
Bind a material to geometry and the built-in renderer shades it. The same material works everywhere it is used, so a shape authored in 2D and lifted into 3D keeps its look.
A flat 2D fill with no material bound is the one thing that starts outside this. It renders unlit: it takes no light, receives no shadow, and skips the lighting work altogether, which is what a graphic shape sitting on a canvas usually wants. Bind a material to it and it shades and receives shadows like anything else.
Shading modes
Every material picks one mode.
PBR. The physically based look. Base colour arrives on the
channelspin, thenmetallicandroughnessdo the work. Low metallic with high roughness is chalky plastic; high metallic with low roughness is a polished mirror. This is the default and the one most work uses.Glass. A transmissive, see-through surface. Instead of a metallic and roughness balance, the look is governed by
ior, how strongly the surface bends light passing through it, at 1.5 for glass and 1.33 for water.absorption_colorandabsorption_densitytint and darken what is behind it, overthicknessworld units. Pushroughnessup for frosted glass rather than clear. Windows, bottles, gems, liquids.Toon. Flat, cel-shaded bands instead of smooth falloff, for illustrative, graphic or hand-drawn looks.
bandsis the number of steps, 3 by default, andedge_softnesshow hard the step is.specular_intensityandspecular_sizeplace the highlight,rim_intensityandrim_widththe edge light.Volume. Participating media (smoke, fog, fire, clouds) rather than a surface. It renders along its own path; see Volumes below.
Start in PBR and treat roughness as the main expressive dial. Sweeping it from 0 to 1 takes a surface from mirror-sharp to soft and matte without touching anything else.
Beyond the three core dials
emissiveandemissive_intensitymake a surface glow on its own, for neon, screens and embers. Intensity is 0, so emission is off until you raise it. Emissive surfaces drive Post effects like bloom.transmissionmakes a PBR surface partly see-through, with the same refraction and absorption controls. For a fully transmissive material, switch the mode to Glass, where those controls drive the whole look.aodeepens contact shadows in creases and cavities.alphaandalpha_modehandle plain opacity, either Blend for real alpha or Hashed for a screen-door dither that keeps the surface in the depth buffer.Texture maps feed an image into
channels,normal,metallic,roughness,aooremissive. Normal maps add fine surface detail without extra geometry. See Importing media for loading images.
Five more lobes stack on top of the base for specific materials: clearcoat for a lacquered second layer, anisotropy for brushed metal, sheen_color for cloth and velvet, iridescence for the thin-film shift on oil and beetle shells, and subsurface_color with subsurface_weight for the translucent lift on skin and wax. Each is off at 0 or black.
Any of these channels can be a flat value, a procedural look driven by a Fields, or an The Expression language.
Photon-mapped caustics come with the material rather than from a toggle. As soon as the scene holds something refractive, the caustics pass runs and light focuses through it onto whatever is behind.
Volumes
A Volume is participating media rather than a surface: smoke, fog, fire, clouds. Density comes from the volume data. What the material sets is how light behaves inside it: scattering, absorption, phase_g, ambient and fog_distance. Volumes are shaded and rendered along their own path. See Volumes and Volume Render.
Per-element materials
Materials live on a Collections alongside positions and colours, so every element can carry its own look without splitting the graph.
The simplest version is the @Cd colour attribute. Write a per-row colour with the Points node, an The Expression language or a Fields, and each element renders in its own colour. An authored @Cd replaces the material's base colour and nothing else, so you can bind one material and then tint individual elements on top. Only a colour you deliberately write counts as authored: the default white that elements start with does not override a bound material.
For richer variation, bind a whole material per row on the @material column: some rows glass and others metal, in one collection and one render. A per-row material outranks the collection's own.
Per-row materials resolve per row on the mesh and deferred paths. A batch of sprites resolves some of its look from row 0 alone, so mixing materials across a sprite batch does not read the way mixing them across meshes does.