We use cookies and similar tools to enhance your experience, provide our services, deliver relevant advertising, and make improvements. Approved third parties also use these tools to help us deliver advertising and provide certain site features.
Customize cookie preferences
We use cookies and similar tools (collectively, "cookies") for the following purposes.
Essential
Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms.
Performance
Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes.
Allowed
Functional
Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly.
Allowed
Advertising
Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising.
Allowed
Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by clicking Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice.
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.