Friday, February 6, 2015

I have compiled a little demo using an updated version of my deferred renderer from 2008.

I updated the shaders to conform to the latest version of OpenGL and GLSL and optimized the rendering pipeline. The performance is still terrible at higher resolutions, though, which is a general problem of the deferred rendering approach but is also due to the engine's general design. There's OpenGL calls scattered everywhere, making it very hard to eliminate redundant draw calls. Also, a fullscreen quad is rendered for a every light, even those that only take up a fraction of the screen. I did, however, implement some optimizations into the shaders, e.g. normal compression using stereographic projection.

The demo presents the main features of the engine: dynamic lighting and soft shadows, integration of the physics engine Bullet Dynamics and some post-processing effects such as light bloom, depth of field, dynamic reflections and screen space ambient occlusion.

I am particularly proud of the soft shadows algorithm, which produces good results even on low resolution shadow maps. It is a combination of variance shadow mapping and two subsequent gaussian blur passes applied to the shadow map.

I created the scene using the no longer supported Milkshape3D which started crashing every few minutes after I was halfway done. I'm glad I switched to Blender for my later frameworks. All textures are licensed from gametextures.com. The skybox textures I found here.

You can download the demo here: Backyard Demo (117 MB, Windows only). Please make sure you have the latest drivers for your graphics card installed and let me know if you have any problems running the demo! Also, you can check the file startup.log for shader compilation errors.

Here are some screenshots with medium settings (which is all my laptop with integrated Intel graphics can handle):

No comments:

Post a Comment

What is Wunderwerk Engine?

Wunderwerk Engine has started as a graphics engine in 2004 but is slowly evolving into a fully featured game engine.

It is now in its fourth iteration with every iteration being a complete rewrite. The first three iterations have been written in C++ and OpenGL; the latest iteration is written in TypeScript and uses WebGL, allowing for native, hardware-accelerated 3D graphics in the browser.

And who are you?

Hi, my name is Matthias. I live in Mannheim, Germany. I'm a programmer and linguist.

I would love to turn my passion into my career and break into the games industry.