Skip to content
Shapemetry

@huukhanhnguyen/model / lanes/textures/params

lanes/textures/params

TEXTURE_BUILTIN_PARAMS

const TEXTURE_BUILTIN_PARAMS: BuiltinValues<{ filter: { default: "linear"; tooltip: "Sampling filter: 'linear' | 'nearest'."; type: "string"; }; imageHeight: { default: 0; tooltip: "Output height in pixels. 0 = derive from the physical aspect (imageWidth × lengthY/lengthX — square physical pixels)."; type: "number"; }; imageWidth: { default: 512; tooltip: "Output width in pixels — source ops default their own `width` to it; declaring it resamples the finished chain to exactly this size."; type: "number"; }; lengthX: { default: 1000; tooltip: "Physical width in mm of ONE tile. Declaring it attaches the size to the output stream (TextureData.tileWidth)."; type: "length"; }; lengthY: { default: 1000; tooltip: "Physical height in mm of ONE tile (TextureData.tileHeight)."; type: "length"; }; uvSet: { default: 0; tooltip: "UV channel the texture samples: 0 = TEXCOORD_0, 1 = TEXCOORD_1."; type: "number"; }; wrap: { default: "repeat"; tooltip: "Sampling wrap out of bounds: 'repeat' | 'clamp' | 'mirror'."; type: "string"; }; }>

Builtin parameter keys every texture chain has — the values slice of the ONE lane-builtin table (schema/vocabulary/builtinParams.ts, which also carries each key's type + tooltip for docs), re-exported here where every texture consumer already looks. Fixed names, referenced from any formula/value arg; a chain DECLARES them in parameters to set its own values, a consumer rebinds them per call via argsOverride:

  • lengthX/lengthY: physical mm of one tile (default 1000). DECLARING them attaches the size to the output stream (TextureData tileWidth/ tileHeight) — undeclared, the material record's fallback applies.
  • imageWidth/imageHeight: output pixel resolution — source ops default to them, and when DECLARED (or overridden) the final buffer is resampled to exactly that size (draw small and upscale, or draw big for free AA). imageHeight 0 = derive from the physical aspect (imageWidth × lengthY/lengthX — square physical pixels without thinking about it).
  • wrap / filter / uvSet: sampling contract (declare-to-activate — undeclared keeps the default REPEAT + LINEAR + TEXCOORD_0 exactly). wrap: 'repeat' | 'clamp' | 'mirror'; filter: 'linear' | 'nearest'; uvSet: 0 | 1 (see TextureData.uvSet for the chain-vs-slot trade-off).

TEXTURE_METHODS

Re-exports TEXTURE_METHODS

Last updated: 📖 2 min readEdit on GitHub