ozkanyumsak / mesh-subdivision

A collection of common mesh subdivision algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mesh-subdivision

A collection of mesh subdivision algorithms.

Algorithms that are currently implemented:

  • Butterfly
  • Catmull-Clark
  • Doo–Sabin
  • Root-3 by Kobbelt
  • Peters-Reif
  • Loop

For now, only OFF mesh format is supported. Mesh examples including letters, numbers and common graphical objects (cube, torus, helix etc) can be found in Meshes folder.

Meshes are represented as a variation of Half-Edge data structure. See Mesh class for details.

Demo application is rather simple: You choose a subdivision algorithm and a mesh to apply it to from a console-based user interface. Most of it is implemented in AlgoRunner class.

Used Open Inventor for visualization of subdivision results, given a mesh object. To use another visualization framework, modify files under Inventor folder (FilledShape and WireframeShape classes), Algorunner and Main.

Example subdivision results for 1, 2 and 3 passes are given below for a closed mesh (X) and an open one (helix). Cyan wireframe is the original mesh.

Doo-Sabin

Alt text Alt text

Catmull-Clark

Alt text Alt text

Loop

Alt text Alt text

Butterfly

Alt text Alt text

Root-3

Alt text Alt text

Peters-Reif

Alt text Alt text

About

A collection of common mesh subdivision algorithms

License:MIT License


Languages

Language:C++ 100.0%