Textures composed of individual discrete elements are found in everything from human-made glass-tilings to forests and tropical coral. We propose an interactive sketch-based system for synthesizing scenes consisting of many discrete element textures. We have implemented an example-palette, a design window where a user can use our sketch-based tools to create discrete element textures and then paint those textures into a scene or back into the example-palette to create new textures. Our interactive sketch-based tools use a new and fast region-growing algorithm that iteratively synthesizes new elements around previously synthesized elements. To support discrete element textures with different scales in the same output, we parameterize our region-growing algorithm on a per-element basis. Our method is capable of synthesizing structured and stochastic example discrete element textures. We explore applications of our system for building virtual worlds (such as for video games) and for sketch-based modeling.
The video below is a short visualization of the synthesis algorithm. It’s based on region-growing, where new elements are added to a growing front, such that the local arrangment of elements is similar to the exemplar. New elements (blue) are added around seed elements (green). This video does not show the optional relaxation step that can sometimes futher improve the quality of the output arrangement at the cost of time performance.
A typical editing session takes place within the Unreal Editor. In the video below, we design an exemplar and then paint it onto a bunny.