Multiplication Bug in Daz/Iray?

margravemargrave Posts: 1,822

Here are some viewport renders I made recently. I based these on the "Sunny 16" principle for real world outdoor photography. The tonemapper was set at a shutter speed of 125, an f-stop of 16, and an ISO of 100. Here's the first render:

Obviously it's way too dark, but I already figured out you need to increase the cm^2 Factor in the tonemapper to 10.0 to get realistic results. I also turned the HDRI's Environment Map to 1.0, since the default 2.0 interferes with proper tonemapping. Here's the next photo:

Much better. However, to be really physically accurate, we would also need to set the camera's f-stop to the same amount.

The blur looks a bit too strong for f/16, which is supposed to be mostly in focus. To compare and contrast, let's bring both f-stops down to f/1.4 and raise our shutter speed by the same number of stops, up to 16,000. That's probably not technically possible on a consumer-grade camera, but just go with it.

So when we try f/1.4, we get...

Yeesh.

Many people before me have complained about Iray's absurdly strong depth of field, and that does look way too strong. If we compare that to this chart of real world aperture values, we see our intuition is totally correct:

But then I had an idea: what if I multiplied the camera's f-stop by 10 as well, just like the tonemapper settings?

With the camera at f/160, it has little-to-no blur, like we expect.

So then I successively tested this by decreasing the tonemapper and camera f-stop while raising the shutter speed to compensate.

Tonemapper f/8, camera f/80, shutter speed 500:

Tonemapper f/4, camera f/40, shutter speed 2000:

Tonemapper f/1.4, camera f/14, shutter speed 16000:

That looks much closer to what we should expect from f/1.4.

So, what is going on here? Iray purports to be a photorealistic renderer, yet both the tonemapper and the camera require us to multiply their values by 10 in order to get photoreal results? I'm seriously starting to think there's a bug in either Iray, or Daz's implementation of it. Under the hood, deep in the code, some numbers are supposed to be multiplied by 1.0 but they're being multiplied by 0.1 instead, making the image too dark/too DOF'd and seriously damaging our attempts at photorealism.

Sunny16_DOF0_CM1.png
870 x 489 - 2M
Sunny16_DOF0_CM10.png
870 x 489 - 2M
Sunny16_DOF16.png
870 x 489 - 2M
Sunny16_DOF160.png
870 x 489 - 2M
Sunny16_DOF80.png
870 x 489 - 2M
Sunny16_DOF40.png
870 x 489 - 2M
Sunny16_DOF14.png
870 x 489 - 2M
Sunny16_DOF1.4.png
870 x 489 - 2M
Post edited by margrave on

Comments

  • Mustakettu85Mustakettu85 Posts: 2,933

    Just saw this while looking for your shader mixer thread... :))

    If you try the sunsky env mode, you'll see that the "SS multiplier" is set to 0.1 and "sunny 16" doesn't work. If it's set to 1, things get much better but many materials then need re-doing using proper PBS conventions. 

    I haven't tried testing things with an HDRI because these come in too much variety in terms of dynamic range. But this might be connected.

  • margravemargrave Posts: 1,822
    edited October 2021

    Mustakettu85 said:

    Just saw this while looking for your shader mixer thread... :))

    If you try the sunsky env mode, you'll see that the "SS multiplier" is set to 0.1 and "sunny 16" doesn't work. If it's set to 1, things get much better but many materials then need re-doing using proper PBS conventions. 

    I haven't tried testing things with an HDRI because these come in too much variety in terms of dynamic range. But this might be connected.

    I always change the default HDRI environment value from 2.0 to 1.0, and then Sunny 16 works great. By the same token, I also halve the SunSky value from 1.0 to 0.5, and it also works great.

    Post edited by margrave on
Sign In or Register to comment.