Wednesday, December 7, 2011

Uncharted 3: Stars and Skies

As we toiled away on Uncharted 3, there were some pieces that the FX Department took charge of to make sure it got as much polish as possible. Everyone was insanely busy so we decided to help with a few things. A couple of these things were Skies and the Stars in Syria. So let's talk about our involvement with Skies.Skies
To my recollection our Art Director Robh Ruppel created all of the actual art for all of the skies.
The issue we had to resolve was making the skies look as good as possible getting them into the game.The biggest issue was DXT1 compression. The compression caused some gnarly banding and we had to come up with ways to smooth them out. Additionally one of our rendering programmers Carlos Ochoa Gonzalez supported us in giving us features in our shader that allowed for scrolling clouds and sun flares among other things to breath life into the skies. It was then a matter of taking the time to try to find clever ways to get around compression and using the tools given to us to make the skies great. From my perspective, we didn't always win this battle but I am relatively pleased with what we came out with.

Stars
The stars in Syria have to be the single most coordinated effort I have ever seen for something most people overlook. It all started when one of the puzzle-ish concepts for the level involved the player using a telescope to find a specific star and star formation. This being Polaris on the little dipper. So in execution the camera zooms in quite far and when the player has found the star it zooms in a little more. This level of zooming meant that the texture for the sky would have to hold up to some close scrutiny. The original method was just a sky texture with stars painted on it. This looks fine from afar but caused an issue when zooming in on it. This is where things get coordinated. A rendering programmer named Pal Engstad early on had collected a large amount of star data which had in it about 8,000 different stars in it including their position in the sky from our perspective and mag of brightness. This was a lot of info. We had a working model but it was just a model for a long time. I pushed to have some more work done to it but time was getting short so we needed someone else to get the data into a format we could load in-game. The Ball gets passed to Marshall Robin. Marshall is a multi-faceted coding machine. My work with him is primarily with fx related stuff like particles. He directly supports us on all of our fx tools. So Marshall edits the data into a format we, the artists can use and manipulate. The next issue was getting the exact star formation the designer
needed with adjustable intensity. Marshall had to reorder the stars in the list of data putting the first 15 stars of the two constellations at the top of the list. I had to find the names of the stars in the two constellations and give him that info. Theeeeeeeeeen, Marshall had to make a connection to these 15 stars for me to have the ability to put a custom shaders on them so they would sparkle a little bit in the sky. Phew. Almost there. Marshall had to move on to another important task so then Carlos gets tagged in. Carlos created a way for us to create a sky for this level in layers. So we could create a mathematical gradient for the sky color itself and throw some static clouds layers on that with an alpha, some scrolling clouds using his already existing code, and a way for us to connect an antonymous moon that alpha blended with the sky behind it. Our art director then requested the ability to hide the stars behind the clouds. This mean Carlos had to create a shader for the stars that could be fetched with the sky shader essentially becoming part of the sky while maintaining all of the existing control Marshall gave us. After it was all said and done I was able to manipulate the values and add some particle based shooting stars and voila! A night sky most people won't look twice at. But that isn't the point. The sky here is a testament to the amount of work and coordination this studio is willing to put into even the smallest task.



1 comment:

Unknown said...

I loved reading it Doug. Great collaborative effort. Thanks for sharing this! :)