shader-object
v0.6.1
Published
Packed GPU struct schemas + Babylon include emitters with optional AssemblyScript kernels
Readme
shader-object
A modular library for packed GPU struct schemas + Babylon include emitters with optional AssemblyScript kernels.
Install
npm i shader-object
npm i @babylonjs/core # or: npm i babylonjsThis package treats Babylon as a peer dependency. You must have either @babylonjs/core (ESM) or babylonjs (UMD) installed.
Build
npm run buildUsage (quick sketch)
import { ShaderObject, gpuStruct, field } from "shader-object";
@gpuStruct({ name: "ActorPool" })
class ActorPool extends ShaderObject {
@field(0, "mat4") transform!: Float32Array;
@field(1, "vec4") color!: Float32Array;
@field(2, { arrayOf: "vec3" }) velocities!: Float32Array;
}
// Initialize kernels + includes (once per class)
await (ActorPool as any).initialize(engine);
// Use
const pool = new ActorPool(engine);
pool.color = new Float32Array([1,0,0,1]);
pool.setVarArray("velocities", new Float32Array([0,1,0, 1,0,0]));