Search Unity

How to do bloom->tonemapping->LUT correctly without making pixels too gray?

Discussion in 'General Graphics' started by colin299, Jun 30, 2019.

  1. colin299

    colin299

    Joined:
    Sep 2, 2013
    Posts:
    181
    First, here are all the testing images (1),(2) and (3)

    (1) image below = original render, without any postprocess (but the cube needs bloom!)
    2019-06-30 22_53_04-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png
    ==============================================================
    (2) image below = original render + bloom (bloom easily become too bright!)
    2019-06-30 22_55_51-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png
    ==============================================================
    (3) image below = original render + bloom + ACES tonemapping(but overall too gray! looks bad)
    2019-06-30 22_52_41-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png
    ===========================================================
    So is it an unavoidable result that ACES tone mapping will make the overall pixels looks "gray"?
    is there any other tone mapping function which keeps saturation the same(still looks colorful & cartoon feeling after tone mapping), but only affect brightness(can make bloom pixel not over bright easily)?

    My current idea is to write a new tonemapping function, which only tonemap brightness while keeping saturation the same. is that practical?
    65958498_10156493677690897_2640244477070934016_n.jpg



    ===========================================================
    The final goal is to make HDR rendering looks like this:


    Thanks for your help.
    --------------------------------------
    Additional video of image(2):
     
    Last edited: Jun 30, 2019
  2. colin299

    colin299

    Joined:
    Sep 2, 2013
    Posts:
    181
    turns out ACES is not a good choice, I am now using custom curve

    without tone mapping:
    2019-07-01 01_08_41-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png with tone mapping:
    2019-07-01 01_08_50-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png 2019-07-01 01_08_52-GPUInstancing - indirect - Android - Unity 2019.3.0a6 Personal _DX11_.png
     
  3. BattleAngelAlita

    BattleAngelAlita

    Joined:
    Nov 20, 2016
    Posts:
    400
    Yeah, ACES is really bad at preserving colors, i.e. try to apply it to pastel pink and see what happens. If you can write shaders you can write some better tonemapper like Gran Turismo tonemapper.
     
    colin299 likes this.