Если напрягает значит ты не математик-программист. Лучше не мучай себя и выбери что нибудь попроще чем программирование - так и тебе будет легче и людям больше пользы принесёшь.
Из учебников С++
rutracker.org/forum/viewtopic.php?t=2607135
По поводу 2D, 3D - там жесткая математика и геометрия, перемножения матриц, произведения векторов и всё в таком духе. Так и работает: берешь точку с координатами x, y, z и умножаешь координаты на матрицу - получается перевод из 3D пространства на 2D экран. Потом берешь треугольник из трех точек, ищешь нормаль к треугольнику, ищешь dot product между нормалью и источником света, т.е. векторное(или скалярное - не помню) произведение векторов и получаешь освещение и т.п. - очень сложная математическая тема.