Skip to content

A tool that using Sqrt3 and Catmull Clark subdivision algorithms, it also can convert triangle meshes to quad meshes.

Notifications You must be signed in to change notification settings

bertaye/Mesh-Smoothing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CatmullClark-Sqrt3-Subdivision

Update:

I converted this project to a command line application, you can build it with CMake:

mkdir build
cd build
cmake ../
cmake --build .

and then go to MeshSubdivider.exe, run MeshSubdivider.exe --help to see options.

Note:

This project runs on CPU, I am open to appending it with CUDA Kernels and would approve any PR who does that or partially help to it (I love writing CUDA Kernels but I do not have time to do it by myself)

Catmull Clark Algorithm

To use it, load mesh with correct method ( use mesh->loadOffTriMesh("mesh.off") for triangulated meshes and use mesh->loadOffQuadMesh("mesh.off") for quad meshes)

If you loaded a triangulated mesh, call the mesh->convertQuadbySplit() method to continue.

Then use mesh->CatmullClarkSubdiv() for Catmull Clark algorithm. Each call corresponds one iteration.

Note: convertQuadbySplit() uses Catmull-Clark split method.

Here are some example results:

Cube:

Cube w/triangles converted to quads by split

### Man

Sqrt3 Subdivision Algorithm

To use it, load mesh with correct method ( use mesh->loadOffTriMesh("mesh.off") because this algorithm only works for triangulated meshes and I dont provide any conversion from quads to triangles right now)

Then use mesh->Sqrt3SubDiv for Sqrt3 Subdivision algorithm. Each call corresponds one iteration.

Here are some example results:

Coffee Cup

Horse

About

A tool that using Sqrt3 and Catmull Clark subdivision algorithms, it also can convert triangle meshes to quad meshes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published