1
$\begingroup$

I use cgskies HDRI. It comes with .jpg and .hdr.

.hdr has better lighting quality than .jpg but I my GPU does not support .hdr rendering.

I used math multiply node for strength of world map in .jpg HDRI but it doesn't have the same effect as real .hdr has.

How can I modify .jpg HDRI so that resembles the real .hdr ?

$\endgroup$
  • $\begingroup$ I think the .jpeg is provided as a quick reference like a thumbnail. $\endgroup$ – Dontwalk Mar 22 '16 at 12:25
  • $\begingroup$ You can't really do it correctly, but you can fake it (and I am guilty of this) by using RGB-curves + math before passing it to an emission shader. $\endgroup$ – Mörkö Mar 22 '16 at 16:03
  • $\begingroup$ Could you explain it to me? You could plug emission shader in world node ? $\endgroup$ – vejn Mar 22 '16 at 18:20
  • 1
    $\begingroup$ What he means is trying to fake an HDR-image by boosting the color spectrum with RGB-Curvesand math notes. HDRis are so good for lighting because they have a way broader color spectrum. Plugging an Emission shader into the world node would have the same effect as using a background shader.Your graphics card, does it not support .hdr or does it not support a broader color spectrum? If last nothing can help that (short of buying a new card). If first you can try faking but of course it will never look as good as a real HDR because your just stretching the colors, not adding additional ones. $\endgroup$ – schustudrai Mar 22 '16 at 18:30
  • 1
    $\begingroup$ Scene referred imagery has absolutely nothing to do with “colour spectrum”, and any suggestion is a complete confusing of both terminology and the participants reading. $\endgroup$ – troy_s Mar 23 '16 at 5:39
4
$\begingroup$

You can't.

To understand why, it would require dissecting a typical JPEG transfer curve.

The TL;DR is that a typical display referred photograph encoded to sRGB can only encode approximately two and a bit stops over middle grey, where middle grey is mapped to 0.18. 0.18+0.18 is one stop to 0.36, 0.36+0.36 is two stops to 0.72, and 0.72+0.72 is 1.44 for three stops, which the display linear linearization maxes out at 1.0.

Any particular photograph represents well over this dynamic range of course. As a result, the method the camera or software uses to encode the additional stops back into the scene is using a unique and custom transfer curve. Once in the display referred encoded domain however, that original transfer characteristic is lost and unrecoverable.

You can guess, estimate, etc., but it will never be even remotely accurate due to the number of stops compressed into the image and the limited dynamic range of an sRGB transfer curve.

Scene referred imagery is vastly different than display referred, and as such, it is very much a one-way street in terms of data flows.

In addition to this, .HDR is a less reliable storage format for scene referred imagery as compared to .EXR. Avoid it when possible.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Is there some free .exr to use? $\endgroup$ – vejn Mar 26 '16 at 18:22
  • $\begingroup$ @vejn There are more than a few places to grab EXRs if you search around (example, untested: gl.ict.usc.edu/Data/HighResProbes). Be aware that merely being in EXR format doesn't tell you how the EXR was assembled, nor any concept of accuracy or dynamic range is assured. You will have to test accordingly to see if someone is crafting them correctly. $\endgroup$ – troy_s Mar 26 '16 at 19:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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