Normal Mapping

Our game engine is – from a renderer point of view – legacy.

It was written with flexibility and performance in mind, but back in the days of OpenGL 1.1. Thanks to Microsoft refusing to update the driver support – it’s always been a case of adopting ARB extensions to bring in new features as OpenGL moved on. It supports shaders, but some of the more powerful OpenGL advances have been left on the “To Do” list.

Now we’re at 4.x, and the renderer could literally do with a kick into this millenia!

As it stands – this means normal mapping for arbitrar

y geometry isn’t supported by the engine. Our 3ME model format doesn’t cater for tangent space (a simple change), and the renderer itself can’t pass the data to the GPU even if it had it.

I faced a major task in bringing the visuals up to current standards and expectations – pretty much everything wants normal mapping these days!

The graphics API would be no issue, but I’d have to update all the application frameworks on all platforms in unison, ensure everything works and no surprises are too be had on OpenGLES2.0, etc. This would be a huge time suck, and would hamper the pitch work we’re doing in the meantime. I wasn’t looking forward to it just to get normal mapping in.

But, we need the visual boost to compete with todays graphics bar and get decent video for the trailers and screenshots…

I bit the bullet and decided to take a look. Now I bless the ARB extension set! I quickly found I can add the extensions needed to submit tangents to the GPU. I also found I could easily update 3ME to cater for the tangent vectors. Within a couple of hours – normal mapping was in!

Thanks OpenGL! Thanks ARB! and thanks to the guy who designed our engines renderer and model format! I wonder who that could be… 😉

Bear in mind I designed and wrote the rendering API a lot of years ago, so I think I can be very smug that it’s still so easy to make major changes without breaking everything 🙂

That said – we still need to kick it to use OpenGL 4.x to get some major performance improvements and optimisations – but now that has become an exercise “for later”.

Detail Mapping at Work


  • Facebook
  • Twitter
  • Myspace
  • Google Buzz
  • Reddit
  • Stumnleupon
  • Delicious
  • Digg
  • Technorati
Author: Mak View all posts by

Comments are closed.

Subscribe to The Dominium Observer Newsletter!