Draw Text
Rasterizes TextData to a GPU texture using lyon tessellation and MSAA rendering. Supports fill, stroke, and per-glyph reveal from TextAnimate.
Category: Render Menu path: Render > Draw Text
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
text_in | text | input | TextData to render (from Text or TextAnimate) |
fill_source | imageRgba16f | input | Optional texture to use as fill (replaces fillColor) |
stroke_source | imageRgba16f | input | Optional texture to use as stroke (replaces strokeColor) |
out | imageRgba16f | output | Rendered text as a texture |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
fillColor | color | white | Fill color for the text |
fillOpacity | scalar | 1 | Fill opacity |
strokeEnabled | boolean | false | Enable stroke rendering |
strokeColor | color | black | Stroke color |
strokeWidth | scalar | 2 | Stroke width in pixels |
strokeOpacity | scalar | 1 | Stroke opacity |
applyReveal | boolean | true | Apply per-glyph opacity and blur from TextAnimate |
Expose Channels
When enabled (E button on node header), adds input ports that override params via edge connections:
| Port | Type | Overrides |
|---|---|---|
fillOpacity_in | scalar | fillOpacity |
strokeWidth_in | scalar | strokeWidth |
strokeOpacity_in | scalar | strokeOpacity |
How It Works
DrawText converts each glyph's outline from the TextData into shape paths, then renders them using the same lyon tessellation + GPU MSAA pipeline as DrawShape. Each glyph is positioned according to the layout computed by the upstream Text node.
When applyReveal is enabled and the upstream TextData includes per-glyph animation data (from TextAnimate), DrawText applies:
- Per-glyph opacity: Fades individual glyphs in/out.
- Per-glyph blur: Applies gaussian blur per glyph for focus-pull reveal effects.
The fill_source and stroke_source texture ports allow texturing the text -- a connected texture is sampled at canvas-space UVs, with the text shape acting as a clip mask.
Text uses NonZero fill rule internally to handle glyph counter-forms correctly (e.g., the hole in "O" or "D").
Usage Examples
Basic: White text
Text -> DrawText -> Transform2D -> Output. Default white fill, no stroke.
Outlined text
Text -> DrawText (strokeEnabled: true, strokeColor: red, strokeWidth: 4, fillColor: transparent). Set fill opacity to 0 for outline-only text.
Textured text
Text -> DrawText (fill_source connected to an ImageSource or Noise texture). The text is filled with the connected texture.
Animated reveal
Text -> TextAnimate (progress: keyframed) -> DrawText (applyReveal: true). Characters blur in and fade up as TextAnimate drives per-glyph effects.
Tips
- DrawText expects
texttype input -- it cannot receive image or shape data - The auto-wire shortcut creates a
Text -> DrawText -> Outputchain when adding a Text node from the context menu - Set
applyReveal: falseto ignore TextAnimate's per-glyph blur/opacity (useful for a "clean" pass of the same text) - Stroke is rendered on top of fill by default
Related Nodes
- Text -- creates the TextData input
- TextAnimate -- adds per-glyph animation to TextData
- DrawShape -- same rendering pipeline for shape data
- TextToShape -- alternative: convert to shapes for more control