AngelCode.com

Local developer resources

When writing my tutorials I'm assuming that the reader has basic knowledge of C++. If you don't then I suggest you pick up a good book on the subject at you local bookstore and start learning it before continuing.

When you read the tutorials you have to keep in mind that there are many solutions to the same problem. My tutorials are only meant to give you a starting foundation to build your own solutions on.

Unless stated otherwise, the source codes are available for educational purposes only, i.e you may download them and learn from them but you may not use them in your own projects without my expressed permission.

A = article, E = executable, S = source code

DirectX 9

Bitmap Fonts E, S Jan, 2008
This little sample shows how to write text using bitmap fonts. The bitmap fonts are generated by BMFont, and rendered with CFont from the AngelCode Tool Box.

Normal mapping E, S Dec, 2007
This little sample shows how to do tangent space normal mapping.

Shadow mapping E, S Nov, 2007
This little sample shows how to do shadow mapping.

DirectX 8

Fast metaballs A, E, S Apr, 2001
Metaballs are very popular in computer demos and have been around for a long time. I've always been fascinated by them and the forms they create. In this article I describe briefly how to compute metaballs, but I'm going to focus on an algorithm I came up with that let's you make them fast, very fast.

DirectX 7

Overlay surfaces E, S Oct, 2002
This demo will show an animated image like an old TV without signal on your desktop, under your windows and icons. It does this by using DirectDraw overlay surfaces that are masked to the desktop background color.

Particle system E, S Jul, 2000
I initially intended to write a tutorial for this particle system. But lack of time and motivation put an end to that project. Luckily I had finished the program before that. So I present it to you now in the form of a demo with hopefully easily understandable code. I would also take the time to thank SHilbert, Shinkage, and Ysaneya from the GameDev.net forums for giving me some helpful pointers on how to make it more efficient.

Triangular bezier patches E, S Jun, 2000
This is a program I did to test the properties of the triangular bezier patch. The reason for the program was that I wanted to examine different ways to smooth geometry based on triangles to give the illusion of higher detail. Unfortunately the triangular bezier patches have troubles at the edges between surfaces, it is very hard to get a smooth surface there.

Introduction to Direct3D A, S May, 2000
In this tutorial we will expand our simple window, and add some Direct3D to it. You will learn how to initialize Direct3D with the help of Direct3DX and then render a rotating colored triangle. This tutorial is only meant as an introduction to Direct3D and Direct3DX.

Graphics theory

The World and the View Matrix A Mar, 2002
I explain how the world and the view matrix works in an ordinary 3D geometry pipeline. This article is for the people that are new to 3D graphics, and as such I try to minimize the mathematical talk.

Procedural textures

Texture Generator E, S Jun, 2003
Here you will find both an application that allows you to experiment various algorithm through an easy to use scripting language and several example scripts for generating different procedural textures.

Generating Perlin Noise A, E, S Feb, 2002
This article describes both the theory and practical implementations of the perlin noise. It doesn't tell you what to use perlin noise for though, for that you'll have to use your own imagination.

Scripting

AngelScript A, E, S Jun, 2003
AngelScript is an open source free library with a script compiler and virtual machine. It is designed to easily interact with C++ applications as such it shares many features with C++ such as data types and syntax.

SuperCalc E, S Jul, 2001
I had a few hours over at work and decided to put some usefulness to them instead of surfing the net. I wrote this fully functional calculator in about 5 hours. It allows you to write mathematical expressions that it calculates for you. You can use all the standard mathematical operations as well as nested parenthesis and some built-in functions such as sin(a), mod(a,b), and more.

Windows API

Drawing on the desktop E, S Sep, 2002
This little test program was made to show how to draw on the desktop without hiding the icons. It uses windows hooks to monitor the messages sent to the desktop window and makes its own drawing between the drawing of the wallpaper and the icons.

Coupling a window handle with a data object A Jul, 2002
This small tutorial will teach you how to use a windows hook to catch the creation of a window in order to couple the window handle with a data object. This is very useful when creating wrapper classes for windows.

A simple window application A, S May, 2000
Since for almost all windows application you need to create a window and handle its messages, I have decided to write a small tutorial on just how you go about to do that. The application that I have created for this tutorial doesn't do anything fancy, it just sits there on the screen allowing the user to resize and move it.

Miscellaneous

Calling conventions on the x86 platform A Aug, 2004
This is a study on calling conventions in C++ and how they are implemented on various compilers. Can be used as guideline for those who are interesting in adding support for more compilers.

TEA - Tiny Encryption Algorithm E, S Sep, 2003
This little demo shows the simplicity of the TEA block algorithm, an 128 bit symmetric encryption algorithm.

Introduction to MMX A Aug, 2002
For those of you that like to dig deep, this tutorial will give a taste on MMX and how it works, as well as why and when to use it. Assumes you have some knowledge of assembler already.

The Discreet Wavelet Transform A, E, S May, 2002
This is an introductory article that explains what the Discreet Wavelet Transform is and how it works. It does this without going into too much mathematics, that is left to the mathematicians.

Timing and FPS A Aug, 2001
This tutorial is for those of you who don't already know how to utilize time in your projects to get smooth movements of your game objects. It also explains how to compute FPS for measuring the performance of your game.

Tips, tricks, and code snippets

Using NASM from within the Visual Studio IDE A Aug, 2002
Run-time link to the DirectX libraries A Aug, 2002