Mike Stark
Final Project
Image Synthesis
The final project was to construct a scene of our own choosing,
record the scene with the department's digital camera, then render the
scene with our ray-tracer making the result as close as possible to
the camera image. We were not allowed to reverse engineer the colors,
so a significant portion of the project was to "calibrate" the camera,
based on the known spectral qualities of the Macbeth Color Checker
seen in the images below, illuminated by a light source having a known
spectral radiance.
As it happens, the camera calibration is not as easy as one might
think. My scene was illuminated with a 75 watt incandescent bulb,
which I assumed to be emitting an ideal blackbody (Plank) spectrum at
2800 Kelvins. I have no way of knowing what the emission spectrum
really is, but using thar assumptions to approximate the response
functions of the camera seems to generate a fairly good approximation
to the correct colors. In any case, the image below wouldn't have the
correct colors anyway, because it doesn't include any indirect
lighting.
Photographed Image
Below is the photographed image. The color checker was sitting on a
small table, on a piece of black paper. There is only one direct
light source, a 75 watt "soft white" bulb, out of view at the upper
left. The sphere is acrylic, with an index of refraction of about
1.47 (this I deduced from using ray-tracing methods.) The glass
triangle is a demonstration prism, and the lens is a plano-convex lens
made of optical glass. The mirror is something Tushar and I picked up
at a craft store.
Rendered Image (Iteration 1)
The image below was rendered with my ray tracer. I used 1.47 for the
index of refraction of the sphere (this I came up with by inverse
ray-tracing) and 1.52 for the glass in the scene. The large prism has
a slight greening, the nature of which I pretty much just guessed
at. The lens is made of optical glass so there is no attenuation
there. The "caustic" from the sphere, the shadows of the transparent
objects, and the general reflection were all computed using "backward"
ray tracing, which is from the light to the scene to the camera,
rather than from the camera to the scene to the light.
What's Wrong or Missing
The image above is really just a first version. There are a number of
things I need to fix, which I hope to do later this summer (after I've
taken what I consider a much-needed break!)
- There is no "environment mapping", only objects directly
visible in the scene are modeled
Unfortunately there is so much glass in the scene that certain
elements of the environment are visible in reflection. Most notably,
the light bulb, part of the lamp arm (and the black paper shielding
the rest of the lamp arm and base from view) The light streak near
the top of the acrylic sphere is the light track overhead. Lower down
on the sphere it looks like the streak continues, but this is actually
the reflection of one of the legs of the tripod holding the camera.
The tripod is actually more apparent in the reflection of the sphere
in the big mirror.
- There is no indirect lighting from the environment The
backward ray-tracing takes care of the single-bounce indirect lighting
from objects in the scene, but the walls of the room are a grayish
color, and account for the generally more illuminated glass in the
photographed image.
- Not all the glass surfaces are polished, although they are
modeled as if they are. Most notably, the chamfered edges of the
glass prism are "ground" glass. I tried some fine bump-mapping to
model this, but it didn't work so well. I think modelling the
microgeometry might work (as Pete suggested) but I'll have to
understand what the microgeometry is before I do that.
- The image was rendered using a "pinhole" camera model. This was
actually more of an oversight. I did all the development using a
pinhole camera, because it works better with just one sample per
pixel, and I didn't remember until just now I forgot to change it. It
may take some time to accurately model the camera, however.
Anyway, that's all for later.