Assignment 5 -- Due 5/16/08

Jonathan Hall


Problem 1: Curved Mirror Part Deux

I spent a considerable amount of my time polishing my mirror (pun intended). There were some very distracting problems with the mirror of Assignment 4. These were related with the boundary conditions of the method; when the model moved behind the mirror.

I fixed the most glaring problem, of the model leaping out of the mirror, by discarding fragments outside the mirror's depth. It was quite handy that I had the mirror's depth buffer handy. Even with this taken care of  there was still problems with the model not reconstructing itself properly after coming back around. I suspected this was due to the search getting stuck on ZEROed pixels. After much tinkering, I found setting the clear color to -1 solved this. It also added a significant speed boost.

Eliminating these problems unveils a new concern, which I suspect is due to the method and not the implementation. Since we are searching over the image of the mirror. The normals lack definition on the boundary of the mirror. This discontinuity leads to jaggy results at grazing angles. One way to fix this would be to search over a texture of the mirror; however, this might lead to long searches around singularities of the parameterization (i.e. poles of a sphere). This problem is unresolved in my implementation.

I then started to add features to the assignment, such as multiple objects. This leads to another problem. Far, moderately tessellated objects do not behave well. I suspect that this is due to finite resolution of the mirror, because such objects tend to swim and pop over the surface. Note that if the problem was limited to tessellation, I should see moderately curved lines, not jagged lines. One way to address this would be to assume objects past a certain distance are infinitely far away. These reflections could then be modeled with a environmental map.


Results

It works!
Grazing angles = bad
Multiple ojbects reflected / It's my Name
I've fixed the problem seen in HW4.
At grazing angles we get noise.
Multiple objects reflected in one mirror.
In a room / far = bad


I've placed the mirror in a colorful room.
Note the jaggies on the walls. This is even
more apparent/distracting when zoomed
out. Each wall has 1024 faces.




Problem 2: Real-Time Hatching (Coming Sometime?)

This is based on the paper Real-Time Hatching, Praun et. al. . Unfortunately this is a black screen at the moment. I'm having trouble rendering to a mip-mapped texture.

All results on a 2.8 GHz Pentium 4, 1 GB main memory and a nVidia GeForce 7600 GS 512 MB

(Click pictures for full view)