We’ve been using this box projection technique for some time in our title. We were surprised to find some cases where it would break down.

What would happen is when it picks the smallest distance out of the “FurthestDistance” float3, it would pick a negative distance. This would introduce a harsh, erroneous line across the reflection where it picked the negative distance from the wrong axis. On screen it would turn the reflection 90 degrees in one of the axes.

Putting in some simple code to replace the min operations with some code that would only take the minimum of the positive distances fixed the issue – negative distances were simply ignored. The image then looked correct.

Is this an issue you have encountered?

Thanks

]]>But when it comes to games, we need to take care about perf then, and then we need approximations. But if 99% of the time, results are 99% correct when compared to the ground truth, why bother? : D ]]>

A BRDF must be compatible with all your lighting: punctual, area, image based light as well as GI to get an homogenous result (In game you almost never have a clear separation of material and lighting to get performance). The more your BRDF is complex the more difficult you can achieve this goal.

]]>I will take a look at the wave optics and see if that theory handles things differently.

Maybe we just need an even more low-level look at the things to explain weird phenomena as those mentioned in the Disney paper. It’s feels wrong trying to simulate things by trying to find functions to fit the data, without fully understanding what is going on.

]]>Moreover, when you look at some diffuse term like Disney diffuse or Oren-Nayar, you introduce view dependent component and roughness component, so the boundary between diffuse and specular are even more fuzzy. There is no “true” answer here, this is one way to model it, not the only way.

Some don’t use the microfacet theory to model interaction but wave optics principle: http://www.cs.virginia.edu/~jdl/bib/appearance/analytic%20models/he91.pdf

>How can we justify diffuse and specular being so disconnected one from another?

They are not disconnected, you should do energy conservation between both term, but it is not simple to process. Also recent research from Eric Heitz show that diffuse term should be derive from specular term introducing a strong coupling from a mathematical framework point of view.