The algorithm presented in this paper can produce ray traced images of displacement mapped geometry without resorting to explicitly stored tessellation or numerical root-finding. The goal of our system is to be able to render models with large amounts of displaced geometry. If the resulting displaced geometry is small, explicitly generating all polygons and putting them into a general acceleration scheme should prove faster. Our approach benefits from processor speeds continuing to grow faster than memory speeds and sizes, and provides a viable alternative to geometry caching schemes and numerical root finding.
We view this work as a proof-of-concept. There are potential numeric
stability problems with the traversal. There are many areas where
efficiency could be improved. Adaptively determining the subdivision
amount,
, provides some performance benefits, however, there are
two problems that can
occur. Changing the level of subdivision for two adjacent pixels may
cause some tearing. We are conservative in choosing the subdivision
level, and haven't seen any artifacts due to this. A potentially more
serious problem
occurs when the displacement maps are used to represent surfaces such
as brushed or scratched metal. Reducing the subdivision level can
result in significant changes in appearance, even if the geometry
itself is subpixel. In this case, we would like to carefully replace
geometry with BRDF as discussed by Becker and
Max [2].
Our current spline-based smoothing displacement function ensures that the base tessellations can be converted to smooth surfaces. The smooth surface is not always desirable, particularly in regions of high curvature or where the triangles have poor aspect ratios. It may take more information about the surface than we allowed in the restrictions from Section 4 to eliminate these problems. A more global interpolation scheme could ensure higher orders of continuity or a more intuitive fit to the data.
Comments: Brian Smits