0
Fixed

[BUG] float4x4 output from code node is converted to a float1.

behealed 1 year ago • updated by Joachim Holmér (Developer) 1 year ago 1

I already posted this bug 2 months ago. But I'll post it again.


Can we get this fixed please? This is an easy fix.


Basically, if you create a code node, and you tell it to output a matrix4x4, and you attempt to use that outputted 4x4 in at least two (2) different places, shader forge screws it up and converts it to a regular float.


//THIS IS A CODE NODE:
float4x4 GET4x4() {
    float4 mtx = float4(0,0,0,0);
    return float4x4(mtx,mtx,mtx,mtx);
}

//THIS IS A CODE NODE:
float RECEIVE4x4(float4x4 IN) {
    //Do something with the 4x4.
}

//THIS IS ANOTHER CODE NODE:
float ALSO_RECEIVE4x4(float4x4 IN) {
    //Do something else with the 4x4.
}

//THIS IS THE FRAG FUNCTION:
frag() {
    float node_1515 = GET4x4(); //<-- HERE is the bug.
    RECEIVE4x4(node_1515); //<-- this isn't gonna work!
    ALSO_RECEIVE4x4(node_1515); //<-- this isn't gonna work!
}

Answer

Answer
Fixed

This has now been fixed in 1.31