If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
|
|
|
|
#1 |
|
Artist formely known as Vysez
Join Date: Mar 2004
Location: Paris, France
Posts: 3,789
|
Image Quality and Framebuffer Discussion for Available Games - Part 1
Why a new thread: The purpose of yet another incarnation of this thread is to streamline the content that is discussed in these thread. AKA get rid of some of the noise that plagued the other versions of the thread. Basic rules and guidelines: I'll start right off with the TL;DR version: TL;DR:
Full Version:
How-To and other useful explanations: How to tell the resolution of a backbuffer based on the outputted image: Someone has yet to take the time to compile all the relative information in a single comprehensive post. So bear with us and track down some of that information in the following posts: http://forum.beyond3d.com/showpost.p...&postcount=273 http://forum.beyond3d.com/showpost.p...&postcount=282 http://forum.beyond3d.com/showpost.p...&postcount=284 http://forum.beyond3d.com/showpost.p...&postcount=292 http://forum.beyond3d.com/showpost.p...&postcount=225 http://forum.beyond3d.com/showpost.p...&postcount=222 http://forum.beyond3d.com/showpost.p...7&postcount=29 Frame Buffer Calculations & Memory Consumption Back-Buffer(s) = Pixels * FSAA Depth * Rendering Colour Depth (may include multiple render targets for deferred rendering techniques) Z-Buffer = Pixels * FSAA Depth * Z Depth (usually 32-bit depth) Front-Buffer(s) = Pixels * Output Colour Depth (this is what you see, almost always resolved to 8-bit per component rather than 10-bit or 16-bit) Total = Back-Buffer(s) + Z-Buffer + Front-Buffer(s) Note: For Xenos, the back buffer and z-buffer must fit within the 10 MiB (10*1024*1024 bits, 8 bits/byte) to avoid tiling. Frame buffer formats RGBA8 = 8 bits for Red, 8 bits for Green, 8 bits for Blue, 8 bits for alpha = 32 bits per pixel FP10 = 10 bits for RGB components, and 2 bits for alpha = 32 bits per pixel FP16 = 16 bits for each component = 64 bits per pixel (no support for hardware alpha blending on Xenos) NAO32 = LogLUV conversion, In-Depth explanation = 32 bits per pixel (no hardware alpha blending) Example: 1120x585, 2xMSAA, FP10, 32-bit Z-buffer back buffer + Z = 1120*585*2*(32/8 + 32/8) = 10483200 bytes = 9.9975... MiB Aspect Ratio Some of you might be wondering how games like Call of Duty 4 (1.71:1) , Halo 3(1.8:1) , Metal Gear Solid 4 (4:3) can have rendering resolutions that are not 16:9 aspect ratio. All you need to learn about is anamorphic widescreen. The image is squeezed into the rendered resolution but is then stretched to the proper 16:9 presentation. An example of this squeezing can easily be seen in any Doom 3 engine games (Quake 4/Prey/Quake Wars). If you have one of them handy on your PC (latest version will do), try setting your resolution to 960x720 and in the console type r_aspectratio 1 for 16:9 or 2 for 16:10. All you'll see is the in-game view being squeezed/stretched horizontally. On the flip side, if you render the game at 1280x720 while still in 4:3 mode, the Mancubus just might be the fattest enemy you'll ever see. You can help it lose some weight by setting the game to 16:9. And of course, the isomorphic 1280x720 rendition will offer more image clarity than the anamorphic 960x720. Multisample AA Multiple geometry/sub-sample (reddish squares in below images) points with a particular weighting (surrounding the texture sample point, green square in below images) are used to determine the colour of the pixel being rendered. Sample positions can differ between AMD/nVidia. As RSX is based on the G70 architecture, the following sample patterns should apply. In the case of Xenos, it would not be unreasonable to assume that it uses the same patterns as ATI has used in the past (R300+). The result for 2xMSAA is that there may be one intermediary shade in between polygon edge steps; one sample is found to be within one polygon (e.g. colour A), and the second sample is found in another polygon (e.g. colour B). If both sample points have equal weightings, the resultant pixel would be 50% colour A, 50% colour B. Obvious results are obtained when a polygon edge bisects the shortest imaginary line connecting the two geometry sample points. Hence, 2xMSAA for G70 will look slightly different to 2xMSAA for R520 (see sample positions below). For the case of 4xMSAA, there may be more shades in between polygon edge steps due to the higher number of geometry samples, resulting in a smoother transition between steps. With equal weightings to each sub-sample, there will be three intermediary shades. The easiest way to see MSAA level is to have a straight-edged object overlapping another object/background with a high contrast in colours between the two e.g. black object against a white background. Beware of JPG compressed screenshots where pixels near high frequency components (edges) can be distorted. G70 sample patterns 2xMSAA http://www.beyond3d.com/images/reviews/g70/2x.png 4xMSAA http://www.beyond3d.com/images/reviews/g70/4x.png R520 - sample patterns 2xMSAA http://www.beyond3d.com/images/revie...aa_samp_2x.gif 4xMSAA http://www.beyond3d.com/images/revie...aa_samp_4x.gif Quincunx AA on PS3 - two geometry sample points are used just like 2xMSAA (so the same storage cost), but it also uses 3 samples belonging to neighbouring pixels (regardless of a polygon edge) to the right and below of the original texture sampled point (see sample pattern image for clarity). The result is a blurring of the entire image, but higher perceived polygon AA. Consider a texture of higher frequency components, lots of different colour patterns. The current pixel's two geometry sample points indicate the pixel is entirely within one polygon. However, the three neighbouring sub-samples are still accounted for in the final pixel, hence the overall image blur. Quincunx sample pattern http://www.beyond3d.com/images/revie...plepattern.jpg Comparison between 2xMSAA/QAA/ & blur filters http://upsilandre.free.fr/images/Quincunx.jpg Temporal AA on PS3 (ala Quaz)- odd and even frames are rendered with a half-pixel shift. The current frame is blended with the previous frame to achieve a similar effect as super sample AA for static scenes. In a moving scene, the blending of the odd and even frames produces a persistent blurring of the image. However, this is also advantageous for the edges of alpha-to-coverage primitives, because traditional multisampling does not work*, only super sampling. *see transparency AA or adaptive AA settings on appropriate PC hardware. Black Levels & Output Xbox 360 Standard = 16-235 Intermediate Expanded = 0-255 PS3 Limited Range = 16-235 Full Range = 0-255 Wii Undocumented at the moment (feel free to address the issue) Current list of game rendering resolutions and IQ Archive of the older threads on the same topic: Thread 1: The Neverending Upscale Discussion Thread * Summary=#457 http://forum.beyond3d.com/showthread.php?t=43330 Thread 2: Neverending Upscaling/Resolutions/AA etc Thread #2 *Rules: post: #616 * http://forum.beyond3d.com/showthread.php?t=46242 Thread 3: Neverending Upscaling/Resolutions/AA etc Thread #3 (Rules Post #1!) http://forum.beyond3d.com/showthread.php?t=48252 Footnotes Thanks to all the people who contributed to the list, took captures and wrote large parts of the explanations. AlStrong, Quaz51/Upsilandre, grandmaster, dot50cal, etc.
__________________
- Power corrupts and absolute power is kinda neat. - If at first you don't succeed, put it out for beta test. --Internets |
|
|
|
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|