some games and engines are using rgb/rgby tint/texture mask to create a “customize” system for players change character’s colors and after be storaged in a server or game data
i just realized that the albedo is gray, the models got normal map, spec, emission n metalic/metalness texture
unreal and unity got tutorial in docs and wikis, a game example of use this is warframe (evolution engine, peoples are saying dat is c++)
is it just a shader with script to modify the shader? its working o jmonkey? how its works on jmonkey?
i don’t know if i can post links but, here is the example and a tutorial video “how it works on the evolution engine (warframe)”, i suppose use 2 textures for it? the rgb texture and a alpha texture (last video minutes)?:
- so the color changer will change each rgby color
I would “colour” your base texture in gray-scale, say 8 different shades. And use a 1px high by 8px wide image as a color ramp in a custom shader. This image can be stored as a file, or generated as needed.
The toon shader sort of does this.
Technically you could also just use alpha masks to mark the parts which are user-manageable.
However looking at the thumbnail of the video, users could actually directly edit your textures then, because it seems in PBR they only change the albedo and all the detail comes from the other maps.
Apart from that you could always “layer” textures in software already, think of multiplying texel per texel or something, so it depends on your use case.
Actually it’s not much about the engine, it’s just some code which either edits the texture or some shader which does it dynamically each frame (which depends on the use case, the first is easier and allows to re-use every shader, but fails if you change the color every frame: Think of some chameleon skin which changes the color like a rainbow)