Thursday, October 25, 2007

Oversteer: a new driving simulation project

On October 23 I started a new exciting project of a driving simulation for Windows and XBox360, named "Oversteer". After the first day, the oversteer project website received more than 300 visits and the most important italian portal about driving simulations drivingitalia.net posted an article in the news section and in the forum.

Thursday, October 4, 2007

F1 Japan GP comment

Ferrari did a great mistake with the strategy: starting with intermediate tyres was a big risk and Ferrari's drivers went out of track several times during the safety car laps! The email from FIA which constrained teams to start with full wet tyres arrived to Ferrari after the GP start! But this fact is only an extenuating circumstance to the big mistake of starting with intermediate tyres. Kimi Raikkonen did not succeed to overtake Kovalainen in the last laps, losing the last chances to win the Drivers' Championship.
Fernando Alonso did a mistake due to the tenseness but also to some aerodynamics problems on his car, caused by a previous collision with Vettel. Lewis Hamilton was very able to manage such a difficult race but he was very lucky too because he had no damage in a collision with Kubica.

Vehicle dynamics for racing games

I found in the net an interesting tutorial (in english) about vehicle dynamics for racing games, written by Ted Zuvich. This tutorial is a good starting point to create a racecar simulation game.

download tutorial

Wednesday, October 3, 2007

My workshop at Webbit 2003

During Webbit , an international exposition of ICT technologies, which took place in Padova in May 2003, i did a workshop titled "3D Engine Architecture" for the italian website gameprog.it.

3D Engine Architecture Workshop slides

Introduction to SDL library

SDL (Simple DirectMedia Layer) is a multiplatform multimedia library. It's very useful for writing 2D arcade games which can run on all the main platforms: Windows, Linux and Mac OS X. I wrote a little introductory article, which you can download from the link below.

article: Introduction to SDL

Tuesday, October 2, 2007

DirectX 9.0 Shaders articles

This is a little series of articles about shaders in DirectX 9.0 i wrote in italian language for an italian magazine.

article1: Introduction to Vertex Shaders
article2: Using shaders in Win32 applications
article3: Lighting with shaders
article4: Pixel Shaders architecture

PortalX Engine Tutorials

After i created the prototype of the PortalX Engine, i realized it could be a good starting point for explaining how portal rendering works. So i wrote a series of tutorials about the design and the implementation of a simple portal engine. These 6 tutorials are now available for download in pdf format. I apologyze with foreign people, but they are in italian language because i wrote them for an italian magazine.

PortalX Tutorials download:

MD2 Bump mapping viewer

Looking at animated models in the widespread MD2 (Quake 2) format i noticed they generally are very poor of details because of the limited number of polygons supported by this format. So i had the idea to use bump mapping to improve their detail. I wrote a little viewer for MD2 models rendered with a bump mapping effect. I used shaders written in HLSL using the shader model 2.0 for DirectX 9.0c. The only difficulty was on pre-computing tangents. In fact an MD2 animated model stores a vertex list for every key-frame of the animations. So is necessary to compute tangents for every key-frame. In a typical model there are hundreds of key-frames so this operation is very slow if it's done after loading the model. The solution is to pre-compute the tangents and store it in a separate file; in fact the md2 format does not support tangent data in the vertex format.


Features:

  • Per-pixel diffuse and specular lighting model, implemented using shaders
  • Pre-computed mesh normals,binormals,tangents for doing tangent-space per-pixel lighting
  • Uses HLSL pixel and vertex shaders, version 2.0
  • Use of specular per-pixel lighting permits more detail, even on low-poly models
  • Supported OS: MS Windows 2000/XP
  • Uses DirectX 9.0c API

download demo (6.57 MB)

XBsp Engine

In 2004 i was reading about Quake 3 engine design and so i decided to create my own prototype of engine based on bsp trees. It uses an interesting trick to speed-up the rendering of a huge level: pre-computed potential visibility set. The entire level is subdivided in convex sectors and then for every possible position and orientation of player camera are computed the adjacent visible sectors. All these computations are done at level creation time by the bsp compiler which makes a .bsp file. At runtime the engine reads the potential visibilty set and renders only visible sectors. This permits a great improvement in performances. Another interesting trick is used for speed-up collision testing: the engine uses low detail meshed, called brushes, for a first collision test.

Features:

  • Scene management based on bsp trees, optimized for indoor environments
  • Pre-computed Potential Visibility Set
  • Scene file in Quake3 .bsp format
  • Lighting based on lightmaps
  • Animated characters in MD2 format
  • Collision detection based on low detail meshes (brushes)
  • Game data stored in compressed archive
  • Sound support (mp3/ogg/wav/midi)
  • Supported OS: MS Windows 2000/XP
  • Uses DirectX 9.0 API

download demo (9.59 MB)

PortalX Engine

This is the first 3D Engine i developed. In early 2002 i was interested in a technique of space partitioning called "portal rendering" and so i developed a little prototype of engine based on this technique. I wrote a series of articles about the making of this engine, published by the italian magazine "Computer Programming".

Features:

  • Scene management based on portal rendering
  • Custom scene file format (.px) (Is provided an exporter for 3DSMax)
  • Realtime mirror effect
  • Teleport effect
  • Lighting based on lightmaps
  • Animated characters in MD2 format
  • Supported OS: MS Windows 2000/XP
  • Uses DirectX 8.0 or OpenGL 1.3 API

Video of the demo:




download demo (1.44MB)

Welcome!

In this blog we will speak about videogames programming and 3D Graphics in general. Another interesting theme is racecar vehicle dynamics and racecar simulation software.