1. Static lighting, lightmapping.
Lightmapping is very important for me as i’m lazy graphic designer and i love to have some help with lighting. Of course base for robust lightmapping techniques is Global Illumination.
Thanks to GI we have nice, realistic, smooth gradients in scene. Great addition to GI but not neccesery connected with lightmapping is Tone Mappinig. It’s mostly usefull if we go for realistic style. But either way i like to have possiblity to bake tone mapped version of light.
Last but very important thing is Image Based Lighting. I just love games using this techinque to produce static lighting for scenes. First one that comes to my mind is Killzone 2 and 3. Game looks great and uses IBL for static lighting and light probes for dynamic lighting. These two provide great tools for artists.
So perfect solution for me is possibility to create static lightmapps using Global illumination, Image based lighting and of course standard lights including mesh lights. Which engines provide full support for all these features. None within my indi budget. But we can create nice and cheap pipeline which will provide us with all these features. So recipe for great static lighting goes like this:
- Blender 2.*
- Vray standalone
- Great Blender plugin for vray http://vray.cgdo.ru/
I can’t wait to buy full version of vray to start production tests. For now i used demo version and baking works great. Quality of vray plugin for blender is outstanding! As for price, in EU it’s 315 Euro for Vray and 35 Euro for USB dongle. Blender of course is free.
So final price tag for our static lightmapping workflow is 350 Euro which is nice!
2. Dynamic lighting with deffered shading and light probes.
Forward lighting is big performance eater. Because of that there was need to create more flexible solution. Currently most popular approach to dynamic lighting is deffered shading. This technique is great for crowded scenese with many lights. Drawbacks of deferred shading are bigger performance drop for simple scenes and some problems with big lights (which can be overcome with tile bassed deferred shading).
Second, additional technique to deferred shading is dynamic lighting using Light Probes. Idea behind it is very simple. Artist create light probes in crucial parts of the map. Then these probes are used to light dynamic objects like characters. In connection with static lighting, light probes can create immerse enviroment.
One probe contains approximate light information from all main directions at specific position in scene. Best solution to generate light information is to use Spherical Harmonics. Ready to use solution with explanation is presented in „Orange book” http://www.3dshaders.com/home/.
How to create cheap pipeline which will include those two solutions? I can’t get anything that will be perfect.
Esenthel engine:
- Deferred lighting
- Available Shader pipeline
- Sadly no Occlusion Culling.
- 150$ and license for one game.
Unity3d
- Deferred lighting
- Available shader pipeline
- 1500$ for Desktop, additional 800$ if we want android and ios. (or additional 3000$ if we want advanced).
Shiva
- No deferred lighting
- No shader pipeline
- 223$.
UDK
- Deferred shading
- Node Shader pipeline, Don’t know if it’s possible to write more advanced shaders with custom input, needed for Light Probes.
- 99$ and 25% after first 50 000 $.
So there is no perfect solution. I could use Shiva for mobile and Unity3d for desktop. For now that idea looks best. But if i could implement occlusion culling in Esenthel i would save some money.
UDK looks promising and it could replace Unity3d. But i need to test shader node pipeline. If implementation of Light probes will be possible i will go with UDK.
If not i will try to write implementation of occlusion culling for Esenthel, based on available papers and COH alghoritm. If i succed i will go with Esenthel for Desktop and i will stay with shiva for mobile and tablets.
If i fail with UDK and Esnethel i will need to start saving money for unity3d.
I also thought a little about using Ogred3d and collect some available libraries, but after some research i decided that i’m to stupid for that.
I’ve got nice solution for static lighting and some open selections for dynamic one. Of course robust dynamic lighting is not so important, especialy for mobile but i want to create immersive maps and light probes could help me with that.

