Skip to content

geometry.parametricSurface

Summary

geometry.parametricSurface samples a 3D function over a UV grid and computes indexed triangles, normals, and texture coordinates. Both parameter ranges default to [0, 1], resolution to 128 × 128, and cells touching non-finite samples are skipped by default.

Syntax

WasmGPU.geometry.parametricSurface(descriptor: ParametricSurfaceDescriptor): Geometry
const result = wgpu.geometry.parametricSurface(descriptor);

Parameters

Name Type Required Description
descriptor ParametricSurfaceDescriptor Yes 3D sampling function, U/V ranges, grid resolution, sidedness, and invalid-cell policy.

Returns

Geometry - Indexed sampled surface with computed normals, UVs, and bounds.

Type Details

ParametricSurfaceDescriptor

type ParametricSurfaceDescriptor = {

    f: (u: number, v: number) => [number, number, number];

    uMin?: number;

    uMax?: number;

    vMin?: number;

    vMax?: number;

    uSegments?: number;

    vSegments?: number;

    plane?: "xy" | "xz" | "yz";

    skipInvalid?: boolean;

    doubleSided?: boolean;

};

ParametricSurfaceDescriptor Fields

Name Type Required Description
f (u: number, v: number) => [number, number, number] Yes Sampling callback used during procedural curve/surface generation.
uMin number No Lower bound of the sampled U interval.
uMax number No Upper bound of the sampled U interval.
vMin number No Lower bound of the sampled V interval.
vMax number No Upper bound of the sampled V interval.
uSegments number No Number of subdivisions along U.
vSegments number No Number of subdivisions along V.
plane "xy" \| "xz" \| "yz" No Plane in which 2D procedural geometry is embedded (xy, xz, or yz).
skipInvalid boolean No Whether cells touching non-finite callback results are omitted.
doubleSided boolean No Whether indices are emitted for both winding directions.

See Also