Skip to content

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

PortTypeDirectionDescription
text_intextinputTextData to render (from Text or TextAnimate)
fill_sourceimageRgba16finputOptional texture to use as fill (replaces fillColor)
stroke_sourceimageRgba16finputOptional texture to use as stroke (replaces strokeColor)
outimageRgba16foutputRendered text as a texture

Parameters

ParamTypeDefaultDescription
fillColorcolorwhiteFill color for the text
fillOpacityscalar1Fill opacity
strokeEnabledbooleanfalseEnable stroke rendering
strokeColorcolorblackStroke color
strokeWidthscalar2Stroke width in pixels
strokeOpacityscalar1Stroke opacity
applyRevealbooleantrueApply 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:

PortTypeOverrides
fillOpacity_inscalarfillOpacity
strokeWidth_inscalarstrokeWidth
strokeOpacity_inscalarstrokeOpacity

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 text type input -- it cannot receive image or shape data
  • The auto-wire shortcut creates a Text -> DrawText -> Output chain when adding a Text node from the context menu
  • Set applyReveal: false to 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
  • 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

Caddis — professional motion design.