I'm trying to move my game development into the third dimension, but I'm having a bit of troubles understanding what I actually have to do. I've created a 2D MMORPG before using C and SDL, which wasn't too hard. But I can't seem to find any useful resources explaining how 3D programming actually works. I have a basic understanding of the vector math involved, but I just can't seem to find any clear, in-depth explanation of how everything else like lighting and shaders work. I've found plenty of code samples and such, but all of them just throw in a comment like "//Apply the lighting", which doesn't really tell me anything about what it's actually doing and why.
I'm not looking for an API-Specific tutorial; it's easy enough to learn a new API--I'm just not sure what to actually do with it.