CRank: 5Score: 27400

Details of a cross-plat: Why games look good and bad on your favorite HD system (part 1)

This post is primarily for those readers who couldn't stand reading the raging "my console is better" hardware discussions of years previous, or who possibly didn't understand them. Hopefully I can offer some clearer insight into the ups-and-downs of porting a game engine from one HD console to the other, and the "why" behind a good and bad port.

I'm going to try a "typical case" format for explaining these issues, which will hopefully explain why you favorite game looks hot, or not, on your favorite console.

Part (1) Sub-HD resolution on one, but not the other.

Modern TVs -- HDTVs, have a lot of pixels (the dots that make up any digital image) to color, and it takes some effort, on the part of the console, to color each one. A 720p image is often cited as "HD", and anything less is "Sub-HD". Modern (HDTV) screen resolutions are always in 16x9 ratios, and its the "9" (the vertical) part that names the resolution, so "720p" means "1280 pixels wide by 720 pixels high" (and the "p" at the end means "progressive scan", which basically means every vertical line in the image is drawn every frame)

1280x720 pixels is a LOT of dots to color -- nearly a million (921600, to be precise). On top of that, in most games, many of those pixels are colored multiple times, because of semi-transparent dots drawn on top of each other, due to effects such as smoke, tinted glass, reflections, etc. Also, many more advanced rendering techniques often call for the Graphics Processor of the console (the GPU) to do a lot more work on particular kinds of pixels (I'm not going to go into this) than others.

At 30 frames per second, the GPU is rendering many more than 30 million pixels at 720p, and each pixel often takes a considerable number of GPU cycles to calculate.

With that out of the way (I hope), consider this:

1280x720 = 921600
1120x630 = 705600

or (non 16x9 buffers can be stretched to 16x9, to save more pixels, and horizontal stretching is often less noticable than vertical stretching)

960x640 = 614400

The number on the right basically equates to pixel "work", and less pixel work means a faster framerate for any game, assuming its bound by the GPU -- meaning the GPU is doing more work per frame than some other part of the console, like the CPU, which is very common in console games.

On the XBox 360, the primary reason for sub-HD framerates is almost always due to a performance aspect of the XBox 360 GPU, called an embedded frame buffer (many people will refer to it as "eDRAM"), and a technique used for reducing the harsh appearance of jagged pixel edges called anti-aliasing (AA). The fundamental issue with the 360 is that there's just not enough space in the, otherwise very fast, embedded frame buffer, to do anti-aliasing at full 720p, without doing some very expensive memory swaps, which slow the framerate considerably. Some games can get away with a full 720p buffer on the 360, and some cannot, usually due to the framerate the developers deem the minimum necessary to keep the game playable, and sometimes simply due to the methods the game developers used to create their framebuffers (the pictures you eventually see), which are widely varied, in some regards.

The 360 could also suffer a sub-HD hit, if it had to do a lot of geometry work, or CPU work, like vertex skinning and animations, since that processing comes directly out of the flexible 360 GPU processing budget, or taxes the 360 CPU, but as a general rule, cross-platform games and 360 exclusives tend to avoid these issues by design, rather than allowing them to cause a problem.

On the PS3, the issue is usually due to the PS3 GPU simply not being able to keep up with the XBox 360 GPU in a situation that is, essentially, tailored to the 360 GPU's strengths. The 360 has a flexible processing pipeline, able to adapt to processing more pixels and less geometry, or alternatively less pixels and more geometry, when needed. If there's not a lot of geometry work to be done in a rendered scene, then the 360's GPU really shows its stuff, and outperforms its, often relatively similar, competitor. The reverse can be true if there's a lot of geometry work to be done, but, as I stated above, only PS3 exclusives tend to include such work in their designs, so it's rarely an issue.

When I say "geometry work", I mean more than merely projecting triangles into 2D space to be colored by the pixel shaders. I mean skinning (the process of dynamically moving vertices in a polygon mesh, in a "flexible", organic manner -- very common on game characters, and some animated game scenery), procedural vertex animation (like grass and trees gently waving in the wind, and sometimes water), and other techniques which require some very intense, highly parallel math work to accomplish.

Looking closely at the content of a game will often determine the likelyhood of sub-HD resolution on one or the other HD platform: Jungle environs, or animated city, with lots of animated characters, foliage, high-poly counts, or buffer effects requiring large amounts of memory? 360 is more likely to be sub-HD. Desert environment (no water, few trees, some grass), or static urban environment, with only a few characters onscreen at a time, but with highly detailed textures and pixel operations, fullscreen dust effects, lots of particles, or filters? PS3 is more likely to be sub-HD.

These aren't a rule -- as many games, particularly early ones, don't take advantage of the powerful vertex/geometry and rendering assistance capabilities of the PS3's CPU, and the larger working framebuffer real-estate of the PS3, but they work well as a guideline.

The story is too old to be commented.
3846d ago