Welcome to my Managed DirectX tutorials with C#. All the code downloaded here will no longer run. The MDX 2.0 libraries expired on Oct. 5, 2006. You can read about it on Dave Weller’s blog. I’m hoping to delve into XNA or DX10 sometime in the future but that’s not going to happen anytime soon due to time constraints. To run the code, you can either convert the code to use MDX 1.1 or convert the code over to XNA. All tutorials were written using Visual C# Express 2005 and the February 2006 DirectX SDK.
For the start of this tutorial series, you’ll learn how to create a window in C# using Windows Forms. You’ll also learn how to modify this code to make it a bit more efficient.
In this quick tutorial, you’ll learn how to setup Visual Studio .NET 2005 so you can use Managed DirectX.
This tutorial will show you how to intialize Direct3D with the easiest, but not exactly the most efficient, method.
In the last tutorial, we initialized Direct3D the quick and dirty way. This time, we’ll query the hardware so you can get greater hardware support, which will speed up performance. We’ll also add fullscreen capabilities.
In this tutorial, you’ll be introduced to the C-Unit Framework, which will be used to create all future tutorials.
In this tutorial, we’ll create a video options dialog, which will allow us to change Device options during runtime.
In this tutorial, you’ll learn how to define and render basic primitives.
In this tutorial, you’ll learn about lost devices and how to handle them so your program won’t crash when you minimize or Alt-Tab away from your fullscreen application.
In this tutorial, you’ll learn how to speed up rendering performance through the use of vertex and index buffers.
In this tutorial, you’ll learn how to manipulate geometry with the three basic transformations: translate, rotate and scale.
In this tutorial, we’ll create a timing class, which will be crucial in performing all of our animations.
With texture mapping we can make surfaces look more realistic by slapping a picture onto them. This tutorial covers basic texturing methods, which will get you using textures quickly.
Add more realism to your games with lighting! In this tutorial, you’ll learn about the lighting system in DirectX and how to incorporate it into your programs.
Dynamic buffers allow us to change the contents of the buffer each frame. In this tutorial, we’ll learn how to use dynamic buffers to create a basic particle effect.
Displaying text is the easiest way to relay important information to your users. In this tutorial, you’ll learn how to render 2D and 3D fonts using the DirectX Font class.
DirectX Fonts are easy to use but bitmap fonts are prettier and faster. In this tutorial, you’ll see how to make a bitmap font system with the help of the Angelcode Bitmap Font Generator.
Tired of hard-coding all your vertex data? Learn how to load in geometry data from the DirectX .x file format to create complex geometry in a snap! In this tutorial you will learn how to load and display a static mesh.
In this tutorial, you’ll learn how to use a height map to render terrain. Height map terrain generation is a popular and relatively easy way to add nice outdoor scenes to your game.
Let’s start moving around the game. In this tutorial, you’ll learn how to perform the calculations that move and rotate a camera.
In this tutorial you will learn about multitexturing and texture stages and how you can use them to detail a terrain.
Frustum culling is an optimization that will increase the performance of our application by rejecting geometry if it is not within our view frustum.
In this tutorial, you will learn how to work with 2D graphics and animated sprites.
In the first tutorial of the GUI series, you’ll learn about the design of a GUI system and the creation of the supporting classes.
In the second part of the GUI series, you’ll learn how to implement text labels, panels, buttons, checkboxes, radio buttons, and sliders.
In Part 3 of the GUI series, we’ll learn how to create ComboBoxes, ListBoxes, and EditBoxes.
In this last part of the GUI series, we will learn how to use the GUI library that we have toiled over in the last 3 tutorials.
In this tutorial, you will learn about various texture methods such as compressing, filtering, and transforming a texture.
In this tutorial, you’ll learn how to copy images to offscreen surfaces and take screenshots of your applications.
Let’s make a game! In this tutorial we’ll make Tetris…except we can’t call it Tetris. So we’ll call it, Four Blocks of Fun.