CG Sketchbook , notes and tutorials

Keeping tonemapping simple : Fattal tmo in qtpfsgui

Yes.. “simple”  i’m joking of course  🙂 .. nothing simple (as in reliable , predictable)  in playing with complex tonemapping operators (= anything fancier than the Reinhart included in render engines)

But i might have some useful suggestions about that :

First a note :  i’m a big fan of  HDR look  but .. i often think,  its results  can be achieved with  simpler tools.

As i said before, i often wonder if those effects are a  poor man substitutes for basic/fundamental shading skills :  Control your shaders and your lights,  use artistic sense and skill and you won’t need any fancy technical tmo.

Yes.. well ,  i must be doing something wrong in my last personal project .. i didn’t like the results , so i went back to qtpfsgui  for help , ah the irony !

2nd note : I‘m not talking of tonemap as exposure control , only as a “style effect” to enhance contrast , make details pop up , and get a more illustration-like feeling : makes the image a little less photoreal for sure, but generally nicer.

So i resume here my findings and my current tactics for hdr tonemapping , using the OSS tool QTPFSGUI (a.k.a. Luminance HDR ):

How to Get a tonemapped image with strong local enhance effect, then composite with original :

1) set correct pregamma : if your file is a normal srgb image set it to 0.4545 (lower left of “tone mapping ” screen )

only if you have saved your image as  linear leave the slider to 1.

(to check : in main qtpfsgui winfow , a normal SRGB image will look brighter and washed out . Linear will look normal . this is because in main window gamma correction is applied by default )

2) set prevew to full size : results of tmos  change unpredictably with scaling , so preview at full size , expecially with ‘Fattal’ it’s fast enough anyway.

3) choose the tmo :   FATTAL

-Reinhart :   not too aggressive , but no hdr local enhance , just an exposure control and  I assume that was already taken care in the render engine.

Mantiuk: good local contrast enhance without messing up the image  .Still hard to really fine tune and balance the look.

Durand: very slow to compute ,   very nice subtle enhancing effect .. but on some image a real pain to get right settings.

-Fattal :  My current favorite  :  typical hdr look, super strong enhance and artifacts .Resulting images are almost always unusable directly. But they never are anyway !

This is the whole idea :  Forget getting a finished image out  of Qtpfsgui , you’d go crazy balancing strong enhance without messing the colors and contrast.

Just get a “hardcore HDR look ” image fast and easy and composite it at 10-20% with original.

4) set saturation to 0.1: imho, discard colors from tonemapped image, focus on  values and contrast ,  make it B/W and later use original colors in comp.

5) set noise reduction to 0.1 : Fattal will tend to mess up a lot ,  adding weird halos and noise , this is a good value to keep that under control.

6) set alpha factor  to 1.2 –1.8  : this is the key step : raise it to get more ‘enhance’ , but not too much or you’ll loose the original  shading and you’ll get a flat image with noise and crunchy / burnt halos (=typical fattal artifacts)

7) set beta  factor to 0.7 — 0.9 : raising it will reduce the artifacts , at some point image will go darker and eventually black.

8 ) Save the image: as LDR or HDR  format for compositing.

9)Composite onto the original with 10-25% opacity

An example : (top), what i consider a good tonemapping result : looking like a old b/w film ,

Note how some artifacts are starting to show .. noisy black dots and halos inside bright areas , but it’s fine :  the original lighting is mostly still there and wasn’t completely flattened.

Composition nodes example: (bottom left : source render – bottom right : result )

The tonemapped image is blended with the original render at 15% opacity  (in general : 10-25% is good,  only blend by value if you want to keep colors)

Here, i first blended the tonemapped with an AO pass  :  the 2 are similar, and can work well together (or actually tonemap can  act as substitute for ao pass .. i did that when i used Luxrender , that being physically based had no AO pass )

Note : the image is a personal project and is not finished .. i’ll post more about it.


Comments are closed.