Something odd on the connections of nodes in the MagmaFlow…
Why does it let me connect a vector to a integer or float input if it’s not going to convert the type?
So for Noise, I can connect the same output to all 3 inputs, even though that should never be valid. I thought it was just auto-converting them, but it’s not.
The design of Magma was consciously made such that the UI has no knowledge of type. The error checking for most situations is delayed until the node tree is converted into code, hence why you are allowed to make bad connections. Obviously this leads to some annoyance, but we chose not to enforce checking because the type of ‘Input Channel’ nodes is not known until the flow is executed. Only when the particles have started to stream through, do we know that the Velocity channel is actually a float32[3] for example.
Also, implicit conversions are evil. I’ve spent enough time debugging code, and other people’s work where they didn’t realize that their data was being converted into some other form that loses information. Screen space isn’t all that expensive, and typically I will hide the nasty details behind conversions and whatnot by putting them in a Black Op.