GILES.ROADNIGHT.name

C++ 3D Rendering Program

Screenshot
Click for larger image
Screen shot of teapot gourad shaded with multiple light sources

I wrote this software for my C++ course work at University. The set course work was an Object Orientated project in which a bank had to be modeled with accounts, transactions and customers. As I was interested in graphics and gaming I wrote this program instead taking what I had learnt when writing the VB project and extending it.

This software does not use any hardware acceleration and does all the calculations and rendering itself. The only thing that DirectX is used for is getting input from the keyboard and using directDraw to draw pixels to the video card memory.

Features

  • Wire frame / Flat Shading / Gourad Shading
  • Z-buffering / Z-sorting
  • Mesh Loading from a file
  • Multiple Meshes
  • Multiple light sources
  • Keyboard control of meshes and lights

Documentation

The full documentation for this project (38 pages) can be viewed here.

Downloads

An executable of this project can be downloaded here (444 kb).
Requirements:
To run this program your video card must support a resolution of 1024*768 and 32bit colour. A processor speed of at least 1000 MHz is recommended.

The source code for this project can be downloaded here (582 kb).
Requirements:
The source code can be viewed with notepad by opening the .cpp files however to compile this program you will need Visual C++ 6.0 and the Microsoft DirectX 8 SDK.

Screen Shots

Click any image to get a larger version

Screenshot
Screen shot of teapot drawn in wire frame

Screenshot
Screen shot of teapot drawn in flat shade mode

Screenshot
Screen shot of teapot drawn in gourad shading mode

Screenshot
Screen shot of teapot gourad shaded with multiple light sources

Screenshot
Torus Knot gourad shaded with multiple light sources

Screenshot
A sphere and a torus rendered in different colours showing Z-buffering