Open silvainSayduck opened 4 years ago
/ping @elalish
I think this will be useful for comparison:
Here's a render from Arnold. It's not a photo, but I think it's arguably a good benchmark for what the 'real' image would be.
R113 is much closer than any of the other examples, though I agree that the fringes are slightly darker.
@silvainSayduck Your scene is washed out. Please use THREE.ACESFilmicToneMapping
since you are using an HDR environment map, and then update your images.
@YorickCobb Can you then tone-map your rendering, too?
@elalish If you hack the renderer to render with indirect diffuse lighting only, you will see a dark rim. Can you think of a physical explanation?
Certainly.
With ACES:
And if it's any help, here's the diffuse pass from Arnold: (ACES again)
This diffuse does show a bit of a dark rim (so subtle I had to pull it into photoshop and make sure I wasn't imagining it), don't know if that matches what you're seeing or not. Some of that will be the fact that in the envmap, the light behind the camera is brighter than the other three, but I'm seeing it from different angles too.
@WestLangley I'm really not sure, but frankly the multiscattering approach in three is pretty hard for me to follow and it definitely gives different results than Filament. Seems likely related to this. The only physical thing I can think of for giving a dark rim would be the geometric shadowing term, but that doesn't seem like it should apply to diffuse light.
@WestLangley I'm really not sure, but frankly the multiscattering approach in three is pretty hard for me to follow
/ping @jsantell
Hi,
Thanks everyone for looking into this! @WestLangley, I've updated my links as you suggested (thanks for looking into my code), and it makes indeed a big difference (and already makes the dark ridges more realistic in my opinion).
Here they are again, with the new screenshots r113
I also added the tone mapping to BabylonJS, which now makes the whole scene very dark, I'm not sure if there's something I am not doing that would make this comparison more accurate/useful.
Related #18669
To continue the discussion of #16409, it still seems to me that three.js's new IBL multi-scattering code is yielding too strong dark edges on light fully glossy material. Maybe this is now something that is acted as acceptable or even an improvement (as the author of the new approach's paper states), but I thought I'd report examples and then have an official decision or start an improvement process if need here.
Here is a demo using the current latest (r113)
Here is the same scene before the IBL multi-scattering update (r104)
And as a reference, here is the same scene (using the same environment map converted to DDS) in BabylonJS