Download

Can I use a specific RGB color value to mask out a material? Is this useful?

Edit: This whole thing, effectively, is caused by an inability to just rotate and scale several sprites in order to make a combined character for animation purposes. While I’m sure this could be done by using a separate Plane mesh for all of the components, it would cause weird overlaps and stuff instead of a single depth object. If this is actually a feature somewhere and I’m dumb af please feel free to tell me (: Because most of my animations are going to consist of plenty of wasted texture space due to most parts not moving. And in total there’s probably like. 20 separate tiny components that make up the roughly 180 frames or so one of the main characters will have throughout the entire game. So that’s a pretty hefty savings. And it lets the animations be smoother as well by adding in more frames or different variations.

Quite simply, I’m using a diffuse-style texture and thus none of the RGB layers are available, not exclusively at least. So I’m curious if there’s a way, and if there is if it’s even a good idea, to take, say, an RGB value (or w/e) and treat that specific color as the opacity mask.

I’ve read that the alpha channel isn’t as compressed as the RGB channel and I’m trying to save space / texture memory. This is actually really standard in Game Maker so I’d assume it’s completely fine but I don’t want a super high performance cost added per frame or a nasty jagged pixel edge due to some sort of compression weirdness.

If this is possible, and yeah it’s sounding dumb af to me as I’m thinking about it, BUT, I have some really simple objects without any gradients more or less. Would it be reasonable to just take every single one of those characters and simply make each of them just a single channel in the RGB?

In example:
Red: 255 = Mask 1 “Eyes”, 254 = Mask 2 "Skin, ect.
Blue: Same but different character
And so on.

In fact, while I’m on the subject, how important is maximizing texture memory? Can I access the Texture Atlas and place different textures with different pages? Is that even a thing? I mean, how much do my textures get compressed?

At the moment I’m doing this with a Plane + Character Blueprint. That’s because I’m used to working in 3D games and this game is a 2D game that still makes use of the depth coordinate (Y / X, can’t remember atm) is there any reason why I should switch over to Paper2D ? I’m wanting this to run on awful toaster hardware for the record. Like old Intel Atom stuff. So I’m looking for any sorts of performance improvements I can make in that regard. I know nothing about Paper2D so I’ll look into it once I wake up but I’m just curious as to whether it offers any performance benefits if I’m still going to be using real lighting and whatnot.

Maximizing texture memory isn’t an issue until you run out of memory, so it depends on how constrained for memory your target platform is.

Texture packing like you are describing is pretty common in games, the RGB channels can definitely be used to store scale scale images/masks/textures. There will be some compression but it’s normally not too bad, depends on the textures and project.