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. Texture values are ignored here, since passes are on the shader path.

vert

vert?: string

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