A tiny improvement of Oren-Nayar reflectance model
Yasuhiro Fujii
Introduction
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:
Sometimes undesired dark rings are observed on spheres
[img]. These are sometimes highly visible in animated
scenes with moving lights.
Fall back to the Lambert model when \( L \cdot V \le 0 \).
I introduce a slightly modified version of the qualitative O-N. It
features:
Simple.
The complexity is the same as qualitative O-N. No sin, cos, arccos, nor
sqrt are required. It contains only 3 inner products and 1 scalar
division.
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.
Result
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.
Analysis
We can evaluate \( \cos \phi \) by projecting N and V on the surface.
\[
\block{align*}{
\cos \phi &=
\frac{L - (N \cdot L) N}{\left| L - (N \cdot L) N \right|} \cdot
\frac{V - (N \cdot V) N}{\left| V - (N \cdot V) N \right|}
\\
&= \frac{L \cdot V - (N \cdot L) (N \cdot V)}{\sin \theta_i \sin \theta_r}
}
\]
Therefore, proposed formula is described in spherical coordinates as
follows:
\[
\block{align*}{
L_\text{qON}(\theta_r, \theta_i, \phi) &= \rho \cos \theta_i (A' + B' s t^{-1})
}
\]
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.