Gino van den Bergen - Academia.edu (original) (raw)
Papers by Gino van den Bergen
A K Peters/CRC Press eBooks, Aug 8, 2005
We present a scheme for exact collision detection between complex models undergoing rigid motion ... more We present a scheme for exact collision detection between complex models undergoing rigid motion and deformation. The scheme relies on a hierarchical model representation using axis-aligned bounding boxes (AABBs). In recent work, AABB trees have been shown to be slower than oriented bounding box (OBB) trees. In this paper, we describe a way to speed up overlap tests between AABBs, such that for collision detection of rigid models, the difference in performance between the two representations is greatly reduced. Furthermore, we show how to quickly update an AABB tree as a model is deformed. We thus find AABB trees to be the method of choice for collision detection of complex models undergoing deformation. In fact, because they are not much slower to test, are faster to build, and use less storage than OBB trees, AABB trees might be a reasonable choice for rigid models as well.
A K Peters/CRC Press eBooks, Jul 23, 2010
This paper discusses methods for performing proximity queries (collision detection, distance comp... more This paper discusses methods for performing proximity queries (collision detection, distance computation) and penetration depth computation on a large class of convex objects. The penetration depth of a pair of intersecting objects is the shortest vector over which one object needs to be translated in order to bring the pair in touching contact. The class of objects includes convex primitives such as polytopes (line segments, triangles, convex polyhedra) and quadrics (spheres, cones, cylinders), as well as shapes derived from these primitives by affine transformation and spherical expansion (inflating an object by a given offset).
CRC Press eBooks, Oct 27, 2003
1 Introduction 1.1 Problem Domain 1.2 Historical Background 1.3 Organization 2 Concepts 2.1 Geome... more 1 Introduction 1.1 Problem Domain 1.2 Historical Background 1.3 Organization 2 Concepts 2.1 Geometry 2.1.1 Notational Conventions 2.1.2 Vector Spaces 2.1.3 Affine Spaces 2.1.4 Euclidean Spaces 2.1.5 Affine Transformations 2.1.6 Three-dimensional Space 2.2 Objects 2.2.1 Polytopes 2.2.2 Polygons 2.2.3 Quadrics 2.2.4 Minkowski Addition 2.2.5 Complex Shapes and Scenes 2.3 Animation 2.4 Time 2.5 Response 2.6 Performance 2.6.1 Frame Coherence 2.6.2 Geometric Coherence 2.6.3 Average Time 2.7 Robustness 2.7.1 Floating-Point Numbers 2.7.2 Stability 2.7.3 Coping with Numerical Problems 3 Basic Primitives 3.1 Spheres 3.1.1 Sphere-Sphere Test 3.1.2 Ray-Sphere Test 3.1.3 Line-Segment-Sphere Test 3.2 Axis-Aligned Boxes 3.2.1 Ray-Box Test 3.2.2 Sphere-Box Test 3.3 Separating Axes 3.3.1 Line-Segment-Box Test 3.3.2 Triangle-Box Test 3.3.3 Box-Box Test 3.4 Polygons 3.4.1 Ray-Triangle Test 3.4.2 Line Segment-Triangle Test 3.4.3 Ray-Polygon Test 3.4.4 Triangle-Triangle Test 3.4.5 Polygon-Polygon Test 3.4.6 Triangle-Sphere Test 3.4.7 Polygon-Volume Tests 4 Convex Objects 4.1 Proximity Queries 4.2 Overview of Algorithms for Polytopes 4.2.1 Finding a Common Point 4.2.2 Finding a Separating Plane 4.2.3 Distance and Penetration Depth Computation 4.3 The Gilbert-Johnson-Keerthi Algorithm 4.3.1 Overview 4.3.2 Convergence and Termination 4.3.3 Johnson's Distance Algorithm 4.3.4 Support Mappings 4.3.5 Implementing the GJK Algorithm 4.3.6 Numerical Aspects of the GJK Algorithm 4.3.7 Testing for Intersections 4.3.8 Penetration Depth 5 Spatial Data Structures 5.1 Nonconvex Polyhedra 5.1.1 Convex Decomposition 5.1.2 Polyhedral Surfaces 5.1.3 Point in Nonconvex Polyhedron 5.2 Space Partitioning 5.2.1 Voxel Grids 5.2.2 Octrees and k-d Trees 5.2.3 Binary Space Partitioning Trees 5.2.4 Discussion 5.3 Model Partitioning 5.3.1 Bounding Volumes 5.3.2 Bounding-Volume Hierarchies 5.3.3 AABB Trees versus OBB Trees 5.3.4 AABB Trees and Deformable Models 5.4 Broad Phase 5.4.1 Sweep and Prune 5.4.2 Implementing the Sweep-and-Prune Algorithm 5.4.3 Ray Casting and AABBs 6 Design of SOLID 6.1 Requirements 6.2 Overview of SOLID 6.3 Design Decisions 6.3.1 Shape Representation 6.3.2 Motion Specification 6.3.3 Response Handling 6.3.4 Algorithms 6.4 Evaluation 6.5 Implementation Notes 6.5.1 Generic Data Types and Algorithms 6.5.2 Fundamental 3D Classes 7 Conclusion 7.1 State of the Art 7.2 Future Work Bibliography Index About the CD-ROM Trademarks
High Performance Graphics, 2007
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs' implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs' implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering passes on a GPU. This method is used for computing the repulsion forces according to the method of smoothed particle hydrodynamics. Third, to further accelerate particle dispersion, we present a method for transferring particles from high-density areas to low-density areas on the surface.
Journal Of Graphics, Gpu, And Game Tools, 1999
This paper presents an implementation of the Gilbert-Johnson-Keerthi algorithm for computing the ... more This paper presents an implementation of the Gilbert-Johnson-Keerthi algorithm for computing the distance between convex objects, that has improved performance, robustness, and versatility over earlier implementations. The algorithm presented here is especially fit for use in collision detection of objects modeled using various types of geometric primitives, such as boxes, cones, and spheres, and their images under affine transformation, for instance, as described in VRML.
Journal Of Graphics, Gpu, And Game Tools, 1997
We present a scheme for exact collision detection between complex mod els undergoing rigid motion... more We present a scheme for exact collision detection between complex mod els undergoing rigid motion and deformation. The scheme relies on a hier archical model representation using axis-aligned bounding boxes (AABBs). In recent work, AABB trees have been shown to be slower than oriented bounding box (OBB) trees. In this paper, we describe a way to speed up overlap tests between AABBs, such that for collision detection of rigid mod els, the difference in performance between the two representations is greatly reduced. Furthermore, we show how to quickly update an AABB tree as a model is deformed. We thus find AABB trees to be the method of choice for collision detection of complex models undergoing deformation. In fact, because they are not much slower to test, are faster to build, and use less storage than OBB trees, AABB trees might be a reasonable choice for rigid models as well.
A K Peters/CRC Press eBooks, Jul 23, 2010
GAME PHYSICS 101 Mathematical Background Introduction Vectors and Points Lines and Planes Matrice... more GAME PHYSICS 101 Mathematical Background Introduction Vectors and Points Lines and Planes Matrices and Transformations Quaternions Rigid-Body Dynamics Numerical Integration Further Reading Understanding Game Physics Artifacts Introduction Discretizalion and Linearization Time Stepping and the Well of Despair The Curse of Rotations Solver Collision Detection Joints Direct Animation Artifact Reference COLLISION DETECTION Broad Phase and Constraint Optimization for PlayStation 3 Introduction Overview of CellBE Optimization of the Broad Phase Optimization of the Constraint Solver Conclusion SAT in Narrow Phase and Contact-Manifold Generation Introduction Contact Manifold Physics Engine Pipeline SAT Basics Intuitive Gauss Map Computing Full Contact Manifolds SAT Optimizations Smooth Mesh Contacts with GJK Introduction Configuration Space Support Mappings Overview of GJK Johnson's Algorithm Continuous Collision Detection Contacts Conclusion PARTICLES Optimized SPH Introduction The SPH Equations An Algorithm for SPH Simulation The Choice of Data Structure Collapsing the SPH Algorithm Stability and Behavior Performance Conclusion Appendix: Scaling the Pressure Force Parallelizing Particle-Based Simulation on Multiple Processors Introduction Dividing Computation Data Management without Duplication Choosing an Acceleration Structure Data Transfer Using Grids Results Conclusion CONSTRAINT SOLVING Ropes as Constraints Introduction Free-Hanging Ropes Strained Ropes Quaternion-Based Constraints Introduction Notation and Definitions The Problem Constraint Definitions Matrix-Based Quaternion Algebra A New Tale on Quaternion-Based Constraints Why It Works More General Frames Limits and Drivers Examples Conclusion SOFT BODY Soft Bodies Using Finite Elements Introduction Continuum Mechanics Linear FEM Solving the Linear System Surface-Mesh Update Particle-Based Simulation Using Verlet Integration Introduction Techniques for Numerical Integration Using Relaxation to Solve Systems of Equations Rigid Bodies Articulated Bodies Miscellaneous Conclusion Keep Yer Shirt On Introduction Stable Real-Time Cloth Modeling Real Fabrics Performance Order of Cloth Update Stages Conclusion, Results, and Future SKINNING Layered Skin Simulation Introduction Layered Deformation Architecture Smooth Skinning Anatomical Collisions Relaxalion Jiggle Conclusion Dynamic Secondary Skin Deformations Introduction The Interaction Model Neighborhood Interaction Volumetric Effects Final Remarks Index A Bibliography appears at the end of each chapter.
Elsevier eBooks, 2003
In no other problem area of interactive 3D animation are the often conflicting constraints on spa... more In no other problem area of interactive 3D animation are the often conflicting constraints on space and time so critical as in collision detection of complex environments. In environments composed of hundreds of objects, in which each object may again be composed of thousands of primitives, the number of pairwise primitive intersection tests that need to be performed can become huge. In this chapter, we will discuss spatial data structures for accelerating collision detection of complex environments.
A K Peters/CRC Press eBooks, Jul 23, 2010
In this final chapter we summarize the state of the art in 3D collision detection and present som... more In this final chapter we summarize the state of the art in 3D collision detection and present some pointers to new trends and interesting topics for future work.
Game Physics Engine Development, 2007
Now, we come to offer you the right catalogues of book to open. artificial intelligence for games... more Now, we come to offer you the right catalogues of book to open. artificial intelligence for games the morgan kaufmann series in interactive 3d technology is one of the literary work in this world in suitable to be reading material. That's not only this book gives reference, but also it will show you the amazing benefits of reading a book. Developing your countless minds is needed; moreover you are kind of people with great curiosity. So, the book is very appropriate for you.
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs ’ implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs ’ implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering ...
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs' implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs' implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering passes on a GPU. This method is used for computing the repulsion forces according to the method of smoothed particle hydrodynamics. Third, to further accelerate particle dispersion, we present a method for transferring particles from high-density areas to low-density areas on the surface.
A K Peters/CRC Press eBooks, Aug 8, 2005
We present a scheme for exact collision detection between complex models undergoing rigid motion ... more We present a scheme for exact collision detection between complex models undergoing rigid motion and deformation. The scheme relies on a hierarchical model representation using axis-aligned bounding boxes (AABBs). In recent work, AABB trees have been shown to be slower than oriented bounding box (OBB) trees. In this paper, we describe a way to speed up overlap tests between AABBs, such that for collision detection of rigid models, the difference in performance between the two representations is greatly reduced. Furthermore, we show how to quickly update an AABB tree as a model is deformed. We thus find AABB trees to be the method of choice for collision detection of complex models undergoing deformation. In fact, because they are not much slower to test, are faster to build, and use less storage than OBB trees, AABB trees might be a reasonable choice for rigid models as well.
A K Peters/CRC Press eBooks, Jul 23, 2010
This paper discusses methods for performing proximity queries (collision detection, distance comp... more This paper discusses methods for performing proximity queries (collision detection, distance computation) and penetration depth computation on a large class of convex objects. The penetration depth of a pair of intersecting objects is the shortest vector over which one object needs to be translated in order to bring the pair in touching contact. The class of objects includes convex primitives such as polytopes (line segments, triangles, convex polyhedra) and quadrics (spheres, cones, cylinders), as well as shapes derived from these primitives by affine transformation and spherical expansion (inflating an object by a given offset).
CRC Press eBooks, Oct 27, 2003
1 Introduction 1.1 Problem Domain 1.2 Historical Background 1.3 Organization 2 Concepts 2.1 Geome... more 1 Introduction 1.1 Problem Domain 1.2 Historical Background 1.3 Organization 2 Concepts 2.1 Geometry 2.1.1 Notational Conventions 2.1.2 Vector Spaces 2.1.3 Affine Spaces 2.1.4 Euclidean Spaces 2.1.5 Affine Transformations 2.1.6 Three-dimensional Space 2.2 Objects 2.2.1 Polytopes 2.2.2 Polygons 2.2.3 Quadrics 2.2.4 Minkowski Addition 2.2.5 Complex Shapes and Scenes 2.3 Animation 2.4 Time 2.5 Response 2.6 Performance 2.6.1 Frame Coherence 2.6.2 Geometric Coherence 2.6.3 Average Time 2.7 Robustness 2.7.1 Floating-Point Numbers 2.7.2 Stability 2.7.3 Coping with Numerical Problems 3 Basic Primitives 3.1 Spheres 3.1.1 Sphere-Sphere Test 3.1.2 Ray-Sphere Test 3.1.3 Line-Segment-Sphere Test 3.2 Axis-Aligned Boxes 3.2.1 Ray-Box Test 3.2.2 Sphere-Box Test 3.3 Separating Axes 3.3.1 Line-Segment-Box Test 3.3.2 Triangle-Box Test 3.3.3 Box-Box Test 3.4 Polygons 3.4.1 Ray-Triangle Test 3.4.2 Line Segment-Triangle Test 3.4.3 Ray-Polygon Test 3.4.4 Triangle-Triangle Test 3.4.5 Polygon-Polygon Test 3.4.6 Triangle-Sphere Test 3.4.7 Polygon-Volume Tests 4 Convex Objects 4.1 Proximity Queries 4.2 Overview of Algorithms for Polytopes 4.2.1 Finding a Common Point 4.2.2 Finding a Separating Plane 4.2.3 Distance and Penetration Depth Computation 4.3 The Gilbert-Johnson-Keerthi Algorithm 4.3.1 Overview 4.3.2 Convergence and Termination 4.3.3 Johnson's Distance Algorithm 4.3.4 Support Mappings 4.3.5 Implementing the GJK Algorithm 4.3.6 Numerical Aspects of the GJK Algorithm 4.3.7 Testing for Intersections 4.3.8 Penetration Depth 5 Spatial Data Structures 5.1 Nonconvex Polyhedra 5.1.1 Convex Decomposition 5.1.2 Polyhedral Surfaces 5.1.3 Point in Nonconvex Polyhedron 5.2 Space Partitioning 5.2.1 Voxel Grids 5.2.2 Octrees and k-d Trees 5.2.3 Binary Space Partitioning Trees 5.2.4 Discussion 5.3 Model Partitioning 5.3.1 Bounding Volumes 5.3.2 Bounding-Volume Hierarchies 5.3.3 AABB Trees versus OBB Trees 5.3.4 AABB Trees and Deformable Models 5.4 Broad Phase 5.4.1 Sweep and Prune 5.4.2 Implementing the Sweep-and-Prune Algorithm 5.4.3 Ray Casting and AABBs 6 Design of SOLID 6.1 Requirements 6.2 Overview of SOLID 6.3 Design Decisions 6.3.1 Shape Representation 6.3.2 Motion Specification 6.3.3 Response Handling 6.3.4 Algorithms 6.4 Evaluation 6.5 Implementation Notes 6.5.1 Generic Data Types and Algorithms 6.5.2 Fundamental 3D Classes 7 Conclusion 7.1 State of the Art 7.2 Future Work Bibliography Index About the CD-ROM Trademarks
High Performance Graphics, 2007
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs' implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs' implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering passes on a GPU. This method is used for computing the repulsion forces according to the method of smoothed particle hydrodynamics. Third, to further accelerate particle dispersion, we present a method for transferring particles from high-density areas to low-density areas on the surface.
Journal Of Graphics, Gpu, And Game Tools, 1999
This paper presents an implementation of the Gilbert-Johnson-Keerthi algorithm for computing the ... more This paper presents an implementation of the Gilbert-Johnson-Keerthi algorithm for computing the distance between convex objects, that has improved performance, robustness, and versatility over earlier implementations. The algorithm presented here is especially fit for use in collision detection of objects modeled using various types of geometric primitives, such as boxes, cones, and spheres, and their images under affine transformation, for instance, as described in VRML.
Journal Of Graphics, Gpu, And Game Tools, 1997
We present a scheme for exact collision detection between complex mod els undergoing rigid motion... more We present a scheme for exact collision detection between complex mod els undergoing rigid motion and deformation. The scheme relies on a hier archical model representation using axis-aligned bounding boxes (AABBs). In recent work, AABB trees have been shown to be slower than oriented bounding box (OBB) trees. In this paper, we describe a way to speed up overlap tests between AABBs, such that for collision detection of rigid mod els, the difference in performance between the two representations is greatly reduced. Furthermore, we show how to quickly update an AABB tree as a model is deformed. We thus find AABB trees to be the method of choice for collision detection of complex models undergoing deformation. In fact, because they are not much slower to test, are faster to build, and use less storage than OBB trees, AABB trees might be a reasonable choice for rigid models as well.
A K Peters/CRC Press eBooks, Jul 23, 2010
GAME PHYSICS 101 Mathematical Background Introduction Vectors and Points Lines and Planes Matrice... more GAME PHYSICS 101 Mathematical Background Introduction Vectors and Points Lines and Planes Matrices and Transformations Quaternions Rigid-Body Dynamics Numerical Integration Further Reading Understanding Game Physics Artifacts Introduction Discretizalion and Linearization Time Stepping and the Well of Despair The Curse of Rotations Solver Collision Detection Joints Direct Animation Artifact Reference COLLISION DETECTION Broad Phase and Constraint Optimization for PlayStation 3 Introduction Overview of CellBE Optimization of the Broad Phase Optimization of the Constraint Solver Conclusion SAT in Narrow Phase and Contact-Manifold Generation Introduction Contact Manifold Physics Engine Pipeline SAT Basics Intuitive Gauss Map Computing Full Contact Manifolds SAT Optimizations Smooth Mesh Contacts with GJK Introduction Configuration Space Support Mappings Overview of GJK Johnson's Algorithm Continuous Collision Detection Contacts Conclusion PARTICLES Optimized SPH Introduction The SPH Equations An Algorithm for SPH Simulation The Choice of Data Structure Collapsing the SPH Algorithm Stability and Behavior Performance Conclusion Appendix: Scaling the Pressure Force Parallelizing Particle-Based Simulation on Multiple Processors Introduction Dividing Computation Data Management without Duplication Choosing an Acceleration Structure Data Transfer Using Grids Results Conclusion CONSTRAINT SOLVING Ropes as Constraints Introduction Free-Hanging Ropes Strained Ropes Quaternion-Based Constraints Introduction Notation and Definitions The Problem Constraint Definitions Matrix-Based Quaternion Algebra A New Tale on Quaternion-Based Constraints Why It Works More General Frames Limits and Drivers Examples Conclusion SOFT BODY Soft Bodies Using Finite Elements Introduction Continuum Mechanics Linear FEM Solving the Linear System Surface-Mesh Update Particle-Based Simulation Using Verlet Integration Introduction Techniques for Numerical Integration Using Relaxation to Solve Systems of Equations Rigid Bodies Articulated Bodies Miscellaneous Conclusion Keep Yer Shirt On Introduction Stable Real-Time Cloth Modeling Real Fabrics Performance Order of Cloth Update Stages Conclusion, Results, and Future SKINNING Layered Skin Simulation Introduction Layered Deformation Architecture Smooth Skinning Anatomical Collisions Relaxalion Jiggle Conclusion Dynamic Secondary Skin Deformations Introduction The Interaction Model Neighborhood Interaction Volumetric Effects Final Remarks Index A Bibliography appears at the end of each chapter.
Elsevier eBooks, 2003
In no other problem area of interactive 3D animation are the often conflicting constraints on spa... more In no other problem area of interactive 3D animation are the often conflicting constraints on space and time so critical as in collision detection of complex environments. In environments composed of hundreds of objects, in which each object may again be composed of thousands of primitives, the number of pairwise primitive intersection tests that need to be performed can become huge. In this chapter, we will discuss spatial data structures for accelerating collision detection of complex environments.
A K Peters/CRC Press eBooks, Jul 23, 2010
In this final chapter we summarize the state of the art in 3D collision detection and present som... more In this final chapter we summarize the state of the art in 3D collision detection and present some pointers to new trends and interesting topics for future work.
Game Physics Engine Development, 2007
Now, we come to offer you the right catalogues of book to open. artificial intelligence for games... more Now, we come to offer you the right catalogues of book to open. artificial intelligence for games the morgan kaufmann series in interactive 3d technology is one of the literary work in this world in suitable to be reading material. That's not only this book gives reference, but also it will show you the amazing benefits of reading a book. Developing your countless minds is needed; moreover you are kind of people with great curiosity. So, the book is very appropriate for you.
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs ’ implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs ’ implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering ...
In this chapter we present a technique for rendering metaballs on state-of-the-art graphics proce... more In this chapter we present a technique for rendering metaballs on state-of-the-art graphics processors at interactive rates. Instead of employing the marching cubes algorithm to generate a list of polygons, our method samples the metaballs' implicit surface by constraining free-moving particles to this surface. Our goal is to visualize the metaballs as a smooth surface by rendering thousands of particles, with each particle covering a tiny surface area. To successfully apply this point-based technique on a GPU, we solve three basic problems. First, we need to evaluate the metaballs' implicit function and its gradient per rendered particle in order to constrain the particles to the surface. For this purpose, we devised a novel data structure for quickly evaluating the implicit functions in a fragment shader. Second, we need to spread the particles evenly across the surface. We present a fast method for performing a nearest-neighbors search on each particle that takes two rendering passes on a GPU. This method is used for computing the repulsion forces according to the method of smoothed particle hydrodynamics. Third, to further accelerate particle dispersion, we present a method for transferring particles from high-density areas to low-density areas on the surface.