Two weeks ago we we posted some screen shots of the new marines in Natural Selection 2. We were really happy to hear the overwhelmingly positive response to the new marine design.
There were a lot of comments and questions about the renders we posted, so this week I put together a video to show all of the components that make up the rendering system in our engine.
Here's what you're seeing in the video:
Wireframe – This shows the geometry that make up the objects visible in the scene. Here you see about 100,000 triangles. Each marine has over 13,000 triangles!
Normal Map – In addition to all of the geometric detail in the models, we get even more detail by using a normal map. The normal map causes flat triangles to be lit as if they were actually more complicated surfaces. For our models, we generate the normal maps from incredibly high polygon meshes.
Texture Map – The texture map is a hand painted image that specifies the color of the models.
Specular Map – The specular map is also hand painted and tells the rendering engine how shiny the surface is and what color the reflected light should be. For metals this is typically similar to the surface color. For the skin, we use a blue tint to counteract the warm tones of the texture and give the result cool white highlights. The cloth parts are completely black so that they won't be shiny in the final image.
Gloss Map – The gloss map also helps define the shininess of the surface, but in this case it's how smooth the material is. For a really smooth surface – like a pool ball – the highlights will be very tight, but for rough materials it will be broad. There isn't too much detail in the gloss map because this effect tends to be fairly subtle.
Lighting – To determine how bright each pixel in the final image will be, the rendering engine computes a number of lighting passes. Each pass uses the normal, texture, specular and gloss maps to figure out how much light is reflecting off the surface and entering the camera's lens. Here we're just showing the lighting passes without the influence of the texture map for clarity. Shadow maps are also used to determine which parts of the scene should be in shadow, although not every light casts a shadow for efficiency.
Ambient Occlusion – The rendering engine applies a screen space ambient occlusion technique to add even more shadowing detail. Ambient occlusion is a measure of how much light from the environment is blocked by nearby surfaces. We use a simple approximation to darken the crevasses that aren't handled well by the shadow mapping system. The ambient occlusion is applied as a darkening effect over the final lighting; this isn't physically based, but gives us the results we're after.Combined – Here the lighting and texture mapping are shown combined. In practice this is actually done during the lighting passes.
Atmosphere – The atmosphere pass simulates the effect of light hitting tiny particles in the air (here's another example). This has become one of the "signature" effects of our rendering and you can see it put to extensive use in our other videos.
Color Grading – Also called color correction, color grading is the process of adjusting the brightness, contrast, color levels, etc. of the final image. This gives a lot of control over the scene that can be difficult or impossible to achieve by tweaking the lighting and texture maps.
We hope you've enjoyed this "under-the-covers" look at our engine. You can also see our rendering engine at work (with motion blur!) in the teaser video we released on the main site.
Ouch, that's pretty heavy on detail. Makes it look pretty though.
Not sure I want to know what your minimum computer specs for running everything on high would be.
Amazing work!
This is pillowy mounds of win you have created there.
Great work, great models, little too shining but nice.
I love these developer notes... very interesting to see what goes into the creation of a game and how technology eveolves with new effects etc... awsum stuff this =]
cool
Game looks great as usual...however your diffuse textures really are pulling the art down. Your texture artist just can't match the skill level in the concepts (which is a shame).
lol smurf whine whine whine
This was fantastic. The video would have been great on it's own, but then to explain it all in quick simple terms was an added bonus.
That is really amazing all the components needed, to make something from ok to totally awesome.
This is an excellent example of developer noting. I love this game (and it's Half-Life mod predecessor) and love how it's coming along! Hope to see more development videos and the like :)
The models look super sexy! Loving the engine. Hopefully it'll run ok on my end.
Love that you guys to the time out to give a detailed breakdown like this. Can't wait to see more if this game!
Wait...is this out? haha sorry for my stupidity
No, but you can pre-order it and get early beta access.
Thanks, I guess ill go do that now.
This game is gonna kick *** ... seriously, it is great by just looking the videos/images
Looks great, but is 13k per character plus all those passes really feasible? Your AO shader for instance looks pretty accurate so I imagine that's doing a lot of sampling. I'm not criticising or anything, I realise you've thought all of this out, I'm just interested how you're dealing with such complexity?
What can you say? Amazing. If I hadn't seen it from wire frame on up I'd say that the finished image was a really nice looking piece of concept art.