Hi, I've recently taken up my game development again after a couple of years doing other stuff. I've created a basic 3D renderer to the point where I'm getting some geometry on screen with non-shadowed point light shading. Now I want to expand this with some culling, additional light sources and some more materials etc. Nothing too fancy, just the basics. When I studied 3D graphics, the main performance consideration involved culling, even sub-mesh. "The fastest triangles are the ones not drawn". These days I've gotten the impression that it might be better to draw a few extra triangles than to make more api calls.
I was hoping people could give me some rough high-level guidelines on what to do and what to avoid. Reducing draw calls, switching shaders, setting shader parameters, reducing total triangles, ..