Articles: Graphics

Bookmark and Share

Pages: [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 ]

HDR and Hardware

Previous generation graphics processors from NVIDIA didn’t support information output from the pixel shader to a few buffers simultaneously (Multiple Render Targets) and data rendering into a buffer in floating-point representation (FP Render Target). ATI RADEON “R3xx” graphics chips family supported these features from the very beginning, which made an advantageous difference from NVIDIA’s solutions.

NVIDIA GeForce 6800, HDR vs RGB Rendering 



NVIDIA’s GeForce 6 has finally acquired full support of the Multiple Render targets and FP Render Target, which allowed the company marketing people to introduce the term NVIDIA HPDR. It should be noted that NVIDIA’s HPDR and ATI’s HDR approaches are pretty different at this time, therefore, it is unclear whether game developers support both, or wait till ATI and NVIDIA come up with a single standard.

NVIDIA uses a compromise variant, the 16-bit OpenEXR format developed by Industrial Light and Magic to describe the physical values. The 16-bit OpenEXR description devotes one bit for the sign of the exponent, five bits to store the value of the exponent and ten bits to store the mantissas of the chromatic color coordinates (u, v), five bits per coordinate. The dynamic representation range thus stretches to 9 orders of magnitude: from 6.14*10-5 to 6.41*104.

The process of constructing and outputting a HDR image with the NV40 graphics processor is divided into three steps:

  1. Light Transport: rendering a scene with a high lighting dynamic range and saving the information about the light characteristics of each pixel in a buffer that uses the OpenEXR floating-point data format. NVIDIA stresses the fact that the NV40 supports floating-point data representation on each step of creation of a HDR scene, ensuring the minimum quality loss:
  • floating-point calculations in shaders;
  • floating-point texture filtering;
  • operations with buffers that use a floating-point data format.
  1. Tone Mapping – translation of the image with a high dynamic range into a LDRI format (RGBA or sRGB).
  2. Color and Gamma Correction – translation of the image into the color space of the display device (CRT or an LCD monitor or anything else).

FarCry Gets HDR

Crytek decided to implement NVIDIA’s (or, if you prefer, OpenEXR) HDR approach into its FarCry title. The approach requires FP16 blending to be supported, hence, HDR will not work on ATI’s hardware. Since the capability is unsupported, it is logical that its work has some restrictions (e.g., you must have a certain type of hardware).

Generally speaking HDR does improve image quality and realism in a number of cases. However, there are quite some situations where HDR brings unrealistic lighting. Furthermore, it degrades performance dramatically. Despite of the drawbacks, HDR in FarCry looks just great. Maybe that’s not the perfect approach, but it definitely adds a new look for the game that the majority of gamers have already completed ;)

NVIDIA GeForce 6800, HDR vs RGB Rendering 



Just in case you are a happy owner of the GeForce 6800- or 6600-series graphics cards here is what you should do, provided that you have FarCry version 1.3, DirectX 9.0c and NVIDIA ForceWare 66.81 drivers:

  • Set all Graphic settings to “Very High”;
  • Disable anti-aliasing (as NVIDIA GeForce 6800 hardware does not support multi-sampled 16-bit float point render targets);
  • Type ”r_hdrrendering 7” in the console (or add "r_hdrrendering 7" to the game’s shortcut) when you launch the FarCry;
  • Enjoy.

Keep in mind – HDR drastically affects performance, so, be ready to compromise your screen resolution. Nevertheless, it basically costs some additional speed – the jungle definitely look more realistic during daytime. At night and in-doors, however, HDR is not implemented that good – twilight should not look like a day and a couple of LEDs should not produce the light of a small sun.

Pages: [ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 ]


Comments currently: 42
Discussion started: 11/02/04 01:57:08 PM
Latest comment: 08/29/06 01:33:44 AM

View comments

Add your Comment