I'm looking for some good learning resources for graphics hardware (and associated low level software). Basically I want to learn more about what goes on underneath the opengl/direcx API layers in terms of how things are implemented.

I familiar with what happens in principle during the various stages of the rendering pipeline (viewing, projection, clipping, rasterization etc).

My goal is to be able to make better and more informed decisions about tradeoffs and potential optimisations when graphics/shader programming with respect to the following kinds of issues;

  • batching
  • view culling
  • occlusions
  • draw order
  • avoiding state changes
  • triangles vs pointsprites
  • texture sampling
  • etc

Basically whatever the graphics programmer needs to know about modern graphics hardware in order to become more effective.

I'm not really looking for specific optimisation techniques, rather I need more general knowledge so that I will naturally write more efficient code.

  • \$\begingroup\$ Batching has less to do with hardware and more to do with APIs. State changes are similar, as is viewport culling, "triangles vs pointsprites", etc. \$\endgroup\$ Nov 24 '12 at 4:50

Fabian Giesen's series of blog posts A Trip through the Graphics Pipeline is the best place I know of to get an under-the-hood view of how modern GPUs work, and what APIs like D3D and OpenGL are really doing for you.

  • 1
    \$\begingroup\$ I've read the first two articles in this series. Looks like it might be exactly what I need. \$\endgroup\$
    – Ken
    Nov 27 '12 at 21:45

Not the answer you're looking for? Browse other questions tagged .