Over one the three.js repo, we frequently get questions like this one: Too dark edges due to new IBL multi-scattering approach.
In short, there's a person saying that the latest updates to our PBR shader have resulted in too dark edges:
![](https://uploads.gamedev.net/forums/monthly_2020_02/849fe7ef134a4e19bb186c371fe1af05.68747470733a2f2f692e696d6775722e636f6d2f48516478486d302e706e67.png)
Compared to the previous version from a few months ago:
![](https://uploads.gamedev.net/forums/monthly_2020_02/152bb0be86b34206bc31b8c1afc91656.68747470733a2f2f692e696d6775722e636f6d2f53306e324e6d412e706e67.png)
Maybe they are correct - but it's pretty hard to decide when looking at a disembodied white sphere.
Next in that post they link to a similar scene from BabylonJS. Well, that's just going in circles.
I want to figure out a way of creating reference renders that we can compare these screenshots against. I use 3DS Max and I figure Arnold will be a good comparison target.
However, I don't have the knowledge to create renders with Arnold that I can confidently say are “correct” when compared to the three.js version. I have a fairly good knowledge of max, but not the rendering side of it - I usually just use the renderer for baking AO and shadow maps.
Given a HDR environment map, say the one in the above scene, how would I go about creating a render of a simple white sphere to compare with the three.js scene? (note: in this post I'm talking about a scene lit exclusively with an environment map, no other lights).
I know how to add the environment map and get a clean render from Arnold. What I don't know is:
1. what setting I should use for the Arnold standard surface to make a valid comparison against the three.js MeshStandardMaterial.
2. what setting I should use for tonemapping, both in three.js and Max (maybe just disable tone-mapping)?
3. how to make sure the render is correctly saved in sRGB from max. The save PNG dialog box in max is a bit confusing and just mentions gamma, not sRGB. Of course, I can disable sRGB in three.js and just use a simple gamma 2.2 there.