Proceedings: GI 2019

DiffusionMesh

Ming-Yee Iu (Wobastic Software Inc.)

Proceedings of Graphics Interface 2019: Kingston, Ontario, 28 - 31 May 2019

DOI 10.20380/GI2019.26

  • BibTex

    @inproceedings{Iu:2019:10.20380/GI2019.26,
    author = {Iu, Ming-Yee},
    title = {DiffusionMesh},
    booktitle = {Proceedings of Graphics Interface 2019},
    series = {GI 2019},
    year = {2019},
    issn = {0713-5424},
    isbn = {978-0-9947868-4-5},
    location = {Kingston, Ontario},
    numpages = {8},
    doi = {10.20380/GI2019.26},
    publisher = {Canadian Information Processing Society},
    keywords = {Vector graphics, gradient meshes, diffusion curves},
    }
  • Supplementary Media

Abstract

The DiffusionMesh system incorporates an advanced gradient system that is inspired by diffusion curves with a traditional vector graphics tool. Shapes in DiffusionMesh are defined using closed paths, like in traditional vector drawing tools, but DiffusionMesh extends this model in several ways: different colors can be assigned to the nodes of closed paths, closed paths can be joined together into arbitrary meshes, a C1 continuity of colors is maintained across seams between the different shapes of a mesh, and each shape can constrain which colors are allowed inside the shape. Since shapes are defined using closed paths, they can be easily composited into more complex drawings. DiffusionMesh renders these shapes by decomposing the shapes into triangle meshes and diffusing colors across the mesh to create a smooth gradient. During changes to the drawing, DiffusionMesh only needs to recompute the gradient for the affected shapes instead of solving a global optimization for every change. The use of triangle meshes for rendering means that drawings can be scrolled and zoomed without needing to recompute the gradient. Although rendering is too slow for real-time animation, it is still fast enough for interactive use.