You've just tried to directly access one of the 32Bits tutorial or content pages. In January 2004 we underwent a major site overhaul, implementing a new content management system & design to improve the service we give to the developer community. As part of this, almost every page on the old website was moved to PHP and put in a different directory structure (which is why you're seeing this page, instead of the one you wanted).
Please go to http://www.32bits.co.uk to access the site - all the tutorials and products are still online and directly accessible. This page is still visible to allow search engine spiders to pick up our tutorial links.
Sorry for the inconvenience, but all this was done for the benefit of our users! If you're unhappy with this (or just want some info), you can contact us from the link on the main site using an online form, or by clicking here to use your local mail client.
![]()
...to series 3 of the DirectX Basics set. We're going to get into some complicated principles in this tutorial, so if you're a beginner I suggest you resist the temptation to jump right into the kewl stuff, and go back to Series 1 to gain a complete understanding of DirectX & D3D.
![]()
In series one, we learnt the very basics behind DirectX, and how to manually access the back buffer. In series two we concentrated on 2D graphics, and building up our engine with timers and a base class. In this series we're going to begin to harness the power behind D3D, namely the 3D graphics pipeline. There's a lot of theory behind this, but I'll try to keep it to a minimum and show you as much code as possible. We're going to flit between theory and practical coding, because there is nothing I hate more than loads of theory and no implementation. I've had the dubious benefit of reading a fair few books & websites on 3D and D3D itself when I was learning, and I believe they approach the teaching process in the wrong way. I'll do things my way, and hopefully you'll find the learning process less painful than I did!
To begin with we're going to go back to the single .cpp source file, and ignore our class based code. You're going to see a lot of new topics introduced here, and I want to show them in the simplest way possible. Putting them into classes to begin with will complicate things unnecessarily. Don't worry though, all of Series 2's code won't be wasted as we'll start using it again shortly.
![]()
I said this at the start of Series 2, and I'll repeat it. Make sure you understand the material in Series 1 and 2 before getting started on this series, as confusion at this stage will be fatal for your coding experience! I also want to make one thing clear up front. Despite what you may believe, and what others may have told you, you don't need a degree in maths to be able to code 3D apps. My mathematical ability is very poor, so I will most definately be going easy on the whole math-equasion side of things. There will be instances where we'll need to work with some silly numbers, but I'll walk you through that. If you're approaching this tutorial as a maths genius and wanting to learn the mathematical theory behind everything we're about to do, this tutorial series is not for you - sorry! There are much better resources out there to teach you maths, and I encourage you to make use of them.
Remember one thing. A lot of the algorithms & maths behind everything from the simplest 3D object movement to Fast Fourier Transforms were created by some extremely clever people, who publish them for everyone to use. Never be ashamed to use a pre-existing algorithm where one is available.
![]()
DirectX 8 Edition
1. Hello, primitive - Discussing the 3D side of D3D8, the 3D rendering process and drawing a triangle on screen
- Different primitive types, culling, FVF flags and using a single vertex buffer for multiple objects
3. 3D in a 2D world - The Projection, View and World transformations, creating a 3D world on a 2D monitor. 4. Making things look purtee - Basic & advanced texturemapping, texture stages and single pass multitexturing 5. I can see the light! - And the material too, in this lighting and materials tutorial, including a 3D cube class.
DirectX 9 Edition
1. Hello, primitive - Discussing the 3D side of D3D8, the 3D rendering process and drawing a triangle on screen
- Different primitive types, culling, FVF flags and using a single vertex buffer for multiple objects
3. 3D in a 2D world - The Projection, View and World transformations, creating a 3D world on a 2D monitor. 4. Making things look purtee - Basic & advanced texturemapping, texture stages and single pass multitexturing 5. I can see the light! - And the material too, in this lighting and materials tutorial, including a 3D cube class.