Vector field design on surfaces is necessary for many graphics applications: example-based texture synthesis, non-photorealistic rendering, and fluid simulation. A vector field design system should allow a user to create a large variety of complex vector fields with relatively little effort. In this paper, we present a vector field design system for surfaces that allows the user to control the number of singularities in the vector field and their placement. Our system combines basis vector fields to make an initial vector field that meets the user's specifications.
The initial vector field often contains unwanted singularities. Such singularities cannot always be eliminated, due to the Poincar'e-Hopf index theorem. To reduce the effect caused by these singularities, our system allows a user to move a singularity to a more favorable location or to cancel a pair of singularities. These operations provide topological guarantees for the vector field in that they only affect the user-specified singularities. Other editing operations are also provided so that the user may change the topological and geometric characteristics of the vector field.
We demonstrate our vector field design system for several applications: example-based texture synthesis, painterly rendering of images, and pencil sketch illustrations of smooth surfaces.