How do you append Float4s?

I have 4 Vector4s that I need to combine with append to create a certain effect in the Material Editor for a Post Process Volume. When I actually plugged them into the append node, an error pops up that says “can’t append float4 to float4.” If I copy the out-of-date node Append4, it has the same error. If I use the append many, it doesn’t actually append them, it just passes through the first float4.

How are you supposed to combine them?

You can’t append v2 & v3 either. That’d be 5 whereas the limit is 4.

Add them, multiply them, lerp them? If you tried to append v4 + v4 you’d get a v8. That’d be a real headscratcher.

1 Like

RGBA, 4 is the law.

You need to pass 4 4vecs somehow. Use an MPC, or just 4 lines/lanes to wherever you are going. If it’s a function, add 4 4vec inputs and handle it that way.

Pic or it didn’t happen; what are you trying to do exactly? Move information around a single material, out of a material, into another??

1 Like


I’m essentially trying to append 4 material functions together, the issue is that, after they are appended, it doesn’t keep any colors past the first input (which makes sense given your explanation)

unsure what the PPV function does or what it is returning, but emissive isn’t going to take a 16vec :stuck_out_tongue:

you would need to break things apart and do whatever maths you want and then shove an actual color there, 3vec.

4vec is a standard as Alpha was/is a thing and the multiplies, subtracts, etc will will on a pair of 1vecs, 2, 3, or 4vecs as appropriate, but that’s kind of where it fits in. kind of a hardware-software standard, unless you code it otherwise in your own shader or custom-node. Unreal will stick to the rule-of-4.

ultimately, however, what you plug it into rules, so in this case, emissive is a color, like basecolor, so alpha doesn’t apply and we can go with just 3vec.

for efficiency and other things, like bundling values to ensure they correlate over maths, using an append-vec makes sense, but still, at the end, what you plug it into will only take that Xvec value. for example: I pack 4 height-textures into a single texture so when I generate UVs I can reduce samples/samplers (overhead). when i need to height-blend them, however, I need to break them out and do it sequentially, so sometimes it only carries you so far.

1 Like