M. Oren and S. K. Nayar have proposed a reflectance model of rough diffuse surfaces and two approximate functions (We call them "full O-N" and "qualitative O-N" respectively in this article) in 1993 [link] [link] . Full O-N approximate the model very well, but it is complex and has many computationally-expensive functions. Qualitative O-N, which is widely used in CG community, is simple but it has some problems. For example:
I introduce a slightly modified version of the qualitative O-N. It features:
We use θ to denote polar angles and φ to denote azimuth angles on the surfaces.
Using a vector notation, proposed formula is described as follows.
A and B are the constant numbers which depend on the roughness of the surfaces. Following formula can be used to match the result with full O-N:
It violates energy conservation law, \( \int \D \omega_i L \le 1 \) when \( \rho \gt 0.97 \). However, full O-N also has this problem.
Proposed formula simply consists of a linear combination of the diffuse term and the non-diffuse term, so I propose a artificial, but useful parameterization of σ.
where σ' has a simple meaning: mixing ratio of (non-diffuse term) / (diffuse term). Normalization factor is determined to keep overall intensity at \( V \cdot N = 0 \), which is a maximal point of non-diffuse term, therefore it never violates energy conservation law.
Comparison between full O-N (blue), qualitative O-N (green) and proposed (red) at \( \rho = 0.8, \sigma = \pi / 4 \).
The worst case is \( \theta_i \simeq \frac{\pi}{2} \wedge \theta_r \simeq \frac{\pi}{2} \wedge \phi \simeq \frac{\pi}{2} \). But suppose that the directions of the surfaces are uniformly distributed in a scene, the area of each surface on the screen is proportional to \( \cos \theta_i \cos \theta_r \). So the worst case occupies relatively small region.
We can evaluate \( \cos \phi \) by projecting N and V on the surface.
Therefore, proposed formula is described in spherical coordinates as follows:
On the other hand, qualitative O-N can be written as the following form:
As you see, proposed formula is very similar to qualitative O-N.
Dark rings on spheres are appeared on the borders of \( s = 0 \). Qualitative O-N has 1st-order discontinuity at \( \theta_r = 0 \), wheareas proposed formula has 3rd-order discontinuity. Dark rings are completely disappeared on proposed formula.
s is always non-positive when \( L \cdot V \le 0 \) (see the definition of s in vector notation), hence qualitative O-N falls back to Lambertian even if \( \sigma \ne 0 \), whereas proposed formula doesn't.
\( L_\text{iON} \) satisfy the following physical requirements.
Moreover, when the domains of \( (\theta, \phi) \) are extended to negative values, \( L_\text{iON}( \theta_r, \theta_i, \phi ) \) satisfy the following equalities without any modification.
It may imply that the combinations of trigonometric functions used in this formula seem to be natural.
I implemented proposed formula to Blender cycles.
Comparison between qualitative O-N and proposed formula at \( A = B \ ( \sigma' = 1.0 ) \) .
Yasuhiro Fujii <y-fujii at mimosa-pudica.net>