All Projects → karimnaaji → 3d Quickhull

karimnaaji / 3d Quickhull

Licence: mit
Header only 3d quickhull in c99

Programming Languages

c99
33 projects

Projects that are alternatives of or similar to 3d Quickhull

Voxelizer
Header only mesh voxelizer in c99
Stars: ✭ 487 (+88.03%)
Mutual labels:  computer-graphics, geometry-processing
go-icp cython
Go-ICP for globally optimal 3D pointset registration
Stars: ✭ 79 (-69.5%)
Mutual labels:  computer-graphics, geometry-processing
Melt
Automatic conservative mesh occluder generation by box filling
Stars: ✭ 105 (-59.46%)
Mutual labels:  computer-graphics, geometry-processing
Cinolib
A generic programming header only C++ library for processing polygonal and polyhedral meshes
Stars: ✭ 407 (+57.14%)
Mutual labels:  computer-graphics, geometry-processing
Softras
Project page of paper "Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning"
Stars: ✭ 715 (+176.06%)
Mutual labels:  computer-graphics, geometry-processing
Pifu
This repository contains the code for the paper "PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization"
Stars: ✭ 1,021 (+294.21%)
Mutual labels:  computer-graphics, geometry-processing
Optcuts
OptCuts, a new parameterization algorithm, jointly optimizes arbitrary embeddings for seam quality and distortion. OptCuts requires no parameter tuning; automatically generating mappings that minimize seam-lengths while satisfying user-requested distortion bounds.
Stars: ✭ 145 (-44.02%)
Mutual labels:  computer-graphics, geometry-processing
gproshan
geometry processing and shape analysis framework
Stars: ✭ 48 (-81.47%)
Mutual labels:  geometry-processing
creative-production-coding
⚙️ Coding for creative productions.
Stars: ✭ 14 (-94.59%)
Mutual labels:  computer-graphics
stumpy core
Core components for working with images
Stars: ✭ 28 (-89.19%)
Mutual labels:  computer-graphics
DOT
Decomposed Optimization Time Integration (DOT) is a domain-decomposed optimization method for fast, reliable simulation of deformation dynamics. DOT efficiently converges with frame-rate time-steps across a wide range of extreme conditions.
Stars: ✭ 37 (-85.71%)
Mutual labels:  computer-graphics
CPURasterizer
CPU Based Rasterizer Engine
Stars: ✭ 99 (-61.78%)
Mutual labels:  computer-graphics
Book-list-of-computational-geometry-and-computer-graphics
Book list of computational geometry and computer graphics 计算几何和计算机图形学必读书单与经典书籍
Stars: ✭ 374 (+44.4%)
Mutual labels:  computer-graphics
awesome-glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 700 (+170.27%)
Mutual labels:  computer-graphics
PbfVs
Implementation of Macklin, Miles, and Matthias Müller. "Position based fluids.". Visual Studio 2015 + CUDA 8.0
Stars: ✭ 100 (-61.39%)
Mutual labels:  computer-graphics
OpenGL MPMSnowSimulation2D
2D Implementation of Material Point Method for Snow Simulation
Stars: ✭ 26 (-89.96%)
Mutual labels:  computer-graphics
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-92.66%)
Mutual labels:  geometry-processing
vktut
Shabi's Vulkan Tutorials
Stars: ✭ 88 (-66.02%)
Mutual labels:  computer-graphics
trace.moe-media
Media server for serving video preview for trace.moe
Stars: ✭ 28 (-89.19%)
Mutual labels:  computer-graphics
SuperShapes
A tiny macOS app showing how to use Satin, Forge, Youi and SwiftUI to visualize super shapes in 3D.
Stars: ✭ 42 (-83.78%)
Mutual labels:  computer-graphics

3d-quickhull

Header only 3d quickhull in ANSI C

Usage

To use this library, simply include quickhull.h once with the QUICKHULL_IMPLEMENTATION define in a .cpp file.

#define QUICKHULL_IMPLEMENTATION
#include "quickhull.h"

The usage of the library is quite simple, generate or gather a set of points, and call qh_quickhull3d. The result is a mesh with a set of indexed normals and vertices ready to upload in a GPU.

const int n = 100;
qh_vertex_t vertices[n];

for (int i = 0; i < n; ++i) {
    float a0 = (rand_0_1() * M_PI * 2);
    float a1 = (rand_0_1() * M_PI * 2);
    vertices[i].z = sin(a0) * radius;
    vertices[i].x = cos(a1) * cos(a0) * rand_0_1();
    vertices[i].y = sin(a1) * cos(a0) * rand_0_1();
}

qh_mesh_t mesh = qh_quickhull3d(vertices, n);

// ...

qh_free_mesh(mesh);

Example

If you're interested in low-polygon rendering, using quickhull as a base for mesh triangulation can give such results:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].