New Rendering Engine

Previous years i used a forward renderer which lead to dull looking scenes because of the limitation of the number of lights. I had to use lightmapping in a few scenes to brighten them up and give the illusion that there are many lights in them. This year i’m taking a different approach; I’ll be doing deferred rendering, so now i can have a million lights in my scene at a cheaper cost (processing wise). I already got started, i’m following a tutorial series here and i already got a scene with a monkey lit with only 2 directional lights (I put in a ton more when i get point lights working). I did it in a few hours, i  thought it would have taken longer. Here’s a screenshot:

Point lights and spot lights are next.

With something as good as this comes with disadvantages. There’s the problem of rendering transparent objects and i’ll have do my own antialiasing, since multisampling cant be used, and that i’m stuck with one shader model (obvious choice is phong). Solutions to these is to forward render alpha’s and use FXAA, or some other shader-based antialiasing….or choose the lazy approach and do none at all. Lighting pre-pass is an alternative i’m looking into since i may want to have varying materials, here are a few links explaining what it is:

http://gamedevcoder.wordpress.com/2011/04/11/light-pre-pass-vs-deferred-renderer-part-1/

http://jcoluna.wordpress.com/2011/01/18/xna-4-0-light-pre-pass/

You must be really wondering why i’m doing deferred rendering with those disadvantages. The new game will take place in a futuristic/fantasy world which will have a lot of lights and other glowing objects, so proper lighting is a must. Another reason is because i have always wanted to do it :D. Almost every professional game out there uses it, or some variant. Plus, i have machine powerful enough to handle it. I had old laptops/desktop to develop on before, which is why i couldnt even think about doing it before.

Deferred lighting isnt the only new thing. Post processing effects like HDR(or just bloom), depth of field, radial and motion blur are also in the plans being made. I already got most of these done in my OpenGL framework, so converting them will be a matter of converting the shaders from glsl to hlsl and making a few changes to the game engine’s architecture.

Radial Blur:

Bloom:

Depth of field:

I did a few optimization to make the game engine faster and there are alot more things i can do. I’ll show you what i did some other time.

The name of the game engine is called FLO by the way, i’ll tel you why its called that at another time as well.

That’s it for now, see ya

Advertisements

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 )

Google+ photo

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

Connecting to %s