|
Color is applied to the polygonal model that was obtained through iso-
surface extraction using Marching Cubes [Lore 87]. We use an inverse ray-
casting technique that assigns a color to each triangle of the polygonal
model by reprojecting the triangles back to the original input images used
in generating the space carved data set. Each triangle in the polygonal
model is subdivided until its projected footprint in the images is
subpixel size, so that it can simply take on the color of the pixel to
which it projects. In most cases, a triangle projects to several of the
original images. We combine the different colors from the images by
weighted averaging. The weight of each color is calculated by taking the
dot product between the triangle normal vector and the view direction
vector of the camera that captured the color. Cameras with viewing
directions that are nearly perpendicular to the triangle normal contribute
less than those with viewing directions that are nearly parallel to the
triangle normal. To simplify the calculation, the dot product is
performed once the triangle has been transformed into the camera
coordinate system so that the view direction vector is aligned with the z
axis. We use z-buffering to ensure that only cameras with an unobscured
view of the triangle can contribute to the triangle color. The figure
below is a comparison of four of the original input images with rendered
images of the reconstructed implicit surface from the same camera
viewpoints. The images on the left are the original input images, while
those on the right are the rendered images.
|