gameinstitute.com has there 3d programming packages. I finished about 3 quarters of it, but the first half teaches you all the underlying math to write your own software renderer before it dives into directx. I didnt retain much because I havent had time to really go through the examples, but even still i learned a lot to the point where i can sort of "paraphrase" (not really the right word) how to do just about any theoretical step. just havent done it myself yet. (i did a couple examples, but then left it at that.)