The data computed as described in the previous chapters allows to generate volumetric models as well. Here a relatively simple approach is described. Other approaches have been described in the literature and could be applied as well (e.g. [28]).
The approach works with a voxel space which encloses the 3D scene. For every depth map the voxels are segmented in three categories: between the camera and the surface (A), behind the surface (B) and not seen (C). This is illustrated in Figure 8.4.
Once all depth maps have been considered, the voxels which have been seen at leastIf the goal is to create a surface from the volume it is proposed to use a modified marching cubes algorithm. In this case only the interface between regions A and B should be triangulated. Some results obtained on the castle sequence are shown in Figure 8.5.
Placing a texture on this surface model is not as easy as in Section 8.1. All triangles are not necessarily seen in a specific view. We have worked out an approach which determines for each triangle which image should be used as texture. This decision is based on the projected area of the triangle in the images and on the visibility. Determining the visibility is not a simple task and could take a long time if it were performed in software. However, this task is done by the graphics hardware when rendering a new view. The visibility is determined based on a view where every triangle is labeled with a different color. If the correct color is seen at the position where the triangle projects in the image, it means that the triangle is visible. Two label images are shown in Figure 8.6
The resulting 3D surface model is shown in Figure 8.7.