Rewriting the graphics engine!

by

I’ve for some time been busy working at my bachelor degree project (which happens to be a 3D racing game written in XNA with awesome pre-pass lighting (aka deferred lighting)) and now I’ve just started programming at this project again. I decided that my old graphics engine was too slow and also that it was using a boring lighting model with huge overhead (needed to render the scene 1 + N + S, where N is the number of lights and S is the number of lights with shadow, times) which was pretty slow. I’m also moving on to DirectX 11 but 10 is going to be supported as well, and so far it’s looking very nice.

The general design of the graphics engine is taking shape, it will mostly be a lightweight wrapper around D3D11 with practically no virtual functions (the old graphics engine was basically made up of virtual calls) and I’m going to rely more on std::tr1::shared_ptr this time in order to avoid keeping track of resources as much. Right now I’m messing around a bit with D3D11 and implementing bits of my wrapper classes as I discover more details about the API. My, quite unrealistic I’m afraid, goal at the moment is to have a deferred lighting engine with light propagation volumes in one and a half week. I’m currently rendering the normals and depth of a cube as the first step of the deferred lighting algorithm, so I’m about to start with the lighting system which hopefully will be finished today and I need to implement a couple of differend scene nodes for my new scene graph so that I can start to use this system for real.

~Daniel

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.