I've made a preliminary study of Direct3D 9 concepts, and understand it to comprise of two parts: core rendering, and support utilities. Core rendering is in the directx.direct3d namespace, and the support utilities are in directx.direct3dx namespace.
Direct3D essentially renders lists of triangles, which themselves are collections of vertices in 3D space. Direct3D is a scanline renderer that uses vertex information to help draw the semblance of smoothly-rounded geometry. The concepts are very similar to old 3D polygon modeling programs like 3D Studio (the DOS version).
Each polygon/triangle that's rendered can have a Material applied to it, which is a struct that defines surface properties related to the scanline rendering algorithms being used to draw it. Texturing, which is the application of a bitmap to the polygon based on interpolated texture coordinates (the so-called UVs) between vertices, is a separate operation.
Direct3D programming consists of managing vertex and texture buffers. It also includes enabling/disabling certain features of the core renderer for multiple passes to get the shiny effects we like to see. Closely tied to all this is the notion of Shaders, which are new to me. Shaders are what are used to actually translate the abstract world of polygons and vertices and texture coordinates into what you see on the screen. There is no longer any "fixed function" rendering path (I guess there are default ones). So to make pretty graphics, you must collect a bunch of shaders to actually see something on the screen.
In addition to polygons, there are other entities such as the world space and the camera, light sources, and surface properties of the triangles. The mechanics of drawing to the screen hardware itself are fairly cut and dry...surfaces, flipping, locking memory.
NOW, what's interesting is that there is a WHOLE ARTIST WORKFLOW that I need to work out, from modeling program (I'm using Modo) to importing into a usable format. This is the point I'm at: figuring out how to do it. I was looking for some nice plug and chug code solutions, but I have come to the conclusion that I need to really get a little deeper and learn the innards. Fortunately, the innards are fairly well documented; they are just poorly organized, scattered, and lacking in important supplementary information. There is a huge gap here that I need to fill.
