Archive for the ‘ In Praxis… ’ Category

In Praxis… Atmosphere Revisited


As Reset development heads into the home stretch (September/October target for release) and Alpo continues working on gameplay and content, I’ve been adding missing features, fixing bugs and optimizing. One of the major remaining things was to complete the atmosphere technology. We’ve felt from the start that the world outside the gameplay area is also important for immersion. We want the player to feel like they’re on a planet and not just on an island. Read more

In Praxis… Ambient occlusion #theorythursday

I had never been satisfied with the flat look of Reset’s ambient lighting. We have baked large-scale sky occlusion, but it doesn’t have nearly enough resolution to account for the geometric detail in places like forests. We’ve had screen-space ambient occlusion (SSAO) for many years, but something about it just wasn’t right. So I decided to see if I could improve it!


The top image is without any kind of screen-space ambient occlusion. It’s just for reference. You can bash SSAO variants for their problems all you want, but games that strive for photorealism shouldn’t look like the top image these days. There are other methods, but they tend to be much more intrusive.

The middle image has a custom implementation of Horizon-Based Ambient Occlusion (HBAO). That’s what we’ve been using for most of the project. Nowadays NVIDIA has an implementation of their own in their ShadowWorks package. Theirs could probably provide similar quality at better performance. According to their numbers they could also provide higher quality with slower performance. So far I’ve decided to keep roaming the great expanses of different SSAO approaches on my own. Sorry NVIDIA. 🙂

The bottom image has a custom implementation based on Deferred Screen-Space Directional Occlusion (DSSDO). Like all SSAO approaches, I can’t believe how dirty of a hack it is, but it seems to work. Notice the stronger contrast on the ground under the fallen branches, the bush in general, as well as around tree trunks. Performance is currently about the same as with our HBAO implementation. Unfortunately even though the algorithm operates with spherical harmonics, it doesn’t produce a visibility SH that you could multiply with your lighting SH. We just evaluate the occlusion SH using the pixel normal and use the resulting scalar occlusion value.


In Praxis… Impostors

It’s been a while since our last blog post, but it’s only because we’ve been hard at work, we swear! We haven’t even thought about rushing off to the Bahamas with your hard-earned money!

This time I’m going to shed a little light on a little something that makes it possible to render massive and densely populated worlds in real time: impostors. Read more

In Praxis… Oculus Rift

We have an exciting announcement to make! A development kit for the Oculus Rift virtual reality system should be on its way to us some time in December and we’ve already started prototyping support for it in Reset. We’ll let you know of any further developments!

Screenshot from a prototype with preliminary support for the Oculus Rift virtual reality system. Note that the warping of the image probably does not match the one expected by the Rift. The parameters for proper warping can only be obtained from the Rift SDK with the actual device attached.


In Praxis… Traveling in time

In this installment of In Praxis I’m going to give a more in-depth technical overview of the main gameplay mechanic in Reset: time travel.

Read more

In Praxis: Atmosphere

Ok so, first the bad news. We’re not ready to show game play stuff yet. It’s taking longer than expected and since it’s a key part in the upcoming crowd funding campaign, we’re putting a lot of effort into it. But the good news is that that we can distract you with pretty pictures 😀

Oh you weren’t distracted… bummer. Anyway, besides the gameplay, people have been asking us about our volumetric lighting and atmosphere. So we’re going to cover that topic right now.

Read more

In Praxis: Lighting

The previous installment of In Praxis talked about how surfaces react to light. This post gives an overview of where that light comes from.

Read more

In Praxis: Surface Shading

In this installment of In Praxis I’m going to talk about how we shade opaque surfaces. Beware of extremely technical mumbo-jumbo.

Reset has a fully deferred renderer, which means that all information required for lighting is first rendered into a set of screen-space textures (collectively called the G-buffer) and then lighting is applied using only those textures without the need to re-render the geometry. This provides a clean separation between materials and lights and allows for a slightly simpler design than traditional forward rendering. Also more exotic features such as deferred decals can be easily implemented. Read more

In Praxis… I

This article series concentrates on the technical side of the development. We start it with a look at the 3D content creation tool Blender and how we use it.

Why Blender you ask? I’ve previously worked with 3ds Max and XSI and found both packages to have their strengths and weaknesses. The XSI workflow suited me well and was planning to continue with it when we started on this project. The limited project budget however made me look at other options aswell. Did take a peek at Modo which looked promising and a few other smaller packages like 3DCoat. I had heard good things about Blender from different sources and decided to have a look at it also. Read more