Homework 2
22C:151 Introduction to Computer Graphics
Due Wednesday, February 25, 1998
- Attempt to characterize the running time of a
hemicube-based radiosity algorithm. Define what
you consider to be the relevant variables (e.g. things
like number of patches, number of objects, hemicube resolution,
substructuring resolution, etc.) and, in terms of these
variables, give running time bounds on various components
of a radiosity algorithm. I don't expect a perfect analysis, since
we haven't defined a radiosity algorithm down to every detail,
but I want you to think about the pieces a bit and make
some reasonable assessments, based on reasonable assumptions
(that you should be sure to state).
- a. Write clear pseudocode routines for two versions of marching
cubes. One should be the pixel-by-pixel, row-by-row, slice-by-slice
method. The other should start from a "seed" cell and grow a surface
from there. The textbook gives detailed code for the first case
(though it assumes a set of contours are precomputed, which you
shouldn't. You should assume you have basic volume data). The book's
code is far too detailed, however. I want to see clear pseudocode
that covers the essentials without all the little details. For any
significant pseudocode function that you use but don't define, make
sure that it's what the function does. Use your judgment ; go beyond
the very highest level, but not too low. You don't, for instance,
have to give details of how to determine the interpolated
coordinates of surface/voxel-edge crossing points based on corner
values, nor of how to generate triangles for a voxel once its
vertices have been classified with respect to the surface you're
extracting; assume you have functions for those kinds of thing.
b. Briefly discuss potential advantages and/or disadvantages of
the two approaches.
- Make sure to update your project WWW page
with a progress report.