Full version
Show Lite only

Documentation

Blender 3.6.x Cycles

Before You Start

Follow these steps to set up your scene correctly before using Light Painter. Skipping these will result in the add-on not working or the paint not being visible in your renders.

Switch to Cycles Render Engine
Light Painter relies on Cycles' node-based light textures (gobos). Go to Render PropertiesRender Engine and set it to Cycles. EEVEE does not support the light texture nodes that this add-on creates. Since the add-on relies heavily on shader computation, it is strongly recommended to set Device to GPU Compute under Render Properties for a significant performance boost — CPU rendering will still work, but GPU will be considerably faster.
Add a Spot Light or Area Light
Light Painter works exclusively with Spot and Area lights. Point lights and Sun lights are not supported because they don't have a directional texture projection. Add one via AddLightSpot or Area, and point it at your scene.
Set a Small Spread / Radius Value
For sharp and precise painting results, keep the light’s physical size small. In Light Properties:
Spot Light — use a small Radius (e.g. 0.0 – 0.1 m). Keep Spot Size below 160° to reduce distortion and maintain a cleaner projection.
Area Light — set Size according to your scene scale (e.g. 5 – 30 m), and keep Spread fairly low (e.g. 0.01 – 0.5).

You can change Radius or Spread later for softer lighting, but while painting, smaller values help you see details clearly.
Select the Light in the Panel & Start Painting
Open the Light Painter panel in the 3D Viewport sidebar (N key → Lighting tab). Pick your light in the Light dropdown, choose a texture resolution, and click Reset Light to initialize the node setup. Then select the Brush or Gradient tool from the toolbar and start painting!
Quick checklist: Cycles enabled → Device set to GPU Compute → Add Spot or Area light → Set Correct Radius / Spread / Size → Pick Light in panel → Reset Light → Paint.

Light Source

Choose which light to paint on and set the base texture resolution.

Light Object Pointer

The Spot or Area light whose texture you want to paint on. Use the eyedropper or dropdown to pick a light from your scene.

Light Texture Resolution Enum

Resolution of the light texture (gobo) image that stores your paint. Higher = finer detail, more memory, slower.

512px 1024px 2048px 4096px
Reset Light Operator

Reinitializes the light texture, resets all layers back to a single default one. Use this after changing resolution or if the shader nodes appear broken.

Note: The light texture proportion is tied to the light size. When the size changes, all layers are automatically reset to blank with the updated proportions. If the size was changed accidentally, you can undo it using the standard shortcut (Cmd + Z)

Layers System

A Photoshop-style layer stack for each light. New layers are added at the top. Each layer has its own image, blend mode, opacity, visibility toggle, and transform. Layers are composited from bottom to top.

How layers are stored: Each layer creates a Blender Image datablock that holds its pixel data. The add-on also writes temporary .exr files to a temp folder on disk — these are required for the layer system to function correctly (undo, persistence, layer compositing). The temp files are cleaned up automatically when the add-on is disabled or Blender is closed. Layer metadata (names, blend modes, order, transforms) is saved inside the .blend file itself.
Layer Controls

+ — adds a new empty layer above the active layer / deletes the active layer.

— reorder the active layer up (composites later, on top) or down (composites earlier, below).

Duplicate — creates an exact copy of the active layer including image data and all settings. Full

Merge Visible — flattens all visible layers into one; hidden layers are preserved. Full


Active Layer

Controls for the selected (active) layer.

Blend

Opacity Float

Master opacity of the layer. At 0 the layer is fully transparent; at 1 it contributes at full strength.

Default: 1.0
Blend Mode Enum

How this layer's pixels combine with the layers below. Standard compositing modes — Mix (alpha-over), Multiply (darken), Screen (lighten), Add (additive light), Subtract (remove light), Overlay (contrast boost), Soft Light (gentle tinting).

Mix Multiply Screen Add Subtract Overlay Soft Light

Image Tex → Active Layer Full

Source Image Image

Pick any image already loaded in Blender. The image will be resized to match the light texture resolution and written into the active layer, replacing its contents.

Fill Color → Active Layer

Fill Color RGBA

Fill the active layer with a solid color. Useful for resetting the layer color or adding an initial tint. White = full light, black = no light. Alpha 0 clears the layer entirely. Click Apply to fill.

Default: (0, 0, 0, 1) — black, opaque

Layer Transform

Non-destructive transforms on the active layer's image within light UV space.

Offset / Rotation / Scale / Pivot Transforms

Offset — translates the layer in UV space (1.0 = full texture width/height).

Rotation — rotates around the pivot point.

Scale — resizes from the pivot (below 1 = enlarge, above 1 = shrink, non-uniform supported).

Pivot — center for rotation/scale in UV space; (0.5, 0.5) = texture center, (0, 0) = bottom-left, range 0–1.

Offset: (0, 0) Rotation: Scale: (1, 1) Pivot: (0.5, 0.5)
Reset Transform Operator

Resets all transform values to defaults.

Active Layer Shortcuts (available when Brush or Gradient tool is selected):
Hold D + click & drag mouse to move layer   Hold F + click & drag mouse to rotate layer   Hold V + click & drag mouse to scale layer

Paint Surface Full

Controls which objects receive paint and which should be treated as transparent.

Paint On

Choose which meshes are valid for paint.

Controls the scope of paintable geometry.

All Single Object Collection
All: Paint on every mesh on scene Single Object: Only the chosen mesh Collection: Only meshes in the chosen collection

Skip Transparent

The add-on does not automatically detect transparent materials. If your scene contains objects that should let light pass through, you must mark them here manually — otherwise the depth pass treats them as solid and they will incorrectly block light and receive paint.

Objects listed here are excluded from both receiving paint and blocking light. They become invisible to the light's depth pass, so light passes through them as if they don't exist.

None Single Object Collection
When to use: Glass windows, translucent curtains, fog/dust volume boxes, wireframe or grid meshes, anything with a transparent/translucent shader, and objects used for volumetric effects. If light is being incorrectly blocked by a see-through object, add it here.

Paint Mode

Controls the coordinate space and color blending method used during painting. In both modes, you paint through the camera/viewport — the difference is how the paint projects onto the light texture.

Paint Space Enum

In both modes you paint through the camera/viewport view. The difference is how the brush shape is projected onto the light texture:

Camera Space Light Space

Camera Space: The paint appears exactly as shown on screen. The brush falloff in the viewport maps 1:1 to the painted result — what you see is what you get. Gradient colors are blended in screen space before being projected onto the light texture. Full

Light Space: Brush stroke calculations (shape, size, and falloff) and gradient blending are performed in light texture space — only the brush center position and the gradient start and end points are taken from the viewport. As a result, the paint may appear distorted in the viewport depending on the light's distance and angle.

Important: Light Painter uses viewport projection to paint onto the light texture. When a light source has a physical size, light can bleed beyond the painted region — even into shadowed areas and outside the light texture boundary. This is caused by Blender's internal algorithm for how light spreads. The current version of the add-on does not account for this effect when painting, though a future update may introduce edge protection based on light size and distance to compensate for it.
When to use Light Space: When you need the result to look more "natural" — since painting is done in the light's own coordinate space, colors and shadows follow the light's behavior directly. It can also be useful as a fallback when Camera Space Paint fails to cover some light texels, which can happen with geometry at steep angles to the light or in complex scenes where the camera-to-light projection misses some texels along shadow boundaries.
Camera Space
Light Space
Camera Space
Light Space
Drag the slider to compare Camera Space Mode vs Light Space Mode. Use the tabs to switch between the scene view and the light texture result.
Color Space (Blend Space) Enum Full

The color space in which paint is blended over existing texture pixels. Different spaces produce different midtone hues when mixing. See Color Spaces.

sRGB Linear OKLab OKLCh

Brush Tool

Mode
Brush Mode

Switch between painting and erasing.

Paint Erase
Color default: white

The color applied by each brush stamp. Disabled when Erase mode is selected.

Shape
Size default: 32

Radius of the brush circle. In Camera Space the unit is viewport pixels — the brush is exactly the size you see on screen. In Light Space the unit is light texture texels — the brush maps directly to the gobo resolution. Range: 1 – 1024.

Hardness default: 0.5

Edge sharpness. At 0 the brush fades softly from center to edge. At 1 it has a crisp hard boundary.

Strength default: 1.0

Maximum opacity cap per stroke. Even at full flow, the stroke won't exceed this value.

Flow default: 1.0

Rate of paint accumulation per stamp. Low values (0.05 – 0.2) build up colour gradually; at 1.0 full colour is applied in a single stamp.

Falloff Full
Falloff Curve default: Cubic

Mathematical curve controlling how opacity transitions from the brush center to its edge.

Linear Cubic Quintic Gaussian Cosine² Blended
Gamma default: 1.0

Gamma correction applied on top of the falloff curve. Below 1 = softer edges, above 1 = harder edges. Range: 0.1 – 2.0

γ = 2.0
γ = 1.5
γ = 1.0
γ = 0.5
γ = 0.1
Post-processing Full
Add Blur default: Off

Applies a blur to the brush stroke after each stamp. Smooths out jagged edges and creates softer paint effects.

Blur Radius default: 1 texel
when Blur is ON

Measured in light texture texels, not screen pixels. A radius of 1 = 1 pixel in the actual light texture, regardless of viewport zoom.

Blur Kernel default: SCurve
when Blur is ON

Shape of the blur kernel. SCurve is fast but may look boxy at large radii. Gaussian stays rounder and smoother.

SCurve Gaussian
Blur ON Blur OFF
Brush settings: Hardness = 1.0, Blur = 1 texel, Kernel = Gaussian. The left stroke has blur applied; the right stroke is without blur.
Camera Space Only Full
Brush Clipping default: ON

when Blur is OFF

Prevents painting texels at the edge of the brush stroke footprint to avoid bright halos at the boundary. Most visible effect when painting near the edge of shadow.

OFF
ON
Drag to compare. Left: bright halo at edge. Right: clean boundary with Brush Clipping enabled.
Light Space Only Full
Surface Projection default: Raycast

How the mouse position is mapped to the light texture when painting in Light Space.

Raycast Plane
Raycast

Traces a ray from the camera through the mouse position and hits the scene geometry each frame. Accurate on curved and complex surfaces. When the cursor moves over an area with no geometry (empty space, sky), the add-on automatically falls back to Plane mode until the cursor returns to a surface.

Plane

Establishes a paint plane on the first click, then projects all mouse positions onto that plane. Better for complex surfaces as it avoids jitter on noisy or high-poly geometry.

Raycast
Plane
Raycast
Plane
Drag to compare Raycast vs Plane projection. Use tabs to switch between the scene view and the light texture result.
Selection Shortcuts (when a selection is active):
Ctrl+D Clear selection   Ctrl+I Invert selection   Ctrl+G Move selection

Gradient Tool Full

Click and drag in the viewport to draw a gradient between two points.

Shape
Type default: Linear

Shape of the gradient.

Linear Radial
Falloff default: Smooth

Interpolation curve controlling how colors blend along the gradient.

Smooth Linear Ease In Ease Out
Color
Color Space default: OKLCh

The space in which the two endpoint colors are interpolated. Different spaces produce different midtone hues. See Color Spaces.

sRGB Linear OKLab OKLCh
Start Color (A) default: black

Color at the drag start point. In radial mode this is the center.

Start Strength (A) default: 1.0

Opacity at the start point of the gradient.

End Color (B) default: white

Color at the drag end point. In radial mode this is the outer edge.

End Strength (B) default: 1.0

Opacity at the end point of the gradient.

Swap A/B

Swaps start and end colors (and their strengths) with one click. Reverses the gradient without re-dragging. Press X to switch colors during preview

Post-processing
Add Blur default: Off

Adds subtle noise/blur to the gradient to reduce banding artifacts, especially visible at lower texture resolutions.

Gradient Tool: The Gradient tool always uses the Raycast method when in Light Space mode — the start and end points of the drag are raycast onto the scene to determine their positions in the light's UV space. This setting only affects the Brush tool.
Selection Shortcuts (when a selection is active):
Ctrl+D Clear selection   Ctrl+I Invert selection   Ctrl+G Move selection

Selection Tool Full

Create a mask that restricts painting — areas outside the selection are protected.

Selection Shape Enum

Geometric method to draw the selection.

Rectangle Polygon Lasso Brush
Rectangle: Click-drag box Polygon: Click points; Enter to close Lasso: Freehand drag; release to close Brush: Paint with a circular brush (size 1–500, default 35)
Selection Mode Enum

How a new selection interacts with the existing one.

New Add Subtract Intersect

While making a selection, hold Shift to switch mode to Add, Ctrl to Subtract, or Alt to Intersect with the existing selection.

Clear Operators

Removes the mask so all pixels are paintable.

Invert Operators

Swaps selected/unselected.

Selection Shortcuts: Ctrl+D Clear selection   Ctrl+I Invert selection   Ctrl+G Move selection

Preview Mode Full

Controls the real-time overlay that displays the painting result directly in the viewport as you paint.

Overlay Mode

Paint Only — previews only what is currently being drawn, while the rest of the scene renders normally. All Masks — overlays the full light texture and mask over the entire viewport, highlighting unpaintable areas in red, so you can see exactly where the light reaches and where it's blocked.

Paint Only All Masks
Falloff Mode

Raw Color — displays the color exactly as it will be written to the light texture. Light Falloff — shows the real result as it will appear in the scene, including surface normal contribution, distance attenuation, tonemapping, exposure, gamma, and all other factors that define how Blender renders the light.

Raw Color Light Falloff
Light Blur

Enabled by default. When ON, the preview mimics how Blender spreads the light based on the light source's physical size — matching the actual light edge softness you'll see in the final render. Without this, the preview ignores the light source size entirely, so the light texture appear perfectly sharp regardless of how large the light is. The Multiplier (default 1.0) scales the auto-calculated blur amount — above 1 = exaggerated softness, below 1 = sharper than real.


Advanced Settings Full

Defaults work for most scenes — only tweak if you see artifacts.

Near / Far Clip

Light frustum clipping. Increase Far for large scenes; decrease Near if close objects clip.

Near: 0.05 Far: 80.0
Surface Bias

Offsets paint along normals to prevent shadow acne. Increase if speckled.

Default: 1.0
Shadow Softness / Bleed Reduction

Softness — PCF blur (1 = sharp, 5 = soft). Bleed Reduction — VSM power to prevent light leaking through thin objects.

Softness: 2 Bleed: 10.0
Capture Resolution Light + Camera

Resolution of internal depth buffers for shadow edges and paint placement. Both default to 2048.

512 1024 2048 4096

Color Spaces

Defines how colors are blended and interpolated in gradients. The choice affects what the in-between colors look like when mixing two colors together.

OKLCh

Blends colors by rotating through hues, keeping them vivid and saturated in the middle. Great for colorful gradients. Can produce a slight brightness boost at the midpoint.

OKLab

Blends colors while keeping brightness consistent throughout. Transitions look smooth and even, though the midpoint may appear slightly less saturated.

Linear

Mimics how real colored lights mix in the physical world. Accurate and natural, but the midpoint can appear a bit brighter than expected.

sRGB

A straightforward blend in display color space — the same way most image editors mix colors. Middle colors tend to look darker.

If the embed doesn't load, your browser may block third-party iframes. Use the direct link below instead.

Open Color Space Comparison on Shadertoy
Light Painter © 2026 · @ShaderError