Code Monkey home page Code Monkey logo

fast-quadric-mesh-simplification's Introduction

Fast-Quadric-Mesh-Simplification

Mesh triangle reduction using quadrics - for Windows, OSX and Linux (thx Chris Rorden)

img

Summary Since I couldn't find any code that's fast, memory efficient, free and for high quality, I developed my version of the quadric based edge collapse mesh simplification method. It uses a threshold to determine which triangles to delete, which avoids sorting but might lead to lesser quality. It is about 4x as fast as Meshlab and can simplify 2M -> 30k triangles in 3.5 seconds.

Usage The functionality is contained in Simplify.h. The function to call is simplify_mesh(target_count). The code is kept pretty slim, so the main method has just around 400 lines of code.

Obj File Limitations The Obj file may only have one group or object. Its a very simple reader/writer, so don't try to use multiple objects in one file

Windows, OSX and Linux Command Line Tool added

Thanks to Chris Rorden for creating a command line version and providing binaries for OSX and Linux.

Pascal Version

Chris Rorden further created a pascal version that you can find here

https://github.com/neurolabusc/Fast-Quadric-Mesh-Simplification-Pascal-

License : MIT

Please don't forget to cite this page if you use the code!

Projects Using this Method

Surf-Ice

Surf Ice is a tool for surface rendering the cortex with overlays to illustrate tractography, network connections, anatomical atlases and statistical maps. While there are many alternatives, Surf Ice is easy to use and uses advances shaders to generate stunning images. It supports many popular mesh formats [3ds, ac3d, BrainVoyager (srf), ctm, Collada (dae), dfs, dxf, FreeSurfer (Asc, Srf, Curv, gcs, Pial, W), GIfTI (gii), gts, lwo, ms3d, mz3, nv, obj, off, ply, stl, vtk], connectome formats (edge/node) and tractography formats [bfloat, pdb, tck, trk, vtk].

img img

THREE.JS Sample using the Method

img

Live Web Version by Tiger Yuhao Huang

img

Unity Mesh Decimator by Mattias Edlund / Whinarn

.NET Mesh Decimator by Mattias Edlund / Whinarn

Javascript Mesh Decimator by Andrew Taber / ataber

Javascript Mesh Decimator by Joshua Koo / zz85

Java Mesh Decimator by Jayfella

Port from C++ to pure C by Chris Rorden. Includes routines for Marching Cubes and Laplacian HC mesh smoothing.

fast-quadric-mesh-simplification's People

Contributors

sp4cerat avatar timknip2 avatar neurolabusc avatar calinou avatar bit00009 avatar luzpaz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.