3D Texture Synthesis


Texture synthesis is a fascinating area of research and most approaches can generally be divided into two types. Parametric and non-parametric. In short, the parametric approach tries to create a mathematical model based on some input (texture exemplar) and then using the model to create new synthesized textures. Non-parametric is quite a wide term, but these approaches often boils down to short cutting the mathematical model creation step and instead stitches together new textures by reusing data directly from the input (texture exemplar).

Associated Publications

  • Anisotropic 3D texture synthesis with application to volume rendering
    Lasse Farnung Laursen, Bjarne Kjær Ersbøll, Jakob Andreas Bærentzen, in WSCG '11: Winter School of Computer Graphics 2011, pp. 49-57
    Local PDF | Published PDF
  • Improving texture optimization with application to visualizing meat products
    Line Clemmensen, Lasse Farnung Laursen, in Scandinavian Workshop on Imaging Food Quality 2011, pp. 81-86
    Local PDF | Published PDF

Quick Facts

  • Synthesis code created from scratch in C++.
  • Currently unreleased, as it'd need some serious polish. Maybe if there's enough interest.
  • Integral part of Virtual Cuts project.
  • Conference and workshop publication

Related Work

The work featured in this project is heavily based on the research done by Kopf and his fellows. They generate some impressive looking 3D textures in their publication surpassing - at the time - contemporary efforts. The method works with the base assumption that the inside of the texture resembles the outside to some degree. An advanced algorithm is applied which starts with a random set of samples from the original texture, and slowly and iteratively improves upon it until it matches more complete parts of the original texture. The videos below show this iterative process in action

A part of my Ph.D thesis concerned improving the visual quality of a real-time volume rendering of pig CT-scanned data. Texturing volume is significantly simplified when said texture is 3D, instead of the usual 2D.

Anisotropic Synthesis

When texturising CT-scanned pig data, three general types of tissue need to be represented: bone, meat and fat. Actual pig tissue consists of various intermediate tissue types in between meat and fat. However, blending the two general meat and fat tissues was sufficient for our needs.

Our research concentrated on using the method devised by Kopf et al. to create anisotropic textures, since pig tissue isn't particularly uniform. The culmination of our work was published in SCCG '12 and can be downloaded from the link below.

Alternate improvements

We also conducted a series of experiments attempting to semi-automate the detection of optimal synthesis parameters. We found that various textures would only generate the stellar results in Kopf et al.'s work when specific setting were applied. Our approach can help determine the optimal settings with number of textures, but doesn't work reliably across the board. The work is thoroughly discussed in our internal technical report which can be downloaded below.

In an effort to improve upon the texture synthesis method, we applied the much faster PatchMatch algorithm and conducted a series of imperical studies. Unfortunately, as the videos show below, the PatchMatch algorithm results in textures that fail to properly recreate the rich diversity of the original texture. Although it might work as an intemediary step in the algorithm, substituting out a complete series of iterations results in unsatisfactory results.

Visualized 2D Texture Synthesis

These videos demonstrate the recreation of both the hedge and tomato texture, using both the original algorithm as devised by Kopf et al., as well as an alternate version implementing PatchMatch, in an effort to speed up the synthesis process.

© Lasse Laursen 2015 - 2021