Skip to content

WasmGPU.gltf.readAccessor

Summary

WasmGPU.gltf.readAccessor reads one accessor from a loaded glTF document and returns its metadata plus the typed-array payload for that accessor. Strided accessors are deinterleaved when needed, and sparse patches are applied before the result is returned.

Syntax

WasmGPU.gltf.readAccessor(doc: GltfDocument, accessorIndex: number): AccessorView
const result = wgpu.gltf.readAccessor(doc, accessorIndex);

Parameters

Name Type Required Description
doc GltfDocument Yes Parsed glTF document containing JSON, buffers, and optional image payloads.
accessorIndex number Yes Zero-based accessor index in doc.json.accessors.

Returns

AccessorView - Accessor metadata plus typed-array data for the requested glTF accessor.

Type Details

GltfDocument

type GltfDocument = {

    json: GltfRoot;

    buffers: ArrayBuffer[];

    images?: ArrayBuffer[];

    baseUrl: string;

};

GltfDocument Fields

Name Type Required Description
json GltfRoot Yes Parsed glTF JSON root object.
buffers ArrayBuffer[] Yes Typed numeric/binary data consumed by this operation.
images ArrayBuffer[] No Typed numeric/binary data consumed by this operation.
baseUrl string Yes Base URL used to resolve relative glTF asset URIs.

AccessorView

type AccessorView = {

    accessor: GltfAccessor;

    componentType: GltfAccessorComponentType;

    type: GltfAccessorType;

    count: number;

    numComponents: number;

    normalized: boolean;

    array: GltfTypedArray;

};

AccessorView Fields

Name Type Required Description
accessor GltfAccessor Yes Accessor metadata object selected for this read operation.
componentType GltfAccessorComponentType Yes glTF accessor component type enum describing scalar storage width/type.
type GltfAccessorType Yes Accessor shape such as SCALAR, VEC3, or MAT4.
count number Yes Number of accessor elements in the returned payload.
numComponents number Yes Number of scalar components per accessor element.
normalized boolean Yes Whether integer accessor values should be normalized when interpreted.
array GltfTypedArray Yes Typed-array payload containing accessor data.

GltfRoot

type GltfRoot = {

    asset: GltfAsset;

    scene?: GltfID;

    scenes?: GltfScene[];

    nodes?: GltfNode[];

    meshes?: GltfMesh[];

    buffers?: GltfBuffer[];

    bufferViews?: GltfBufferView[];

    accessors?: GltfAccessor[];

    materials?: GltfMaterial[];

    textures?: GltfTexture[];

    images?: GltfImage[];

    samplers?: GltfSampler[];

    skins?: GltfSkin[];

    animations?: GltfAnimation[];

    cameras?: GltfCamera[];

    extensionsUsed?: string[];

    extensionsRequired?: string[];

    extensions?: GltfExtensions;

    extras?: GltfExtras;

};

GltfRoot Fields

Name Type Required Description
asset GltfAsset Yes glTF asset metadata block.
scene GltfID No Default scene index or scene reference in glTF/root metadata.
scenes GltfScene[] No All scene definitions declared in the asset.
nodes GltfNode[] No All node definitions declared in the asset.
meshes GltfMesh[] No All mesh definitions declared in the asset.
buffers GltfBuffer[] No Binary buffer declarations referenced by buffer views.
bufferViews GltfBufferView[] No Byte-range slices into the declared buffers.
accessors GltfAccessor[] No Accessor metadata entries available for reads.
materials GltfMaterial[] No Material definitions referenced by meshes.
textures GltfTexture[] No Texture definitions referenced by materials.
images GltfImage[] No Image declarations referenced by textures.
samplers GltfSampler[] No Sampler definitions referenced by textures.

GltfAccessor

type GltfAccessor = {

    bufferView?: GltfID;

    byteOffset?: number;

    componentType: GltfAccessorComponentType;

    normalized?: boolean;

    count: number;

    type: GltfAccessorType;

    max?: number[];

    min?: number[];

    sparse?: GltfAccessorSparse;

    name?: string;

    extras?: GltfExtras;

    extensions?: GltfExtensions;

};

GltfAccessor Fields

Name Type Required Description
bufferView GltfID No Index of the glTF bufferView backing this field.
byteOffset number No Byte offset within the referenced buffer view.
componentType GltfAccessorComponentType Yes glTF accessor component type enum describing scalar storage width/type.
normalized boolean No Whether integer values should be normalized on read.
count number Yes Number of accessor elements.
type GltfAccessorType Yes Accessor shape such as SCALAR, VEC3, or MAT4.
max number[] No Optional maximum bounds stored in the source asset.
min number[] No Optional minimum bounds stored in the source asset.
sparse GltfAccessorSparse No Sparse accessor payload defining index/value patch data.
name string No Optional glTF name for this accessor.
extras GltfExtras No Opaque application-specific metadata preserved by loader/import utilities.
extensions GltfExtensions No Extension payload map (usually keyed by extension name).

GltfAccessorComponentType

type GltfAccessorComponentType = 5120 | 5121 | 5122 | 5123 | 5124 | 5125 | 5126;

GltfAccessorType

type GltfAccessorType = "SCALAR" | "VEC2" | "VEC3" | "VEC4" | "MAT2" | "MAT3" | "MAT4";

GltfTypedArray

type GltfTypedArray = | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array;

GltfAsset

type GltfAsset = {

    version: string;

    generator?: string;

    copyright?: string;

    minVersion?: string;

    extras?: GltfExtras;

};

GltfAsset Fields

Name Type Required Description
version string Yes Declared glTF version string, typically "2.0".
generator string No Optional tool string describing which exporter produced the asset.
copyright string No Optional copyright notice from the asset metadata.
minVersion string No Optional minimum glTF version required by the asset.
extras GltfExtras No Opaque application-specific metadata preserved by loader/import utilities.

GltfID

type GltfID = number;

GltfScene

type GltfScene = {

    nodes?: GltfID[];

    name?: string;

    extras?: GltfExtras;

    extensions?: GltfExtensions;

};

GltfScene Fields

Name Type Required Description
nodes GltfID[] No Root node indices belonging to this scene.
name string No Optional glTF scene name.
extras GltfExtras No Opaque application-specific metadata preserved by loader/import utilities.
extensions GltfExtensions No Extension payload map (usually keyed by extension name).

Example

const canvas = document.querySelector("canvas");
const wgpu = await WasmGPU.create(canvas);

const doc = await wgpu.gltf.load("./model.glb", { loadImages: true });
const accessorIndex = 0;
const result = wgpu.gltf.readAccessor(doc, accessorIndex);
console.log(result);

See Also