Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save postspectacular/d265703a81213b4393e5 to your computer and use it in GitHub Desktop.
Save postspectacular/d265703a81213b4393e5 to your computer and use it in GitHub Desktop.
Below I collected relevant links and papers more or less pertaining to the subject of tetrahedral meshes.
It's an ever-growing list.
------------------------------
Relevant links:
http://en.wikipedia.org/wiki/Types_of_mesh
http://en.wikipedia.org/wiki/Tetrahedron
http://en.wikipedia.org/wiki/Simplicial_complex
A C++ library that deals with tetrahedral and other volumetric meshes
http://www.openvolumemesh.org/
The data structure from "Half-edges redux" could be expanded similarly
to OVM for one more indirection.
https://fgiesen.wordpress.com/2012/04/03/half-edges-redux/
Mesh Generation (slides)
Gives Euler-Poincaré metrics for tet meshes, typical valences, a whole range of
methods for tetrahedralization and refinement.
http://perso.uclouvain.be/vincent.legat/teaching/documents/meca2170-jfr-cours3.pdf
------------------------------
(Vaguely) related research links:
* An Unified Approach for 2D and 3D Rasterization
voxelization of tetrahedra as analog to rasterization of triangles.
http://virtual.inesc.pt/siacg02/papers/10.pdf
* OpenVolumetricMesh-An Efficient Data Structure for Tetrahedral
and Hexahedral Meshes
Data structure for both cubic and tetrahedral volumes. Elevates
the face structure to a half-face structure analog to half-edges.
Volume mesh operations are then well-defined.
http://openvm.org/data/OVM.pdf
* Half-Edge Multi-Tessellation: A Compact Representation for
Multi-Resolution Tetrahedral Meshes
Discusses techniques to store different LOD levels of a volume
in a single structure for adaptive mesh extraction.
ftp://ftp.disi.unige.it/person/DanovaroE/pdf/3dpvt.pdf
A newer summary is here
* The Half-Edge Tree: A Compact Data Structure for
Level-of-Detail Tetrahedral Meshes
ftp://ftp.disi.unige.it/person/MagilloP/PDF/het-short.pdf
[LD08] Accelerating Ray Tracing using Constrained Tetrahedralizations
Tetrahedralizes space around an object to skip space while raytracing
http://people.cs.kuleuven.be/~ares.lagae/publications/LD08ARTCT/LD08ARTCT.pdf
* Fast, Exact, Linear Booleans
Describes how to elegantly perform CSG operations on BSP trees
http://www.gilbertbernstein.com/resources/booleans2009.pdf
In this context probably relevant:
* Automatic Convexification of Space using BSP-trees
http://vgc.poly.edu/~csilva/papers/bsp-fill.pdf
* BSP-ASSISTED CONSTRAINED TETRAHEDRALIZATION
http://cow.mooh.org/research/joshi_imr2003.pdf
* Exact and Robust (Self-)Intersections for Polygonal Meshes
Follow-up paper to the one above, expanding on the technique
https://www.graphics.rwth-aachen.de/publication/35/campen_2010_eg_021.pdf
* Real-Time Deformation and Fracture in a Game Environment
The research that went into the Euphoria engine
http://graphics.berkeley.edu/papers/Parker-RTD-2009-08/Parker-RTD-2009-08.pdf
* Invertible Finite Elements For Robust Simulation of Large Deformation
demonstrates how preserving inverted tets can be used to reconstruct objects
after severe deformation.
https://www.math.ucla.edu/~jteran/papers/ITF04.pdf
* Delaunay Triangulation in R3 on the GPU
gDel3D thesis: http://daariga.github.io/papers/gdel3d-thesis.pdf
software: https://github.com/ashwin/gstar4d
Follow-up paper from 2014:
http://www.comp.nus.edu.sg/~tants/gdel3d_files/gDel3D.pdf
* Simulating Liquids and Solid-Liquid Interactions with Lagrangian Meshes
contains a method to create unions of overlapping tets
http://graphics.berkeley.edu/papers/Clausen-SLS-2013-04/Clausen-SLS-2013-04.pdf
* A Realtime GPU Subdivision Kernel
a strategy to subdivide meshes on the GPU; they use catmull-clark,
but claim other methods are possible.
http://www.cs.kent.edu/~zwang/schedule/dc6.pdf
and a later one from 2012
* Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces
http://graphics.pixar.com/library/GPUSubdivRenderingA/paper.pdf
* Nick's Voxel Blog: Implementing Dual Contouring
a new implementation of dual contouring including source code; that's always nice.
http://ngildea.blogspot.de/2014/11/implementing-dual-contouring.html
* Fast Ray–Tetrahedron Intersection using Plücker Coordinates
http://pelopas.uop.gr/~nplatis%20/files/PlatisTheoharisRayTetra.pdf
* Fast tetrahedron-tetrahedron overlap algorithm
http://vcg.isti.cnr.it/Publications/2003/GPR03/fast_tetrahedron_tetrahedron_overlap_algorithm.pdf
clojure implementation is here
https://gist.github.com/postspectacular/9021724
* Smooth Subdivision of Tetrahedral Meshes
a variation of Loop subdivision for volumes
http://www.cs.rice.edu/~jwarren/papers/tetrahedral.pdf
and a catmull-clark like scheme for hexahedral volumes
http://www.cs.rice.edu/~jwarren/papers/hexahedral.pdf
* Arbitrary Cutting of Deformable Tetrahedralized Objects
what it says on the tin
http://pages.cs.wisc.edu/~sifakis/papers/cutting.pdf
* Adaptive Physics Based Tetrahedral Mesh Generation Using Level Sets
volumetric meshing using a body-centered cubic (BCC) lattice, incluing
an explanation why BCC lattices are awesome (top reason: Octree compatible)
Also describes a spring model to keep tetrahedra convex.
http://www.ann.jussieu.fr/frey/papers/meshing/Bridson%20R.,%20Adaptive%20physics%20based%20tetrahedral%20mesh%20generation%20using%20level%20sets.pdf
* A CRYSTALLINE, RED GREEN STRATEGY FOR MESHING HIGHLY DEFORMABLE OBJECTS WITH TETRAHEDRA
More on the subject from the paper above (same authors, same pictures)
https://www.math.ucla.edu/~jteran/papers/MBTF03.pdf
* Adaptive and Quality Tetrahedral Mesh Generation
explains the basics of octree-based BCC volume meshing
http://www.imr.sandia.gov/papers/imr19/RNwang.pdf
* GPU-accelerated data expansion for the Marching Cubes algorithm
these slides explain histopyramids, an approach to do O(log n) filter/reduce on the GPU, there
called "stream compaction / expansion"
http://on-demand.gputechconf.com/gtc/2010/presentations/S12020-GPU-Accelerated-Data-Expansion-Marching-Cubes-Algorithm.pdf
* RealTime QuadTree Analysis using HistoPyramids
describes how to use histopyramids to extract a quadtree / octree analog is similar
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=BA2CD67F3A384DDDBFC63862DB248AC0?doi=10.1.1.90.7288&rep=rep1&type=pdf
* GPU Data Structures for Graphics and Vision
a short summary of how histopyramids can help creating quadtrees / octrees
http://www.cg.tuwien.ac.at/~vogi/_misc/thesis%20defense%20-%20presentation.pdf
* Cascaded Light Propagation Volumes for Real-Time Indirect Illumination
could be adapted for a tetrahedral BCC grid
http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf
solid angle calculations for how much flux each face receives
have been done in detail here:
Light Propagation Volumes - Annotations (Andreas Kirsch)
http://blog.blackhc.net/wp-content/uploads/2010/07/lpv-annotations.pdf
and an extensive thesis is here, with a shorter solid angle calculation scheme in the appendix
Higher Order Light Propagation Volumes
https://escholarship.org/uc/item/3d36v53h
Multiple papers on Sparse Voxel Octree Cone Tracing & related stuff:
* Interactive Indirect Illumination Using Voxel Cone Tracing
https://research.nvidia.com/publication/interactive-indirect-illumination-using-voxel-cone-tracing
* High Resolution Sparse Voxel DAGs
http://www.cse.chalmers.se/~uffe/HighResolutionSparseVoxelDAGs.pdf
* CASCADED VOXEL CONE TRACING
http://fumufumu.q-games.com/archives/000934.php
* Lattice-Based Volumetric Global Illumination
light propagation on a FCC (face-centered cubic) lattice
http://www3.cs.stonybrook.edu/~mueller/papers/latticeVis07_final.pdf
* VolQD: Direct Volume Rendering of Multi-million Atom Quantum Dot Simulations
contains implementation details for FCC lattices
https://engineering.purdue.edu/purpl/level2/papers/VolQD.pdf
* Isosurface Stuffing: Fast Tetrahedral Meshes with Good Dihedral Angles
describes how to perform marching tetrahedra on BCC lattice
http://www.cs.berkeley.edu/~jrs/papers/stuffing.pdf
* Isosurfaces on Optimal Regular Samples
does marching octahedra on BCC lattice
http://ivg.ucd.ie/files/shared/CTM03_BCCIsosurfaces.pdf
* Fast Deformation of Volume Data Using Tetrahedral Mesh Rasterization
a tetrahedral grid is used to deform a voxel cube
http://www.gmrv.es/Publications/2013/GEPTO13/paper.pdf
* Light probe interpolation using tetrahedral tessellations
subdivides open spaces in map into tetrahedra, stores light probes at vertices
http://twvideo01.ubm-us.net/o1/vault/gdc2012/slides/Programming%20Track/Cupisz_Robert_Light_Probe_Interpolation.pdf
* Highly Adaptive Liquid Simulations on Tetrahedral Meshes
what it says on the can; the subdivision scheme is BCC
http://pub.ist.ac.at/group_wojtan/projects/2013_Ando_HALSoTM/download/tetflip_fixed.pdf
* Particle-based Sampling and Meshing of Surfaces in Multimaterial Volumes
high quality results but expensive computations
http://www.cs.utah.edu/~kirby/Publications/Kirby-36.pdf
* Per-face parametrization for Texture Mapping of Geometry in Real-Time
how the frostbite engine maps textures per face
http://www.frostbite.com/wp-content/uploads/2014/11/meshcolors_report.pdf
* Generalized Distance Functions
SDF functions for polyhedra
http://www.viz.tamu.edu/faculty/ergun/research/implicitmodeling/papers/sm99.pdf
Books
=====
* Finite Element Mesh Generation (Daniel S.H.Lo)
contains a method on how to merge meshes, but exorbitantly expensive,
so I can't afford it.
http://www.amazon.com/Finite-Element-Mesh-Generation-Daniel/dp/041569048X
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment