# CS348c Project Proposal

## Szymon Rusinkiewicz

My project will be to implement tools for efficiently compressing and
decompressing BRDFs. I will attempt to store a variety of synthetic BRDFs,
including those generated from anisotropic and realistic physically-based
models. The main work will be on developing a new representation, with the
following characteristics:

- The representation should be of adaptive complexity - simple BRDFs should have simple
representations. In particular, isotropic BRDFs should not waste space
on storing the "anisotropic component".
- Reciprocity should be enforced.
- The representation should take advantage of the fact that many BRDFs
vary slowly in the reference frame of the "reflected ray".
- Computing the BRDF at a single incoming and outgoing angle should be fast.

The representation will likely be wavelet-based, though I do not anticipate
using the spherical wavelet formulation of Sweldens and Schröder.
Other possible components of the representation are:
- A change of basis - the incoming and outgoing angles are certainly not
the best axes to use.
- A simple analytic model that is fit to the data. The analytic model is
either subtracted or divided out, and only the residual is represented with
wavelets.
- Some color representation - a comparison of the compression achieved with
RGB, YUV, and HSB might be interesting.

The code written for the project will include the BRDF
compression/decompression libraries, together with some sort of interactive
BRDF browser, and either a (very) simple renderer or an interface to Toro.

## Code Written so Far

`bv` is a BRDF viewer/browser. No documentation yet.
`bv -h` lists available BRDFs.

Note: please see
http://www-graphics.stanford.edu/~smr/brdf/bv
for the current version of `bv`.
--- SMR 9/10/97