Singularity/Library/PackageCache/com.unity.shadergraph@12.1.11/Documentation~/Matrix-Split-Node.md
2024-05-06 11:45:45 -07:00

1.7 KiB

Matrix Split Node

Description

Splits a square matrix defined by input In into vectors. Output vector dimension is defined by the dimension of the input matrix.

The dropdown on the node can be used to select whether the output values are taken from the rows or columns of the input matrix.

  • Row : Output vectors are composed of matrix rows from top to bottom.
  • Column : Output vectors are composed of matrix columns from left to right.

An input matrix of type Matrix 2x2 or Matrix 3x3 will return 0 values in the rows (or columns, depending on dropdown selection) that are beyond their dimension.

For example, connecting Matrix 2x2 type to input In will return the correct Vector 2 type outputs to output slots M0 and M1, leaving outputs M2 and M3 to return 0 values.

Ports

Name Direction Type Description
In Input Dynamic Matrix Input value
M0 Output Dynamic Vector First row or column
M1 Output Dynamic Vector Second row or column
M2 Output Dynamic Vector Third row or column
M3 Output Dynamic Vector Fourth row or column

Controls

Name Type Options Description
Dropdown Row, Column Selects how the output vectors should be filled

Generated Code Example

The following example code represents one possible outcome of this node.

float2 _MatrixSplit_M0 = float2(In[0].r, In[0].g);
float2 _MatrixSplit_M1 = float2(In[1].r, In[1].g);
float2 _MatrixSplit_M2 = float2(0, 0);
float2 _MatrixSplit_M3 = float2(0, 0);