Interactive Curvature Tensor Visualization on Digital Surfaces

Abstract

Interactive visualization is a very convenient tool to explore complex scientific data or to try different parameter settings for a given processing algorithm. In this article, we present a tool to efficiently analyze the curvature tensor on the boundary of potentially large and dynamic digital objects (mean and Gaussian curvatures, principal curvatures, principal directions and normal vector field). More precisely, we combine a fully parallel pipeline on GPU to extract an adaptive triangulated isosurface of the digital object, with a curvature tensor estimation at each surface point based on integral invariants. Integral invariants being parametrized by a given ball radius, our proposal allows to explore interactively different radii and thus select the appropriate scale at which the computation is performed and visualized.

Publication
DGCI2016

Caption: *First row: Mean and Gaussian curvature estimation, (zoom of) first and second principal directions estimation on "OctaFlower" with a digital domain of 130^3. Second row: Mean curvature computed in real-time (around 20 FPS) on a dynamic object. *

@inproceedings{dcoeurjo_DGCI16,
      address = {Nantes, France},
      author = {Perrier, Hélène and Levallois, Jérémy and Coeurjolly, David and Farrugia, Jean-Philippe and Iehl, Jean-Claude and Lachaud, Jacques-Olivier},
      booktitle = {DGCI2016},
      doi = {10.1007/978-3-319-32360-2_22},
      editor = {Springer},
      hal_id = {hal-01262663},
      keywords = {Isosurface Visualization ; Digital Geometry ;
Curvature Es-timation ; GPU},
      month = {April},
      pages = {282--294},
      pdf = {https://hal.archives-ouvertes.fr/hal-01262663/file/article.pdf},
      series = {International Conference on Discrete Geometry for
Computer Imagery},
      title = {Interactive Curvature Tensor Visualization on Digital Surfaces},
      url = {https://hal.archives-ouvertes.fr/hal-01262663},
      volume = {Lecture Notes in Computer Sciences},
      year = {2016}
}