Over the past week I’ve been doing some final polish on the textures and lighting in the engine room to kind of set a final “quality standard” of how good all the rooms and lighting should look.
This post gets a bit detailed and possibly boring in places, but if you’re interested in how we make things pretty, read on.
A lot of the more bland or unrealistic looking texture have been replaced with more interesting ones, with a lot of nice weathering work done with the help of Quixel’s dDo software (http://www.quixel.se/). No longer are any of the room texture boring photosourced stuff with no/boring normal maps.
The light maps have been revised a LOT.
To explain this properly, here is a quick explanation of what maps we use for the lighting of the car/engine and its room.
All these maps are rendered out from the engine room scene in 3ds Max, with some nice high quality lighting and Mental Ray GI.
The Reflection map is just a picture of the lit room taken from a set of cameras placed where the engine sits, look outwards at the walls/roof/floor Its used so the chrome/shiny things have something to reflect.
The Engine Lighting Irradiance map is made by placing a white sphere in the centre of the room in 3ds max and recording how/what light hits it. It’s used for lighting the engine/car/whatever objects are in the centre of the room. Its quite blurred and generic, as it has to light any object you load, but does a good job of replicating the real lighting in the room.
The Room Lighting Irradiance map is done by rendering the same camera views as the Reflection map, but taking the Lighting pass, which only shows where light falls in the room, and ignores any textures or anything of that sort. It’s much sharper and more detailed than the engine lighting map, as its lighting specific objects that will stay still and not change, so its OK for their shadows and lighting to be “baked in” to the scene.
The Specular Map just has the brightest highlights in the scene, in this case just the light fittings, its used for shiny but not reflective stuff, for example the paint on rocker covers, or the highlights on cast aluminum parts.
The main problems with the existing lighting was the fact that both the engine room and the engine itself were lit far too brightly, and our attempt to use 32bit HDR cubemaps to give a good dynamic range just ended in everything being different shades of too bright.
We’ve toned down the Room Lighting and Engine Lighting maps to be quite a lot darker, and this has much improved the contrast and colour of everything in the scene. It even looks quite acceptable with SSAO off now, as the shading of objects has a bit more finnesse and isn’t over bright, which is great news for those of you on low end systems, as SSAO is a big performance killer.
The Room Lighting cubemap also never quite lined up with the ceiling lights properly, so they’ve been set to use their own lighting settings and self illuminate their bright bits. They look much better now.
Both the specular maps on the room and engine as well as the specular cubemap have been tweaked, so now only things that should be shiny are shiny.
We also converted all the normal maps to use the DXT5/NM Compression format, which throws out one channel then kind of rebuilds it when you go to use it ingame. This gets rid of a bunch of the horrible DDS compression artifacts that could previously be seen in some of the normal maps, yet keeps the normal maps to the same size (data wise) See http://www.poopinmymouth.com/tutorial/dds_types.html if you want to know more about what that means. But for you players it means that things don’t look randomly speckled.
That pretty much sums up what I’ve been up to the last few weeks. It seems like needless tweaking, but now we’ve got a solid idea of exactly how textures and lighting should be done to get the look we want, I can then start applying the same tactics to the Car Design room.
And indeed that’s the next thing I’ll be working on, getting the Car Design room lit properly, so that we can accurately see how good car and fixture models will look in game, and that way be sure that any texture or shader work we do is going to look right in the final product.
Zeussy has also, along with helping me with lighting and shader changes, also been putting in a lot of work on how Headlight and Grille stamping works, and its getting a lot better, but we’ll talk about that one later.
This is probably the most in depth dev post I’ve done in a while. So let me know if you want us to post more of this kind of stuff now and then, or if its just boring