|
|---|
Geometrically complex scenes, such as those containing fur or hair,
present a difficult challenge in computer graphics. Their rendering time
is high because of the sheer number of primitives, and their visual quality
is often unsatisfactory unless expensive anti-aliasing techniques are used.
In a number of cases, a repetitive element can be found in the details
of these scenes, such that these details can be replaced by deformed copies
of the repetitive element. For example, grass can be represented by tiling
deformed copies of a generalized cylinder. By choosing a suitable representation
for the repetitive element, better results can be achieved, both in rendering
time and in visual quality.
We study Neyret's [Ney96a] approach in representing the repetitive element as a texel using a 3D MIP map (an octree) that encodes only the reflective behaviour of the element's geometry at multiple resolutions. During rendering, the appropriate octree level is chosen depending on the contribution of the texel to the overall image. This way, aliasing is reduced, as well as computation time.
The method proceeds in two phases. During the first phase, the texel is built, given the geometry of the repetitive element. The geometry is sampled to create the lowest level of the octree, and the subsequent levels are successively obtained by filtering.
Once the texel is built, its instances can be placed in the scene to replace the geometric details. During rendering (using ray-tracing), if a ray intersects a texel instance, a kind of volume rendering algorithm is applied to compute the illumination of the ray inside the texel.
As a first example, we construct a texel given 100 elongated ellipsoids.
Figure 1a shows the rendering of the geometry itself, while figure
1b
shows the rendering of the texel at a resolution of 643. Figure
1c shows the same texel rendered at a resolution of 83.
All images are rendered using a modified version of the ray-tracer OORT
[Wil94], at a resolution of 320x200, using one ray per pixel.
Figure 1a. Geometry of 100 ellipsoids.
Figure 1b. Texel of 100 ellipsoids.
Figure 1c. Same texel at a lower resolution.
The information stored in each voxel of the texel consists of 3 components: the surface properties of the geometric objects inside the voxel, the visibility of each voxel face, and a normal distribution function that captures the visible normals of the geometric objects inside the voxel.
Figure 2a shows 15 geometric spheres with varying specular coefficients, while figure 2b shows a texel built from these 15 spheres.
Results. Timing results show that using this technique is useful when a certain threshold of complexity is reached within a scene. Below this threshold, it is more economical to use the actual geometry of the details, because of the overhead incurred in intersecting texels in deformed spaces. Figure 3a shows the rendering of 62,500 geometrical ellipsoids (rendered in 2576 sec.) and figure 3b shows the rendering of 625 instances of the 100-ellipsoids texel (from figure 1b, rendered in 1332 sec.)
We have generalized upon Neyret's method of volumetric texture, by automating and enhancing the process of texel construction, and by moving to a fully three-dimensional representation instead of a texture-based one. Future investigations will include better approximations to the reflectance behaviour, integrating the actual geometry if the viewpoint is close to the texel, etc. Please refer to the thesis [Rat97] for full discussion.
[Wil94] N. Wilt. Object-Oriented Ray-Tracing in C++. John Wiley and Sons, 1994. Code available at: http://wuarchive.wustl.edu/graphics/graphics/books/Object-Oriented-Ray-Tracing/.
[Rat97] Karim Ratib. Texture
volumique multi-échelle pour l'affichage de scènes complexes
. M.Sc. thesis, Département d'informatique et de recherche opérationnelle,
Université de Montréal, December 1997.