Logo Mibo

BonePose Type

The result of evaluating an animated model's pose once: both the model-space bone transforms for the current frame (WorldPoses) and the shader skinning palette (Palette).

Compute once per entity per frame via Animation3DState.computePose (or AnimatedModel.computePose) and share it between the skinned draw and any number of bone queries / attachment draws. Both arrays are in raylib's native matrix layout (a Raymath.* matrix is the transpose of the equivalent System.Numerics.Matrix4x4.* matrix): compose WorldPoses with Raymath.MatrixMultiply, never System.Numerics operators, and hand Palette to DrawSkinnedMesh as-is.

Record fields

Record Field Description

Palette

Full Usage: Palette

Field type: Matrix4x4[]
Modifiers: mutable

Skinning palette in System.Numerics row-major layout: Palette[i] = InverseBindPose[i] * pose[i] (NOT transposed). Handed to the instanced palette-texture upload verbatim; consumers feeding SetShaderValueMatrix transpose at upload time.

Field type: Matrix4x4[]

WorldPoses

Full Usage: WorldPoses

Field type: Matrix4x4[]
Modifiers: mutable

Model-space bone transforms for the current frame (attachment/query data), raylib-native layout.

Field type: Matrix4x4[]

Static members

Static member Description

BonePose.empty

Full Usage: BonePose.empty

Returns: BonePose

A pose with no bones. Use as the starting point for computePoseInto — arrays are grown on first use and reused on subsequent calls, so no per-frame allocation after the first frame.

Returns: BonePose

Type something to start searching.