Current Pricing

 

 

GeForceFX Preview

Colour Precision Cont. :

Below is another example of how dynamic gamma correction allows what the developer had visualized to be accurately rendered on screen without the need to constantly change gamma space. The image on the left is rendered using normal gamma properties while the image on the right is rendered post gamma correction.

 

Colour Precision Anomalies :

There's also more to colour precision than just banding or clamping. Bump maps in particular can exhibit some very strange effects when they don't have enough precision to work with. If we look at the basic 3D building block, the polygon, we see it has three "normals", one at each vertex. These "normals" are essentially information about how light is being reflected from the polygon's surface, thus if all the "normals" point straight up at 90degrees to the polygon the GPU knows that it's looking at a completely flat surface whereas if the "normals" are angled like below the GPU knows that this flat polygon is actually forming part of a curved surface and can render the applied texture accordingly.


Normals

Just as additional normals need to be calculated when a polygon is tessellated (divided into smaller sub-polygons) so it is that additional normals need to be created when a surface is bump mapped to calculate the additional lighting that's required to reflect the new apparent shape of the surface.


Additional Normals Calculated During Tessellation

The problem arises when calculations are involved using data values that are very close to each other. What can happen is that rather than returning a small floating point number a zero can be returned and this essentially cancels out any realistic or accurate rendering data for this particular normal. This form of catastrophic cancellation can set up an array of interference patterns as normals vary between constructive and destructive operation, or as NVIDIA word it they look like "a topographic map operator has been applied rather than smooth variation in height."

 

 


Low Precision Bump Mapping (Left) High Precision Bump Mapping (Right)

In certain scenes such as those featuring rippling water for example the effect becomes one of "checkering". The only way to avoid this effect when using low precision is for programmers to use wave effects that stay within a limited physical parameters that in turn restrict the wavelengths, the sizes, and the speed of animated waves. This means extra work for the programmer and of course means certain water effects can't be used for fear of creating such errors. Increasing precision means programmers are free to create what they want without having to steer clear of parameters they know will lead to visual problems.

 

Per-Pixel Specular Components :

So what's so wrong with good old fashioned per-vertex Gouraud lighting? Absolutely nothing in most cases provided there's enough polygons on your model supplying plenty of normals for lighting calculations. The difficulty comes with large polygons which, because each has only three vertices and thus three normals, don't provide enough lighting detail to be rendered accurately and to look good. As a result we've seen a sustained push towards per-pixel lighting effects such as the specular highlights demonstrated in the images below. Because per-pixel effects require much higher precision even something as relatively mundane as a specular highlight can soon exceed the limitations of 8 bits and possibly even the smaller FP formats (s1m10e5, where 1 bit is designated for the sign, 10 bits for mantissa, and 5 bits for the exponent).


Specular banding.
Notice the poor quality of the specular highlight on the hood,
including the white-spot artifact. This is a direct result of a lack of
precision for the required calculations


GeForce FX, with increased precision
Eliminates both specular highlight artifacts and banding.

 

<<< Last Page | Memory, DirectX 9 and Shader Function>>>

Home