Your system asks for reduced motion, so VFX-JS draws nothing. Demos on this site show plain HTML.

Type

VFXPass

vfx-js/src/types.ts:37 ↗
import type { VFXPass } from "@vfx-js/core";

A single render pass in a multipass shader pipeline.

Each pass renders to a named buffer (specified by target), which can be referenced as a sampler2D uniform in subsequent passes. The last pass in the array renders to the screen.

Every pass gets resolution = element size and offset = element origin inside the render target, both in physical pixels. So uv = (gl_FragCoord.xy - offset) / resolution is element space. viewport is the render target rect (x, y, w, h) in physical pixels.

With overflow, buffers VFX-JS renders (<target>, backbuffer, and src after the first pass) cover the whole buffer. Read them with (uv * resolution + offset - viewport.xy) / viewport.zw.

Note: auto-bind matches only uniform sampler2D <name>; declarations. isampler2D / usampler2D are not supported yet.

Properties

float

float?: boolean

Use 32-bit floating point render target. (Default: false)

frag

frag: string

Fragment shader code.

glslVersion

glslVersion?: GlslVersion

persistent

persistent?: boolean

Whether the render target should persist across frames. If enabled, the previous output is available as sampler2D <target>.

size

size?: [number, number]

Render target size in pixels [width, height]. When set, the backbuffer and intermediate buffer are created at this fixed size instead of the viewport resolution. This pass uses the whole buffer: resolution = size, offset = 0.

target

target?: string

Name of the buffer to write this pass's output to. Later passes can reference it as uniform sampler2D <target>;.

If specified, output is written to a named render target. If omitted on an intermediate pass, auto-assigned as pass0, pass1, etc. If omitted on the last pass, renders to screen.

uniforms

uniforms?: VFXUniforms

Uniform values to be passed to this pass's shader. Works the same way as element uniforms.

vert

vert?: string

Vertex shader code. If omitted, the default vertex shader is used.