DirectX 6.0: Multitexturing and the End of Software Rendering
It feels like only yesterday we were wrestling with the clunky "COM" interfaces of DirectX 1.0. But today, Microsoft released DirectX 6.0, and it’s a mature, powerful API that is finally ready to take on OpenGL.
The Multitexturing Revolution
The biggest news in DX6 is support for "single-pass multitexturing." Before this, if you wanted to apply both a base texture and a lightmap to a polygon, you had to render that polygon twice and blend the results. It was slow and used up twice the bandwidth.
Now, if you have a modern card like a RIVA TNT or a Voodoo3, you can do it all in one go.
// Setting up multitexturing in DirectX 6
pd3dDevice->SetTexture(0, pBaseTexture);
pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pd3dDevice->SetTexture(1, pLightmapTexture);
pd3dDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
This leads to much more realistic scenes without the massive performance penalty. We're also seeing the introduction of "Bilinear Filtering" as a standard, which gets rid of those blocky pixels when you get close to a wall.
The End of Software Rasterizers
For years, many developers (like the team at id Software) preferred to write their own software renderers because hardware wasn't flexible enough. But with DX6 and the sheer speed of modern GPUs, that’s becoming impossible. You can’t write a CPU-based loop that can compete with dedicated hardware doing multitexturing at 100fps.
Looking Ahead
DirectX 6.0 marks the point where the hardware started leading the software. We’re no longer just asking "how do I draw this triangle?"; we’re asking "how do I use these new hardware features to make the triangle look better?" As we move toward DirectX 7 and beyond, I expect we'll see even more fixed-function features moved onto the GPU, eventually leading to full hardware transform and lighting. The age of the software renderer is officially over.
Aunimeda develops mobile and PC games - from casual hyper-casual titles to mid-core games with complex progression systems.
Contact us to discuss your game project. See also: Game Development, Mobile Game Development