|
|
|
Terrain 3 (last updated 16th October 2006) download (899 KB) This latest project demonstrates a modified LOD technique based on GeoMipmapping. The LOD is applied on 17*17 node patches of terrain based on the distance from the viewer. Triangle fans have been dropped in favour of the much faster triangle strips which are stitched together using indices. The technique generates both the vertices and indices per frame, rather than paging from system memory. The advantages of this are a small memory footprint, and the ability to effortlessly alter the terrain on the fly. Texturing here is done with procedural texture mapping based on terrain height (generated at runtime), with an additional detail texture. A light map is applied to the terrain, built using slope lighting and terrain shadowing techniques, generated at runtime. The program also includes view frustum culling. |
|
|
Direct3D Terrain 1 (last updated 20th April 2004) download (475 KB) This project demonstrates terrain generated from a height map with Slope Lighting and Procedural Texture Mapping applied. Slope Lighting is an easy way of shading the terrain so that ground facing away from the sun appears darker, but without impacting the frame rate. Procedural Texture Mapping makes the colour of the terrain depend on it's height and is generated in real-time from the height map, thus making high ground appear white for example as if it were topped with snow. |
|
|
Direct3D Terrain 0 (last updated 20th April 2004) download (666 KB) This project shows a full detail section of terrain generated at run-time from a 512*512 height map. The main point of the this program is to demonstrate the need for LOD algorithms, since even this modest section of terrain draws over 524,000 triangles per frame and uses 16 mb of video card memory, even when using triangle strips. Hence terrain of 1024*1024 or bigger would be a real struggle with a full detail rendering method. The program also features Slope Lighting. |
|
|
Aqua Breakout (last updated 25th November 2002) download (0.99 MB) Aqua Breakout is a D3D version of Breakout. This version features a water theme, with realistically animated real-time water. The play arena is surrounded by an attractive 3d garden. The main aim for this project was to learn how to use dynamic vertex buffers, to gain more experience with D3D generally and to add more colour, more movement, and to make better use of the available polygons. The program includes support for hardware features such as Hardware Vertex Processing, W-Buffering, Anisotropic Filtering, Environment Mapping, Alpha Blending and Mip-Mapping. |
|
|
3D Breakout (last updated 25th November 2002) download (502 KB) 3D Breakout is a fairly basic but attractive Direct3D version of Breakout. It features a winter theme with falling snow, transparent game blocks, an icy sea, islands and a mountain backdrop. The camera movement accentuates the 3D nature of everything. As with the 2D version below, the higher blocks take more hits and the ball gradually accelerates as it hits more blocks. It also includes support for hardware features such as Hardware Vertex Processing, W-Buffering, Anisotropic Filtering, Alpha Blending and Mip-mapping. |
|
|
Direct3D Maze (last updated 21st November 2002) download (400 KB) Shown here is a screenshot of my Direct3D Maze program. The program includes collision detection, multiple levels and movement between levels via ramps, a much larger map, and a variety of room heights and shapes. It features hardware acceleration, robust device enumeration, mip-mapping and hardware vertex processing support. |
|
|
Direct3D Grass (last updated 19th November 2002) download (377 KB) This Direct3D program demonstrates a field with 3D polygon grass. The program can run with either 50,000, 100,000, 200,000 or 300,000 blades of texture-mapped grass. With hardware vertex processing this demo can push over 19 Million triangles per second on a GeForce 4. |
|
|
DirectDraw Raycasting Demo download (408 KB) This program demonstrates Raycasting. The interesting thing about Raycasting is that it isn't really 3D at all, it's just a simple trick involving projecting a line from the viewer for each vertical line on the screen, and finding the first block the line intersects. The distance to this intersection point is used to calculate a height value for the slice of wall to be drawn on that vertical line. |
|
|
DirectDraw Breakout download (381 KB) This program is a basic but functional and attractive DirectDraw version of Breakout. The ball accelerates on contact with each block and changes direction slightly based on the movement of the players bat at the point of impact. The higher the block, the more hits it takes to destroy. |
|
|
DirectDraw Software Cube download (81 KB) This program is a software rendered 3D cube, meaning that the whole thing is done with maths. It includes directional light-sourcing. |
|
|
DirectDraw Software Texture-Mapper download (108 KB) This program is a software rendered cube again, but with perspective corrected texture-mapping. In this program, the correct texture coordinates are generated every 16 pixels and in-between values are interpolated, which is considerably faster than working out correct coordinates every pixel, and almost exactly the same quality. |
|
Program
instruction are included in a readme.txt file. To extract the programs
you will need WinZip. Always
use a virus checker when downloading files from the internet. |