6
$\begingroup$

Color spaces issues are such a pain, especially when you create color data at the middle of the chain, and a pile of libs and apps separate this to the display... Here I only worry about gamma transform.

Shadertoy addicts are coding in this web site webGLSL shaders, which in my case are rendered through google chrome on linux ubuntu and displayed on a calibrated monitor.

Is one layer already doing the gamma transform, or should I do pow(color,1./2.2) at the end of my rendering ? For me (linux,etc), it seems I must do it. Is it also true on windows, mac OS, whether Angle or Native OpenGL is used (windows), whatever the browser ? The point is that often shaders look ok on windows and very dark on linux, for instance, both people being sure of their settings and qualibration.

$\endgroup$
4
  • $\begingroup$ Great question, I'm also curious. $\endgroup$
    – Alan Wolfe
    Commented Mar 17, 2016 at 3:48
  • $\begingroup$ I suggest you do a test by outputting a grey scale band, and see how it looks on all your available platforms. then try the same thing with pow(c, 1/2.2) at the end of the pipeline. Your trained eye will immediately see which is good and which is over-done. Over-done gamma should result in banding. $\endgroup$
    – v.oddou
    Commented Mar 17, 2016 at 8:23
  • $\begingroup$ I came here because of the test I've done :-) shadertoy.com/view/4stSRN The real world of webGLSL is incredibly messy and unrobust: behaviors can depend on driver, browser, OS, settings (Angle vs native OpenGL, display settings - soft and hard), plus the versions of all these. ( Of course here I had to trust people telling there system is well calibrated. ) $\endgroup$ Commented Mar 17, 2016 at 8:28
  • $\begingroup$ You cold add that to your post ;) Unfortunately this is all just a case of futility. $\endgroup$
    – joojaa
    Commented Mar 17, 2016 at 20:23

1 Answer 1

1
$\begingroup$

This is a hard problem since the systems do not in fact tell you how it should operate. The problem is that there are several ways to address this issue:

  1. Apply a LUT to all output
  2. Let the system color manage
  3. Let each application color manage

Nearly all of our color management systems are borderline braindead. There is really no sane way to ensure that you are doing the proper thing without extensively testing the system. You can not ask or specify your intent. In case of multi operating system situations. If there is reason for me to color manage something myself im at the mercy of each operating system peculiarities.

For a alternate discussion on this see this stackoverflow post. But its not really a robust enough talk to cover all cases.

$\endgroup$
2
  • $\begingroup$ Thanks for the reference ! In case of web application, this adds one more level of difficulties. The fact is that as shadertoy shows, not all people see the same result. Plus in all API already providing a texture loading, I guess we can just hope a linearization is done. $\endgroup$ Commented Mar 28, 2016 at 10:43
  • $\begingroup$ Beside, when preparing a slide on googleDoc comprising imported images, exporting in pdf, and displaying via acroread on the same screen, I already don't have the same gamma for the 2 copies of the image ! $\endgroup$ Commented Mar 28, 2016 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.