---
breaks: False
---
# MZKB05/Beyond Lambert: Reconstructing Specular Surfaces From Color
Paper: http://www.eecs.harvard.edu/~zickler/download/photodiff_cvpr05_preprint.pdf
## Immediately arising questions
- MZKB say previous works model
*homogeneous* dichromatic surfaces
and begin by referencing Shafer... Shafer introduces
dichromatic model and discusses
"*inhomogeneous* surfaces that can be described by
a dichromatic model", where "inhomogeneous",
or "optically inhomogeneous",
is expounded as characteristic
that local surface normal deviates from
macroscopic average normal. It's unclear
what MZKB mean by "homogeneous",
but I first thing think of "optical (in)homogeneity".
So, if Dichromatic Model is designed for inhomogeneous
surfaces, how come "previous works" model
"*homogeneous dichromatic* surfaces"?
- How do I know the source color $S$?
- Basically, the paper just says,
based on the assumption that material
is dichromatic and specular component's
color is approximately the lightsource's
color,
that ***if** we know specular component $S$
then, well, we can remove it
and use the orthogonal part to measure chromacity*.
No wonder that just setting $S=(1,1,1)$ does not work...
$S$ obviously need be estimated from data.
## Paper content discussion
**Dichromatic BRDF**:
$$f(\lambda, \theta) = g_d(\lambda) f_d(\theta) + f_s(\theta).$$
Additional assumption: [IOR](https://en.wikipedia.org/wiki/Refractive_index) of surface is constant,
"thus no $g_s(\lambda)$ factor".
This is kind of questionable, I thought $g_s(\lambda)$ --
the spectral power distribution component of BRDF -- encodes the color information, while refraction index is the part
that depends on angle $\theta$?
**Sensor response**:
$$I_k = (D_k f_d(\theta) + S_k f_s(\theta)) \langle N, L\rangle,$$
- $k$ -- channel;
- $D_k$ -- diffuse/body component of the color measured by $k$'th sensor?
- $S_k$ -- "effective source strength", measured with $k$'th filter and independent of surface;
- $C_k$ -- sensor's sensitivity function;
- $N$ -- surface normal;
- $L$ -- illumination direction.
**Pixel color**:
$$I = \begin{bmatrix}I_{\mathrm{R}}\\I_{\mathrm{G}}\\I_{\mathrm{B}}\end{bmatrix}.$$
## SUV transform
$$ I_{\mathrm{SUV}} = R I, $$
where $R$ is a rotation that aligns $S$
with the red axis.
$$\begin{split}I_{\mathrm{SUV}}
&= (RD f_d(\theta) + RS_k f_s(\theta))\langle N, L\rangle\\
&= (RD f_d(\theta) + \begin{bmatrix}1\\0\\0\end{bmatrix}
f_s(\theta))\langle N, L\rangle.\end{split}$$
$$I_U = R_{[2,:]}Df_d(\theta)\langle N, L\rangle,$$
$$I_V = R_{[3,:]}Df_d(\theta)\langle N, L\rangle.$$
In Lambertian case, $f_d(\theta)=\mathrm{const}$
and $R_{[2:,:]}Df_d$ are Lambertian albedos.