Best method for flat colouring blender models?

I’m working on a game that’s gonna feature 3D models created in Blender. I’m not going to use any textures, since all the models will be flat coloured. The game will have a pretty restricted palette, so it would make good sense to be able to reuse materials for a lot of the models.

I’m still pretty new to 3D modelling and especially to the concepts of materials and shaders etc., so I can’t quite figure out, what would be the best method to colour my 3D models.

The best way I’ve been able to find myself so far is as follows: Say I have a model that will have three colours; blue, red and white. I then mark all the faces on my model in Blender that should be blue, and then apply a material slot to this portion of the model with the default (empty) material. I repeat this for the parts that should be red and for the parts that should be white. I then import the model in Unity, but without extracting the materials, and drag the model onto the scene. I then create three new materials in Unity, one blue, one red, and one white, and then I drag these onto the right parts of the model in the scene view. In this way I can reuse these three materials for all the parts of all the other models that should be blue, red or white.

I got the impression it’s a good thing to limit the number of materials as much as possible, to equally reduce the number of drawcalls. But I’m not sure if the not-extracted materials in the imported Blender models still count as materials in this regard? I tried importing models where I hadn’t applied any materials in Blender, but then I wasn’t able to drag materials onto separate parts of the models, but only to the entire model at once.

Could somebody enlighten me, as to whether my method is sound, or if there’s a better and more economical way to achieve the same result?

I’m assuming that when you say flat color you mean a very standard lighting shader with no fancy effects (so a PBR is not necessary unless you need Ambient occlusion and normal maps) so I’m thinking such as what might be seen on the N64 or some Playstation One games.


I would tell you how I do it but I think following this video would be better at getting you through the gaps that you may need to fill in your knowledge of blender. It can be done with just one material that has one texture that is simply pixels of the colors you want to use in your palette. In your case when you get to the Unity part you can just use a simple Diffuse material shader and let each models’ UVs do the work. It’s very efficient and a pleasant stylized look if you need the simple toon shaded or colorful/playful look.

@Pinkuboxu thank you for the reply!

I forgot to mention that for some of my models I will need to use the unlit shader, or at least something that offers the same result (i.e. to render the model unaffected by lights). I tried using the UV mapping method, but that effectively grayed out the shader settings for my model in Unity, such that I wasn’t able to go with anything else than something like a standard lit shader. Perhaps that’s just a box I should tick/untick somewhere or something like that? If that can be solved, UV mapping would definitely seem to be just the method I’m looking for :slight_smile: