ConTesse: Accurate Occluding Contours for Subdivision Surfaces

Given (a) a smooth 3D surface and a camera viewpoint, our method produces (b) a triangle mesh where the occluding contour of the mesh accurately approximates the occluding contour of the smooth surface. Standard algorithms may then be used to extract (c) the view map of occluding contours, and to (d) stylize them. (Fertility courtesy UU from AIM@SHAPE-VISIONAIR Shape Repository).


This paper proposes a method for computing the visible occluding contours of subdivision surfaces. The paper first introduces new theory for contour visibility of smooth surfaces. Necessary and sufficient conditions are introduced for when a sampled occluding contour is valid, that is, when it may be assigned consistent visibility. Previous methods do not guarantee these conditions, which helps explain why smooth contour visibility has been such a challenging problem in the past. The paper then proposes an algorithm that, given a subdivision surface, finds sampled contours satisfying these conditions, and then generates a new triangle mesh matching the given occluding contours. The contours of the output triangle mesh may then be rendered with standard non-photorealistic rendering algorithms, using the mesh for visibility computation. The method can be applied to any triangle mesh, by treating it as the base mesh of a subdivision surface.


Chenxi Liu, Pierre Bénard, Aaron Hertzmann, Shayan Hoshyari. ConTesse: Accurate Occluding Contours for Subdivision Surfaces. ACM Transactions on Graphics (TOG). 2023. Volume 42, Number 1, Article No. 5.



Additional Results

Stylized contours of fives models in our dataset. Note that we do not render mesh self-intersections. (Pig and ogre models by Keenan Crane, Bigguy and Monster Frog © Bay Raitt, Walking Man © Ryan Dale.)

Two views of the complex "Yeah, Right" model, which has genus 131. (Public domain model by Keenan Crane.)


  title = {ConTesse: Accurate Occluding Contours for Subdivision Surfaces},
  author = {Liu, Chenxi and B\'{e}nard, Pierre and Hertzmann, Aaron and Hoshyari, Shayan},
  year = {2023},
  journal = {ACM Trans. Graph.},
  month = feb,
  volume = {42},
  number = {1},
  articleno = {5},
  url = {},
  doi = {10.1145/3544778}