"True" flat lighting - how can I make each face of a polygon only one colour?


I’ve been trying to recreate old 3D rendering - visually akin to something like Virtua Racer or the SNES Starfox - but with basic lighting, which runs off a limited palette and only shades each face one solid colour. However, I’m having trouble getting Blender to only apply shading per face. The material I’m using is a simple constant-ramped Lambert with 0 specular intensity.

And it almost works. The issue I’m having is that occasional frames show faces that are shaded with two different colours at once, despite the object being flat-shaded and the light source having a constant falloff. Almost every frame has one or two triangles like this, despite the fact the rest are lighting normally.

Can anyone offer me a solution which will convince Blender to only shade one face at a time according to the angle of light sources (ideally that doesn’t involve post processing or using scripting)? The only solution that I know works is making the shape shadeless and then painting each face with a different material, but this doesn’t work in this case because I want dynamic shading! I’m hoping there’s a solution by using material nodes in some clever way.

I’ve been searching for a solution for days and found nothing! This is my first post on these forums, so apologies in advance if I’ve made any mistakes…

This is something I made almost 4 years ago, it is done with compositing, but gives you indexed output. I rewrote it and made it work for unlimited colors, but I can’t seem to track that one down.


Unfortunately I don’t think that will work in this case. Blender is only using the three colours I’ve told it to use for that isosphere, but the issue is it should be only using one of those colours per face. Anything I do to the compositing nodes won’t fix that, because as far as it’s concerned, all of those three shades are valid - it’s the distribution of colour on the faces in the first place which is wrong.

OK, I see now what you’re saying.

Your light should not have constant falloff, but no falloff. Use sun with 0 size. And no world lighting.

1 Like

Thank you so much! Incredible to think it was something that simple causing me so many headaches. That’s completely fixed my problem, thanks again for your help.