breathe( ) → void
Yield a frame once a bake has held the engine for 50 ms, so a long bake never freezes the editor. Where yielding is not allowed it stops trying.
mul32(a: number, b: number) → number
| arg | type | description |
|---|
| a | number | |
| b | number | |
rng(seed: number) → void
A deterministic random stream: rng() returns [0, 1).
| arg | type | description |
|---|
| seed | number | |
field(n: number, v: number?) → Field
| arg | type | description |
|---|
| n | number | |
| v | number? | |
value(n: number, f: number, seed: number, out: Field?, amp: number?) → Field
One octave of periodic value noise at integer frequency f (cells per repeat), 0..1.
| arg | type | description |
|---|
| n | number | |
| f | number | |
| seed | number | |
| out | Field? | |
| amp | number? | |
fbm(n: number, f: number, octaves: number, seed: number, gain: number?) → Field
Periodic fractal value noise, 0..1: octaves doubling from integer base frequency f.
| arg | type | description |
|---|
| n | number | |
| f | number | |
| octaves | number | |
| seed | number | |
| gain | number? | |
streaks(n: number, fx: number, fy: number, octaves: number, seed: number) → Field
Anisotropic periodic noise: frequency fx across, fy along (integer), for streaks and grain.
| arg | type | description |
|---|
| n | number | |
| fx | number | |
| fy | number | |
| octaves | number | |
| seed | number | |
worley(n: number, c: number, seed: number, jitter: number?) → void
Periodic Worley cells: c x c jittered points. Returns F1, F2 (in cell units) and a 0..1 id per nearest cell.
| arg | type | description |
|---|
| n | number | |
| c | number | |
| seed | number | |
| jitter | number? | |
blur(n: number, src: Field, r: number, passes: number?) → Field
Periodic separable box blur of radius r texels (passes times, ~gaussian at 3).
| arg | type | description |
|---|
| n | number | |
| src | Field | |
| r | number | |
| passes | number? | |
normalize(n: number, f: Field, p: number?, q: number?) → Field
Remap a field so its p-th and q-th percentiles land at 0 and 1 (clamped).
| arg | type | description |
|---|
| n | number | |
| f | Field | |
| p | number? | |
| q | number? | |
smoothstep(a: number, b: number, x: number) → number
| arg | type | description |
|---|
| a | number | |
| b | number | |
| x | number | |
lerp(a: number, b: number, t: number) → number
| arg | type | description |
|---|
| a | number | |
| b | number | |
| t | number | |
toSrgb8(c: number) → number
| arg | type | description |
|---|
| c | number | |
srgbToLinear(s: number) → number
Linear 0..1 to sRGB 0..1 (and back), for authoring albedo in either space.
| arg | type | description |
|---|
| s | number | |
packAlbedo(n: number, r: Field, g: Field, b: Field) → buffer
Pack an albedo from three linear-colour fields into sRGB rgba8 bytes.
| arg | type | description |
|---|
| n | number | |
| r | Field | |
| g | Field | |
| b | Field | |
packMask(n: number, r: Field, g: Field, b: Field) → buffer
Pack three linear 0..1 fields into rgba8 bytes (R = AO, G = roughness, B = metallic).
| arg | type | description |
|---|
| n | number | |
| r | Field | |
| g | Field | |
| b | Field | |
packNormal(n: number, h: Field, tile: number, strength: number?, tiltX: Field?, tiltY: Field?) → buffer
Tangent-space normal map from a height field in METRES over a tile of `tile` metres.
Raised areas face outward: green = image-up (OpenGL / glTF), the convention the engine reads.
tiltX / tiltY (optional) add a per-texel slope on top of the height (normal-space x and image-up y), for facets such as zinc spangle crystals.
| arg | type | description |
|---|
| n | number | |
| h | Field | |
| tile | number | |
| strength | number? | |
| tiltX | Field? | |
| tiltY | Field? | |
cavity(n: number, h: Field, radius: number, depth: number, strength: number?) → Field
Cavity occlusion from height: 1 on tops, darker in pits and creases. depth in metres for full dark.
| arg | type | description |
|---|
| n | number | |
| h | Field | |
| radius | number | |
| depth | number | |
| strength | number? | |
keepSource(name: string) → any
Re-create a baked texture with a lossless source.png beside its GPU data, so tools that read the source image (materialLibraryKit's texture-memory measure) see its real size. Settings are kept.
| arg | type | description |
|---|
| name | string | |
save(name: string, n: number, bytes: buffer, kind: string) → any
Write rgba8 bytes as a texture asset in the package's textures folder, with a PNG source kept. kind: color | normalMap | mask.
| arg | type | description |
|---|
| name | string | |
| n | number | |
| bytes | buffer | |
| kind | string | |