I’m doing a project that involves making a variety of buildings. Most of these buildings have similar materials (ie wood siding, shingles, single-board window/door-frames) except that the wood and shingles have to be a different color on each building (one building may have red wood siding and grey shingles, another building might have yellow wood siding and brown shingles). To improve performance, I’m wondering if there is a way to have a single Atlased material that gets used across the various buildings, but to be able to colorize different parts of the atlas as needed. The colors I use are specific (since I am following a branded color-scheme) so I can’t compromise too much on the colors (and they sometimes need to be very saturated colors). Does anyone have any suggestions?
One approach would be to put the tint colours you want into your models as vertex data, and use a shader that supports vertex colours. This means more model data, but you can share one material across many different models and still have them batch.
Or add a second texture with the colors in it, map it on the second uv channel and disable filtering on it. Then in the shader just multiply the two textures. This also enables batching, but does lead to even more model data. The up side is that it’s probably a bit easier to adjust the colors later on.