Showing posts with label anti-aliasing. Show all posts
Showing posts with label anti-aliasing. Show all posts

Tuesday, 16 March 2010

Tech Report: Anti-Aliasing In God Of War 3

Looking at any of the full resolution screenshots from the final release code of God Or War 3, you could be forgiven for thinking that what you are seeing is nothing more than supersampled bullshots, shots created for the purpose of making the game look good when blown up several times its original size for magazine printing. However you’d be very wrong indeed, because although some have speculated that these latest direct-feed grabs of GoW3 are downsampled images like most of the screens released for the demo, we at IQGamer can confirm that they in fact showcase the game’s unique Anti-Aliasing method in action.

That method in question is MLAA, or Morphological Anti-Aliasing, another form of edge smoothing done using the SPUs on the PS3 rather than the RSX GPU. We only heard about the game’s somewhat exciting AA solution a couple of weeks ago, after it was revealed in an online interview with one of the developers working on the title. It seems that whilst the original plan was to use the usual 2xMSAA method of jaggies reduction – and that was present in the recent PSN demo – that all changed at some point this year, in which a programmer at Sony’s Santa Monica Studio found a way of performing a much better method of AA on the CELL, whilst in turn saving the use of precious GPU and memory cycles in the process.


Just take a look at the screenshot above. The AA is absolutely amazing, far better than anything the 4xMSAA 360’s GPU can manage, and in some places matching perhaps what you expect from a high end PC gaming rig performing 16xMSAA. Either way, it is the best example of Anti-Aliasing on any console game to date, bar none.

In addition, the developers themselves at Sony’s Santa Monica Studio stated that they managed to increase both performance and quality of the AA used, along with other effects in the game, by offloading tasks normally done on the GPU to the SPUs on CELL.

“AA on the cpu is MLAA Morphological Antialising. We saved 5-6 miliseconds by moving it off the cpu's. Many props to our coder Cedric for making this happen and it looks way better!”

Of course the benefits of having better AA isn’t just dealing with jaggies reduction, but also reducing aliasing caused by certain shaders, such as specular aliasing for reflections and transparencies, whilst also eliminating texture shimmering caused by a lack of AA, bringing a stability and smoothness to the image allowing the art design to really shine. Its importance is usually only ever compromised due to the lack of available memory and bandwidth available on both systems. On 360 it’s having to fit the final framebuffer into the 10MB EDRAM, while on PS3 it’s dealing with just a lack of available bandwidth altogether. The use of MLAA can alleviate some of these issues providing a more even split of resources, which can then be used to improve other graphical aspects of the game.


The above screenshot demonstrates how well this use of MLAA works on gameplay scenarios. Notice that every single pixel in the shot is covered by the AA, without any extensive blurring of the detailed textures, even smoothing off edges that are small and far off into the distance. Everything remains clean and sharp, minus the parts of the scene which feature the engine's depth-of-field effect, used only on specific areas of the scene. You can see this happening on the botton left of the image, in which the scene is slightly blurred, whilst on the right, just above Kratos, all details are sharp and clear as day, even in the distance.

Another recent release, Metro 2033, due out this Friday, also uses a custom form of AA done specifically on the CPU, but this time on Xbox 360. It’s called AAA, Analytical Anti-Aliasing, and works by finding all the pixel edges, rendering samples of them in a higher resolution, before then downsampling those samples for use in the final 720p framebuffer. Effectively the only performance hit you get, is a slight one caused by having to render a small amount of pixels in a higher resolution, and the end result is another AA solution which allows for the same effect as using 16xMSAA. However the developers still managed to save 11MB of memory by using this technique instead of regular MSAA, which was their original choice, memory used for other visual effects taking up precious space in the framebuffer.

So God Of War 3’s impressive use of AA is just one of an increasing amount of games looking for a more flexible AA solution than the out of the box MSAA fix found on both consoles GPUs. By exploring these other areas, and by doing things differently they can ultimately drive forward better image quality, whilst focusing more on things such as art design, which has always been more important that raw technical prowess.

Lighting is another area in which GoW3 proves this notion of thinking.

“We built our engine around being able to use up to 20 dynamic lights per game object. The light can be big or small, it doesn't matter. In the end, I believe we support up to 50 dynamic lights per game object. We are not using a differed lighting scheme. Our lead programmer Vassily came up with this amazing system during pre-production, us artists love it!!! We can place lights in Maya and have them update in realtime in the game on the PS3, its like being able to paint with lights.”


Again, this is Santa Monica Studio thinking up a solution that isn’t right out of the box, but is technically at the forefront whilst also being very much in consideration with just what their artists were looking for. It’s exactly this kind of attitude and understanding that is driving forward the use of alternative AA solutions, at the same time providing increased graphical fidelity, whilst saving on performance, and making development easier for future titles. This is especially important with regards to memory related issues, which generally keep coming up in every console generation, and in which working smarter, not harder is really the only way in pushing forward console performance years after launch.

From a developers point of view, now has never been a more exicting time to be involved in console gaming, in which both tools and innovation are coming together setting the new standard of videogames production. Anti-Aliasing is of course just one part of the picture, but in GoW3's case, it could be its defining one.

IQGamer will be performing our in-depth technical analysis on God Of War 3 this weekend just after the game’s release. Be sure you check it out, as it will be filled with interesting technological reveals about some of the development process behind the game, and the ever more innovative steps that developers are taking to push the visual envelope forward.

Monday, 8 February 2010

Tech Analysis: Dante's Inferno

Dante’s Inferno may be a blatant God Of War rip off, but it is also one of the best examples of platform parity across PS3 and Xbox 360. It does so not by playing to the strengths of each machine, but by simply having an engine which barely taxes either system, making some concessions to alleviate the issue of PS3 having a lack of available bandwidth, and 360’s need to fit the framebuffer into it’s 10mb worth of EDRAM.

You could almost say that Visceral Games effort is an almost exemplary example on how to get a game running and looking identical on both platforms, or rather almost 100% identical. The only exception we noticed to that being a slight blurring of the image on 360, but more on that later.



Dante’s Inferno runs at a flawless 60fps on both PS3 and 360, with no noticeable sign of screen tearing or framerate drops, which in it self is quite impressive for a multi-platform title. However it does this through using only a limited number of memory and shader intensive effects. So what we have here is mostly flat looking textures, with bump mapping reserved for the characters and only certain parts of the environment.

The game is rendered on both PS3 and 360 in 720p (1280x720) with no anti-aliasing of any kind. This allows the framebuffer to fit into the 10mb EDRAN found on 360’s GPU, whilst making the conversion to PS3 much easier as it doesn’t put a stain on the bandwidth. The resolution of transparencies and particle effects usually lowered on PS3 due to the lack of available bandwidth has been compromised on both versions. So instead of 360 having the usual advantage when it comes to displaying loads of multi-layered effects, it’s merely equal across the board. Again this basically allows the smooth running of the game on both platforms whilst keeping the actual look identical; certainly, it’s how Visceral have achieved the constant 60fps on display.

Anisotropic filtering and texture detail is like for like across both versions, demonstrating clean and clear characters and vistas, though the overall sense of scale is rather small, and the detail itself is somewhat simple when compared to the likes of Bayonetta or Devil May Cry. Serviceable is how I think you could best describe the overall look and technical application.



Now earlier we mentioned that both PS3 and 360 games were almost identical, except for a slight blurring on the 360 version. This blur whilst being hardly visible during fast moving scenes can be clearly seen in the still screenshots above, and during more sedate moments of gameplay. It seems that there is a horizontal 1-pixel wide blur on all edges, with no apparent reason as to why. It could be that the developers still wanted some sort of AA solution, but seeing as 720p 2xAA may not have fit into the EDRAM, they thought a simple blur approach would suffice. It’s perhaps the only blemish on what can be considered one of the best multi-platform conversion examples available on both consoles.

Overall, Visceral Games have shown just how to successfully accomplish a good multi-platform conversion without sacrificing too much from each version along the way. Sure they could have played up to the 360’s strengths and added higher-resolution effects and more particles, or had extra HDR lighting on the PS3 game, but it would have taken longer to develop and required more optimising for both versions. This is a problem most would rather avoid, so it’s easier to go down the safe route, and keep your development budget under control and get good results, rather than having it spiral out with two different versions, each having their own tweaks, and neither achieving parity.

Date’s Inferno shows you don’t need to achieve a massive technical accomplishment when creating a game, but rather just a well thought out approach and a solid underlying engine, which can perform on both systems without needing to radically tailor features to each one.

In this respect Visceral have been successful, and I imagine that more developers will go down the same path seeing as it can work so well.