Skip to content

shz_xmtrx_blend_4x4

Markdown
SHZ_INLINE void shz_xmtrx_blend_4x4(const shz_mat4x4_t* matrix, float weight) SHZ_NOEXCEPT;

Adds and accumulates a scaled 4x4 matrix onto XMTRX.

NameTypeDescription
matrixconst shz_mat4x4_t *4x4 matrix to multiply and accumulate onto XMTRX.
weightfloatFactor each element in matrix gets scaled by.

Nothing (void).

Each component of joint_matrix will be multiplied by weight, with the result being added to the existing value of that component of XMTRX.

This is useful for accumulating weighted joint matrices onto an initially zeroed-out XMTRX. This allows for in-place construction of a skin matrix, which can then be directly used to transform the vertices of a mesh against for animation.

  • shz_mat4x4_t and shz_mat2x2_t arguments must be 8-byte aligned. Unaligned data goes through the float[16] parameters of the _unaligned routines.
  • C++ equivalent: none (call the C function from C++)
  • Type-generic form: none
  • Back-ends: SH4: dedicated SH4 implementation · SW: portable C · SPU: shared C implementation
  • Defined in: sh4zam/shz_xmtrx.h:881
  • Module: XMTRX, section "Miscellaneous"

shz_xmtrx_init_zero, shz_xmtrx_blend_3x4