WIP : HDR Rendering

As a part of task to make a physically based rendering pipeline I am working on HDR rendering nowadays. The motivation behind HDR rendering is that normal RenderTargets and the display devices have R8G8B8A8 format and we can only use individual colors from 0.0f – 1.0f floating point range which is very limited specially if you want to model real work lighting & shading because values easily go past 1.0f and we need more precision more bits per channel. So we use one of the HDR rendet targets R16G16b16A16 , etc. But display devices still can only display 8 bits per channel so we have to map those 16bit per channel back to 8 bit per channel for which we use ToneMapping.

Normally the term HDR rendering is referred to a group of effects including rendering things to HDR render target, Tone-mapping, Bloom, Eye Adaptation, etc. And  I have finished my first basic implementation including couple of those effects using pixel shaders . I am sing R16G16B16A16 render target. For luminance I am averaging scene luminance by downscaling the scene luminance render target and then using Erik Reinhard’s method for Tone-mapping. Also implemented a bright-pass filter followed by Gaussian blur for Bloom.

So this is first very naive implementation. There are some bugs, I am working on itand also some more experiments with some different techniques. I am also thinking to try it using compute shader.

Here’s a Scene Rendered to HDR render target –


And after final pass with Tone-mapping –


And here are the views of 3 different areas keeping all settings same and also shown all the passes that are combined to produce the final image ( check how the floor shade changes depending on the total illumination of the scene ). –


About chetanjags

Game Developer

Posted on June 4, 2013, in Game Development, Graphics, JustAnotherGameEngine and tagged , , , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: