• Stars
    star
    1,458
  • Rank 32,260 (Top 0.7 %)
  • Language
    C
  • License
    MIT License
  • Created over 9 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mesh triangle reduction using quadrics

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.

More Repositories

1

Planet-LOD

Planet Rendering: Adaptive Spherical Level of Detail based on Triangle Subdivision
C
335
star
2

Game-GUI

Game GUI is a skin-able GL based Widget Class for Games
C
316
star
3

Sparse-Voxel-Octree-Raycasting

Sparse Voxel Octree Raycasting with Image Warping exploiting Frame-to-Frame Coherence in OpenCL
C
107
star
4

Game-NET

RPC Network Library for Multiplayer Games
C++
74
star
5

HVOX-Engine

Visualization of Large Procedural Voxel-Terrains using ISO-Surfaces based on nested Clip-Boxes
C++
56
star
6

OutStar.VoxelGame

Voxel Editor and Game in One
C
44
star
7

Terrain-HeightMap-Generator

Terrain Generator with Erosion
C
40
star
8

RLE-based-Voxel-Raycasting

CUDA based Voxel Raycasting - Paper: Efficient, High-Quality, GPU-Based Visualization of Voxelized Surface Data
C
39
star
9

OpenCL-Voxel-Splatting

Splatting using OpenCL can reach more than 2 Bln Splats/s !
C
38
star
10

Procedural-Geometry-Maps

The Maps are visualized using the Tessellation Shader
C
32
star
11

Geometry-Clipmap-Tutorial-in-OpenGL

Simple Terrain Engine in 200 Lines of Code
C
30
star
12

Voxel-Terrain-Raycasting-with-SSDM

Procedural Voxel Terrain Raycaster with Hitpoint Refinement and Screen Space Displacement Mapping
C
25
star
13

Pulsar-Voxel-Engine-1996

Tile based Voxel Engine written in Pascal/Assembly using Protected Real Mode in DOS
Pascal
24
star
14

Voxel-Raycasting-using-True-Impostors

Experimental Code to Render a Voxel Volume using 6 Height Maps (+-XYZ) to define the Object
C
20
star
15

OpenGL-Voxel-Splatting

OpenGL Voxel Splatting
C
20
star
16

Skinned-Skeletal-Animation-in-OpenGL

Skeletal Animation Tutorial using Shaders to Transform the Vertices. Based on the OGRE Mesh Format
C
17
star
17

1K-3D-Voxel-Engines-1990s-

3D Voxel Engines with 1K Turbo Pascal Source Code
Pascal
15
star
18

Deformation-Styles-using-Spline-Skinning

Deformation Styles using Spline Skinning
C
12
star
19

Stereo-Matching

Dynamic Programming Dense Stereo Matching Tutorial
C++
10
star
20

Java-Random-Texture-Generator

Texture Generator in Java
Java
7
star
21

CodeFlash

Create simple shortcuts for long text phrases (usable for programming, chatting, writing emails etc)
AutoHotkey
1
star