@echadwick-artist, I dug into what is happening and found a few things. We use Arnold as our ground truth for rendering, a decision we made a while back because we needed to choose how we would approach a perceptual roughness model. We referenced Disney’s principled reflectance model because that is the same model that Allegorithmic uses for Substance. The tools we use all fell within the same confines with the way they approached PBR rendering, so using Arnold made a lot of sense for us.
To that end, I grabbed your assets and made some comparison renders. The first thing I noticed with the doge environment cube was that it looked like it was made in IBLBaker. The Schlick and Smith BRDFs that IBLBaker uses don’t match with the GGX BRDFs that we use, so I rebaked the environment cube in Lys. doge2_cube_specular.zip (1.4 MB) The other issue I have with IBLBaker is that the seaming of the cube at the smaller mips isn’t very good and you can see the seams fairly easily in reflective surfaces.
For the comparison, I did a render from the Reference Renderer, from Arnold, and from Babylon with the same settings and background so that we can compare as close to apples to apples as we can.
The background for all is 128, 128, 128 so that we have a neutral background to help us see any issues. I do see a couple of issues with the 0.75 roughness and 1.0 roughness spheres in the tones they are reflecting. I wouldn’t expect a white base color on an object in this environment IBL to come near the white in the emissive reference chip. At a roughness for the two spheres in question, this is what the Lys environment map looks like:
The type at the top of each mip image is in white, so you can see how far off of white we are. This is the light that is hitting your white material so there’s no way it could get any closer to white than it is. In the reference renderer, you get a hot white rim on the top of the rough spheres reaching around 0.9, 0.9, 0.9 at the very top which does not align with my expectations from the maps I baked. Energy conservation would seem to be off there because we are reflecting more light than is there. The reason that the sky color at that roughness is that dark when the sky is around 1.1, 1.1, 1.1 is because the specular lobe is so broad that that point, we should be sampling more than the sky and would be averaging in colors from the tops of the buildings. However, what I am seeing with the maps generated by IBLBaker is that the environment has some artifacts that cause the hot spot at the top and the dark at the bottom:
This is the mip for roughness 1.0 and you can clearly see that there is a strange star shape at the top and bottom center of the cube. At the top, the color is 1.0, 1.0, 1.0 which accounts for the bright white rim and hotter tones at the top of the spheres that you see in the reference renderer. At the bottom the color is around 0.15, 0.15, 0.15 which accounts for the dark spot on the bottom of the spheres.
I also see a couple of artifacts in the rendering in the Reference Renderer. The below image shows the seams you get from IBLBaker at higher roughness. There is also some sort of banding artifact that I can’t determine a cause for but may be coming directly from the IBLBaker texture which does seem full of banding:
For comparison’s sake, here’s the doge environment rendered on your asset in Arnold:
I rendered this with no bounce and no shadow so that we could compare with our real-time rendering accurately. You can see that the energy conservation in this render is accurate for the rough spheres. Though one thing I don’t like about Arnold is that it seems to go off the rails with energy conservation when rendering rough metallic materials.
This is the same setup with Babylon:
It does look like we may be a little off in our spherical harmonics as we are losing a little energy in the rough dielectric materials. I will work with Seb to see if we can fix this quickly.
I suspect another discrepancy in lighting may be due to the mismatch between the IBLBaker BRDF options of Schlick or Smith versus what the Reference Renderer is using which is the Cook-Torrance model for their BRDF. Here are the differences in the BRDFs:
When calculating the prefiltered environment map the BRDF is used to create scattered sample vectors which are used to determine the final blurring in the mip. I’m guessing that since the renderer is using Cook-Torrance that creating your environment with Schlick or Smith won’t produce prefiltered results that jive with what Cook-Torrance would be expecting.
I hope some of this helps and we will look into our dielectrics but the main difference here seems to be caused by IBLBaker.