NYU Media Research Lab

Real-time rendering of textures
defined on discontinuous distance fields

Texture mapping is a powerful tool to enhance realism of rendered objects. Bump and normal mappings are two very important examples of texture mapping that store normal perturbations in a texture to give objects a more geometrically complex appearance without increasing the size of objects' underlying mesh. Textures are discreet versions of their original signals, so that during rendering steps texture samples should be interpolated to reconstruct the original signal at arbitrary location. The standard bilinear interpolation results in perfect reconstruction in the case of continuous textures; however, it does unwanted smoothing along the curvilinear discontinuities in the case of piece-wise continuous textures, which is common during rendering of surfaces with creases, wrinkles, and dents. In this project we are working on methods for real-time rendering of multi-dimensional textures with curvilinear discontinuities.

In contrast to the existing methods, we consider an important sub-set of piece-wise continuous fields which are best represented as functions of the distance to the discontinuities and its gradient, like normal field near the creases. In our approach we first interpolate distance and its gradient along the discontinuities. Then we decide how to interpolate texture samples so that the resulting field is continuous at arbitrary resolution everywhere except across the discontinuities. Here is the list of problems we address in our method:
  • discontinuities are given as a collection of linear segments; we transform complex configurations of the segments which met at the same points into safe configurations which may be efficiently encoded into additional textures without significant change of original discontinuities;
  • we allow user changing an original field along the discontinuities in real-time by providing a profile for the immediate neighborhood of sharp features;
  • our special way of representing the discontinuity set allows us to dislocate discontinuities in real time, e.g. as in visualization of fracture propagation on a glass/clay surface being broken.
We are working on adaptation of our method for curvilinear case, where curvilinear features are explicitly represented by Bezier segments rather than being approximated by a series of connected linear segments.

E. Parilov and D. Zorin, "Real-time rendering of textures with feature curves ",
ACM Transactions on Graphics, Vol. 27, No. 1, (03/2008) link
Presented at SIGGRAPH 2008 TOG Session, Los Angeles, CA (08/2008) link

E. Parilov, I. Rosenberg, and D. Zorin, "Real-time rendering of normal maps with discontinuities", (Tech. report, NYU TR2005-872, 08/2005) link

Examples of applying different user-defined profiles (three most-right images) to the original discontinuity map (left image). Normal map 128x128.

Furrow profile Furrow profile Furrow profile Furrow profile

Furrow profile Furrow profile Furrow profile Furrow profile

Normal map 1K x 1K.
Furrow profile Furrow profile

Normal map 512 x 512.
Furrow profile Furrow profile Furrow profile

Furrow profile Furrow profile Furrow profile

An example of configurations with complex intersections (broken glass)

Furrow profile Furrow profile Furrow profile Furrow profile
to be added soon...
(a) real-time rendering of broken glass
(b) updating discontinuity set in real-time (glass fracture propagation)
Parametric representation of the curvilinear features (b) as opposed to a linear approximation (a) ...

Furrow profile(a) Furrow profile(b)