June 23, 2009

Mugi

The Mugi simulator can be downloaded here. Download the latest version for the best features.

Please note the simulator requires DirectX9c and does not have an installer. It can be simply unpacked from the zip archive to an install folder of your choice. I've done this to avoid writing to the registry so when your install folder is deleted, nothing whatsoever remains.

The following link DirectX9c Installer can be used to install DirectX.

If you have an Xbox controller plugged in it is used automatically. A two stick analogue joystick, keyboard, or mouse can also be used.

Xbox controller or joystick is the best way to play our flight simulator.

Xbox controllers can be downloaded from here.

February 13, 2009

Introduction

This blog will feature programming my current programming projects and follow my current interests. All the demos uise my abstracted cross platform graphics engine called 'Struffy'.

  • .Net
  • Cross platform game engine design
  • DirectX
  • OpenAL
  • SQLite
  • PHP
  • Collada
  • ODE and Bullet physics SDK
  • Mugi

Please click on a feed in the "blogs by subject" on the right hand side.

The following will link to my published source files. Empty at the moment but soon find the source code here.

For best results download the latest tech demo in the bottom right.

The following link DirectX9c Installer can be used to install DirectX. You can alternatively search the Microsoft site using the search words "DirectX End-User Runtime Web Installer".

All the demos require DirectX9c run time, but otherwise do not require installation. Unpack the zip, double click on the executable. Removing the folder will completely remove the demo from your system. Your computer will need a graphics card with Shader model 3, or above.

Car simulation

The car demo uses the Bullet SDK to simulate a car. Suspension is simulated using four spring constraints using a cylinder for each wheel. The game logic and renderer are decoupled so the logic can run a fixed 60 frames a second.

February 09, 2009

Terrains

This is a terrain rendered using a real time adaptive mesh. The wireframe view is shown below to illustrate how triangles concentrate around areas of roughness. This terrain algorithm is my own based on pre-chunked tiles. At run time only 16 bit index are uploaded. It's still too slow, so future releases will include the dual queue implementation from ROAM.


Download Terrain here, but this is work in progress. Currently the terrain holds a few lookup tables for the terrain which is 1 * 2^21 tiles big. As you can imagine, this is a lot of memory.

March 15, 2008

Normal mapping

I've added normal mapping to each of the skinned shadowing routines. To achieve this binormals and tangents were added to my vertex declaration and exported. The normal map is decoded in the pixel shader and a simple dot product used against the light vector made from multiplying the world space light vector and 3x3 matrix formed from tangent, binormal and normal.

March 10, 2008

Queried Virtual Shadow Maps

The latest uploaded shadow map technique is QVSM. The QVSM paper describes an approach where a large virtual texture can be used for the shadow map through several tiling and rendering schemes.

'Tech' demo 11 uses their brute force approach to tile shadow maps with multi-pass rendering. This is slow, but the paper goes on to discuss improved algorithms. I'm going to try these next.

I realised the first shadow map examples used a perspective matrix. I should have used an orthogonal perspective matrix for the light projection. This makes better use of the texture so the shadow map has a higher effective resolution.

March 04, 2008

Archived shaders

I use archives to organise data at a packing stage. They also reinforce a stringent memory layout as the game is running. Archives are just a collection of resources. For example, a vertex buffer, material and texture are resources.

The HLSL shaders are now resources. This enables the renderer to hot-swap between different shaders for the same model. "Tech" demo 10 shows a comparison between shadow maps and Variance Shadow Maps. The shader resource has enabled easy shadowing of the motion capture guy.