Friday, 31 January 2014

Theory Time: The Last Of Us

So the last two weeks have sort of been off weeks for me and I haven't quite been up to trying to get my thoughts to congeal into something useful...Needless to say that Particles 2: The Re-Particling is being saved for another day and will probably be a lot bigger than anticipated (I'll try not to make part 2 have its own two parts). I also don't want to just sit here and type up a blog regurgitating everything we learned in class because that would literally be me just drawing out things like toon shading into 3 paragraphs when it could be summed up pretty quickly. 

Instead what I'm going to do is take this chance to introduce what will (hopefully) become a regular thing I do: Attempting to break down how they created an effect in a game without actually looking it up! This is just because I think it'd be a fun exercise and a nice way to actually think about the application of what we've learned. So without further preamble...I will now talk about The Last of Us.

In The Last of Us the player can enter a mode where sounds are more amplified for the character. In order to convey the change in action to the player and to simulate the effect, the screen becomes desaturated and sound sources are given a white glow. This is a demonstration of multiple effects working together as we have the fullscreen effect (desaturation) and the target specific effect (glow around sources). 

                       

I believe the method for this effect was done by first getting an outline of the targets with a glow using a similar method for getting an outline with a toon shader so we would check and see if the dot product of the normal of the fragment and the vector from the position to the eye meets a certain specification (e.g. it's equal to 0) to determine if it should be used for the outline. Once we have the outline we would use that to create a new texture to store and then blur (to give the fuzzy outline). In order to give the clear outline of the body we would again use the target but instead of trying to find an outline we would want to generate a silhouette which we could use to create a mask. When we go to combine the two we only render the parts of the blurred outline which are not blocked by the mask. Once this is done we now have a white fuzzy outline of all the entities which are producing sound in the game, we can then apply a shader to the FBO to desaturate it before overlaying and blending the glow outlines resulting in the final product that you see above.

And so there's my post! In the coming weeks I may spend some time trying to recreate this effect as I just described here to see if I was right or not, but until then it's just fun to theorize. Here's hoping that next week I'll have a lot more to write about.

Cheers,
Cameron Nicoll

No comments:

Post a Comment