294 research outputs found
Simple and Robust Boolean Operations for Triangulated Surfaces
Boolean operations of geometric models is an essential issue in computational
geometry. In this paper, we develop a simple and robust approach to perform
Boolean operations on closed and open triangulated surfaces. Our method mainly
has two stages: (1) We firstly find out candidate intersected-triangles pairs
based on Octree and then compute the inter-section lines for all pairs of
triangles with parallel algorithm; (2) We form closed or open
intersection-loops, sub-surfaces and sub-blocks quite robustly only according
to the cleared and updated topology of meshes while without coordinate
computations for geometric enti-ties. A novel technique instead of
inside/outside classification is also proposed to distinguish the resulting
union, subtraction and intersection. Several examples have been given to
illus-trate the effectiveness of our approach.Comment: Novel method for determining Union, Subtraction and Intersectio
Fast Exact Booleans for Iterated CSG using Octree-Embedded BSPs
We present octree-embedded BSPs, a volumetric mesh data structure suited for
performing a sequence of Boolean operations (iterated CSG) efficiently. At its
core, our data structure leverages a plane-based geometry representation and
integer arithmetics to guarantee unconditionally robust operations. These
typically present considerable performance challenges which we overcome by
using custom-tailored fixed-precision operations and an efficient algorithm for
cutting a convex mesh against a plane. Consequently, BSP Booleans and mesh
extraction are formulated in terms of mesh cutting. The octree is used as a
global acceleration structure to keep modifications local and bound the BSP
complexity. With our optimizations, we can perform up to 2.5 million mesh-plane
cuts per second on a single core, which creates roughly 40-50 million output
BSP nodes for CSG. We demonstrate our system in two iterated CSG settings:
sweep volumes and a milling simulation
QuickCSG: Fast Arbitrary Boolean Combinations of N Solids
QuickCSG computes the result for general N-polyhedron boolean expressions
without an intermediate tree of solids. We propose a vertex-centric view of the
problem, which simplifies the identification of final geometric contributions,
and facilitates its spatial decomposition. The problem is then cast in a single
KD-tree exploration, geared toward the result by early pruning of any region of
space not contributing to the final surface. We assume strong regularity
properties on the input meshes and that they are in general position. This
simplifying assumption, in combination with our vertex-centric approach,
improves the speed of the approach. Complemented with a task-stealing
parallelization, the algorithm achieves breakthrough performance, one to two
orders of magnitude speedups with respect to state-of-the-art CPU algorithms,
on boolean operations over two to dozens of polyhedra. The algorithm also
outperforms GPU implementations with approximate discretizations, while
producing an output without redundant facets. Despite the restrictive
assumptions on the input, we show the usefulness of QuickCSG for applications
with large CSG problems and strong temporal constraints, e.g. modeling for 3D
printers, reconstruction from visual hulls and collision detection
QuickCSG: Fast Arbitrary Boolean Combinations of N Solids
QuickCSG computes the result for general N-polyhedron boolean expressions
without an intermediate tree of solids. We propose a vertex-centric view of the
problem, which simplifies the identification of final geometric contributions,
and facilitates its spatial decomposition. The problem is then cast in a single
KD-tree exploration, geared toward the result by early pruning of any region of
space not contributing to the final surface. We assume strong regularity
properties on the input meshes and that they are in general position. This
simplifying assumption, in combination with our vertex-centric approach,
improves the speed of the approach. Complemented with a task-stealing
parallelization, the algorithm achieves breakthrough performance, one to two
orders of magnitude speedups with respect to state-of-the-art CPU algorithms,
on boolean operations over two to dozens of polyhedra. The algorithm also
outperforms GPU implementations with approximate discretizations, while
producing an output without redundant facets. Despite the restrictive
assumptions on the input, we show the usefulness of QuickCSG for applications
with large CSG problems and strong temporal constraints, e.g. modeling for 3D
printers, reconstruction from visual hulls and collision detection
Performance and Optimization Abstractions for Large Scale Heterogeneous Systems in the Cactus/Chemora Framework
We describe a set of lower-level abstractions to improve performance on
modern large scale heterogeneous systems. These provide portable access to
system- and hardware-dependent features, automatically apply dynamic
optimizations at run time, and target stencil-based codes used in finite
differencing, finite volume, or block-structured adaptive mesh refinement
codes.
These abstractions include a novel data structure to manage refinement
information for block-structured adaptive mesh refinement, an iterator
mechanism to efficiently traverse multi-dimensional arrays in stencil-based
codes, and a portable API and implementation for explicit SIMD vectorization.
These abstractions can either be employed manually, or be targeted by
automated code generation, or be used via support libraries by compilers during
code generation. The implementations described below are available in the
Cactus framework, and are used e.g. in the Einstein Toolkit for relativistic
astrophysics simulations
- …