Matrix Math#

https://user-images.githubusercontent.com/14288520/189597709-68ea2c85-c478-403f-9555-87fcc0096684.png

Functionality#

Matrix Math node allows for various matrix operations to be performed on the input matrices, such as: Multiply, Invert, Filter, Basis.

Inputs#

All inputs are vectorized and they will accept single or multiple values.

  • A

  • B [1]

  • Z [2]

Notes:

  • [1] : The second input is only available for the operations that require a second operand, like Multiply.

  • [2] : For multiple input operation (e.g. Multiply) the input sockets extend to allow arbitrary number of input matrices and their socket name progress alphabetically.

Parameters#

The Operation parameter allows to select one of following operations: Multiply, Invert, Filter, Basis.

All parameters except Operation, PrePost and Filter T/R/S can be given as an external input.

Param

Type

Default

Description

Operation

Enum:

  • Multiply

  • Invert

  • Filter

  • Basis

Multiply

Multiply: A,B => C = A*B [1]

  • Invert: A => C = A^-1

  • Filter: A => C = [AT]*[AR]*[AS]

  • Basis: A => X, Y, Z

PrePost

Enum:

  • Pre

  • Post

Pre

Determines the order the operands [2]

Filter T

Bool

False

Filter out the Translation component [3]

Filter R

Bool

False

Filter out the Rotation component [3]

Filter S

Bool

False

Filter out the Scale component [3]

A

Matrix

identity

First matrix input

B

Matrix

identity

Second matrix input [4]

Notes:

  • [1] : The order of multiplication is given by the PrePost setting.

  • [2] : The PrePost setting is only available for the Multiply operation.

  • [3] : The Filter T/R/S toggle settings are only available for the Filter operation.

  • [4] : Second input is only available for Multiply operation.

Operations#

Multiply The multiplication of the 4x4 homogeneous matrices result in a composite 4x4 homogeneous matrix having a composed Translation, a composed Rotation and a composed Scale. The order of multiplication is given by the PrePost setting, which is set to PRE-multiplication by default (C = A*B). The POST multiplication reverses the order of multiplication (C = B*A).

Note: When using a PRE multiply composition A*B to transform a mesh, essentially the overall operation is equivalent to applying the matrix B to the mesh first, then matrix A.

For this operation the node allows for an arbitrary number of input matrices to be multiplied together: A * B * .. * Z (PRE or POST).

Filter A 4x4 homogeneous matrix is composed by a translation (T), rotation (R) and a scale (S) matrix and is defined as: T*R*S. The filter operation allows you to set the individual components T, R and/or S to the identity matrix so that they are filtered out of the output composite matrix.

Note: filtering out all components will result in an identity matrix output.

Invert The inversion of a 4x4 homogeneous matrix A is a 4x4 homogeneous matrix A’ for which A * A’ is the identity matrix.

Basis This operation extacts the basis vector from the rotation part of the 4x4 homogeneous matrix. Essentially these are the vectors the XYZ ortho-normal axes of a coordinate system would be if transformed by the 4x4 homogeneous matrix.

Outputs#

  • Matrix

Outputs will be generated when connected.

  • X

  • Y

  • Z

These outputs are available only for the Basis operation and will be generated when connected.

Example of usage#