Current Pricing

 

 

GeForceFX Preview

Colour Precision

In keeping with their goal of true cinematic shading NVIDIA have taken colour precision to a whole new level. The slightly condescending picture below shows how, if you didn't already know, more colours make for smoother transitions.

But there's more to the colour equation than the number of colours available. The human eye is far more sensitive to brightness levels (luminance sensitivity) than it is to colour (spectral sensitivity) as it has some 120 million light sensitive "rod" cells compared to only around 7 million colour sensitive "cone" cells.

In the diagram above we can see how increasing the intensity of a rendered image using a linear format isn't accurately reflected in the displayed image (right). Doubling the intensity doesn't actually result in a pixel that is twice as bright when displayed on current CRT and LCD monitors due to the differences in sensitivity between the human eye and computer displays.

But by automatically applying a form of "gamma compensation" (center) to the image intensity values before they reach the display NVIDIA are able to correct gamma so that a doubling of the intensity at the rendering stage translates to a doubling of intensity at the display stage. This gives a more accurate and predictable result and avoids the need for programmers to constantly switch gamma space.

Full Studio-Quality Color :

The GeForceFX offers true 64 and 128bit colour from end to end through its FP16 and FP32 floating point formats. No piling 96bit colour data into a 128bit frame buffer and passing it off as 128bit colour on this chip (I'm mentioning no names), the whole colour pipeline handles full 128bit data in its native form throughout. To better balance application requirements developers are able to flip-flop back and forth between 64bit and 128bit colour within the application dependent on their needs at any given stage. For instance, some actions such as indexing into a high-resolution texture can only be optimally accomplished using a 32-bit floating-points format. If the texture is larger than 1024 x 1024 (210 x 210, requiring at least 10 mantissa bits per texture coordinate), the developer needs FP32 to access all of the data.

Another benefit of such high colour precision comes in the form of what's known as "Overflow" and "Underflow". If we imagine a scenario where 8 bits are used to define a scene. This gives a range of numbers between 0 and 255 (28). If using this format were to add 130 and 130 together the answer would be 4 rather than 260 because the total basically spills over the upper limit and begins from the start again. The reason the answer isn't "5" is because zero is counted. If we considered negative numbers as well, the 8 bits would still be used to represent 256 values, but the range would change. We would now be able to represent –128 to 127, with the uppermost bit representing whether the number was positive or negative. When particularly large numbers are added or subtracted there's the dire possibility that positive numbers could become negative and negatives positive.

Dynamic Range :

By increasing precision a scene can be rendered using a wider range of intensities than was previously possible. Photographers are all too aware of the problems of limited dynamic range whereby the problem is do you expose for the highlights and lose all detail in the shadows or do you expose for the shadows and have the highlights "burn out" on you? Prior to the GeForceFX scenes with a high dynamic range were prone to an anomaly known as "clamping" which in simple terms gave an incorrect rendering of the required scene due to limitations in intensity precision. Here's NVIDIA's explanation of the problem " To understand this artifact, consider the following example. A developer has two light sources that he would like to average. Each source has an intensity of .6 on a normalized scale of zero to one. Since the precision ceiling is 1.0, adding the two light sources .6 + .6 would result in a value of 1.2, which is then clamped to 1.0. Dividing this clamped value then gives an average light value of .5. The actual desired result is .6. While simplistic in nature, this example illustrates a common dynamic range situation where clamping (overflow) prevents the derivation of a correct result."

 


Overly Dark Scene

 


Overly Bright Scene

 


Normal Contrast Scene

 


Rippling water with reflections and refractions needs high
precision for better visual quality and freedom from
constraints and limitations.

 

<<< Last Page | Colour Precision Continued >>>

Home