Advanced LBA Engine Project





Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on 6 Jun 2008

(Check out the 2nd Video of this engine at http://www.youtube.com/watch?v=Zjsj-o...)

This is the first test of an advanced 2D isometric engine using the artwork from LBA (Little Big Adventure).

It is just some experimentation with having dynamic lighting and shadowing integrated into a 2D environment. This is a realtime example

A few technical facts:

This sample uses Pixel Shader 2 (PS2).

The level tiles are 2D images that are projected onto 3D blocks created at level load time. The blocks are "joined" together using a quick algorithm to prevent unneeded polygons. A full brick is comprised of 12 polygons. (2 Tris per side of the cube). This allows lighting/shadowing and direct interaction of 3D characters in scene.

There are 2 lights in this scene which are both spotlights. Each light has a 128x128 depth map that is rendered from its position. This depth map is then blurred and projected back onto the level and compared with the depth from the light. This is simple VSM (Variance shadow mapping).

There is a post processing bloom filter to add a slightly more cinematic feel.

Coded in: Microsoft Visual C++ 8
Graphics API: DirectX9

Its not perfect, there are a few things that need to be considered:

A) Simply loading levels from an LBA Grid file is not enough, since that does not contain light position information. The 3D blocks of some tiles require different normals to acheive a correct look - both these items need to be set in some external editor.

B) Shadows can never be perfect since one angle of a 2D tile does not have sufficient data. But I think it still looks nice with softer shadows.

C) The method I used to project the 2D tiles onto the blocks was really rushed and so is not very correct, this results in "torn tiles" ^_^


to add this to Watch Later

Add to

Loading playlists...