A liiitle request about naming in Material Expression Operations

AppendVector and ComponentMask belongs to one “type” of operators and they are logically should come in pair.
It’s like addition and subtraction, multiplication and division, they are connected, as well as AppendVector and ComponentMask, but in this case names are super distinct and I think it is not right.
I understand, probably there is some old naming convention or sorta, but in my opinion everyone wins if titles for this operations will be somehow connected
/nerd mode off

Here is my personal view on this. Addition, Subtraction, Multiplication, and Division are all very distinct names. Any association we make between them comes from being taught they are related from a young age. I also don’t think these two nodes, AppendVector and ComponentMask, are necessarily linked. They may be used together at times, but they aren’t really direct inverse operations like the math examples you provided.

Just my $0.02

Well, I realize they are not inverse from “execution” perspective, but when you want to split Vector you use Masks and when you want to merge variables into Vector - you use Append and there is no any other choice for this operations except Mask and Append.
I understand that ComponentMask can be used for other purposes, as well as Append, but from my POV in terms of use they are basically “Split” and “Merge”
Of course it’s only me and I’m not insist or something, just my feedback!

They’re inverses; component mask is breaking a vector, appendvector is constructing a vector. They’re both swizzle style operations.

Yes and no. ComponentMask gives you access to some subset of the components, but doesn’t break the vector in the typical sense where you have all the components as outputs. Similarly, AppendVector adds some components to create a new vector, but not in the typical make vector sense where the inputs are all single components of the vector.

When I say they aren’t direct inverse operations, I mean that you can’t take the output of one and pass it to the other and get the original back out without doing something extra. They are close to being inverses, but not direct like those math operations.

That’s not really the point though. The point I was making is that even with those math operations, which are direct inverse operations, there is nothing in the names of them that suggests the association. It is purely based on being taught they are inverses and making the association based on that. We can do the same with the Material expressions mentioned.

I do think ComponentMask might be better named as VectorComponentMask to reflect that it acts on a vector input. Perhaps that would help with the association. I’m also not sure split and merge are technically accurate so those may not be the best choices. I would argue that having true make and break vector expressions would be better than renaming these existing expressions.

Anyway, I’m not trying to dissuade anyone. Just voicing my own opinion on the matter. :slight_smile: