particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · particle-based...

12
Particle-based forecast mechanism for continuous collision detection in deformable environments Thomas Jund LSIIT, UMR CNRS 7005 University of Strasbourg France [email protected] David Cazier LSIIT, UMR CNRS 7005 University of Strasbourg France [email protected] Jean-François Dufourd LSIIT, UMR CNRS 7005 University of Strasbourg France [email protected] ABSTRACT Collision detection in geometrically complex scenes is crucial in physical simulations and real time applications. Works based on spatial hierarchical structures have been proposed for years. If correct performances are obtained for static scenes, these approaches show some limitations when the complexity of the scene increases and particularly in case of deformable meshes. The main drawback is the time needed to update the spatial structures - often trees - when global deformations or topological changes occur in the scene. We propose a method to detect collisions in complex and de- formable environments with constant time amortized com- plexity for small displacements. Our method is based on a convex decomposition of the envi- ronment coupled with a forecast mechanism exploiting tem- poral coherence. We use the topological adjacencies and incidence relationships to reduce the number of geometrical tests. Deformations of the scenes are handled with no cost as far as no topological changes occur. Topological transforma- tions, like cuts and sewings, are handled locally, exploiting the spatial coherence and do not imply global updates. We illustrate our method in two experimental frameworks: a particles flow simulation and a meshless animation system both lying in a deformable mesh. We compare our work with classical optimization based on bounding volumes hi- erarchies to validate its efficiency on large scenes. 1. INTRODUCTION Continuous collision detection refers to the process of deter- mining if, during its movement an object is intersecting an- other one. This problem is time consuming and thus crucial in physical simulators and real time animations The colli- sion detection subsystem has to return precisely all collisions occurring between objects of the simulation or between an This research is supported by the french ANR project VORTISS and the european project PASSPORT. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. 2009 SIAM/ACM Joint Conference on Geometric and Physical Modeling (SPM 09), October 4-9, 2009, San Francisco, CA. Copyright 2009 ACM 978-1-60558-711-0/09/10$10.00. object and the boundary of its environment. It also has to provide a robust computation of the time and location of the collisions, as well as all their local geometric configura- tions (contact zones, impact points, friction conditions, etc.). This information is given back to the mechanical or physical subsystem that in turn computes the most reliable responses in terms of reaction forces and velocity that will generate the next movements. This kind of applications requires full in- teractivity, consistence and robustness. The time spent for the collision detection has therefore to be strongly bounded, to provide the best interactivity. A particular situation we address here is the case of the simulation of objects moving in a geometrically complex en- vironment. This comprises, for instance, the simulation of particles flow in 3D deformable meshes, and also the interac- tive displacement of a surgery tool in a 3D model of organs – like the movements of a catheter inside the body – or the simulations of angioscopies or endoscopies. More precisely, we focus on the collisions occurring between a set of particles and a volumetric mesh modelling its envi- ronment. This set of particles represents either the sampling of a fluid or the discretization of 3D objects in the context of meshless physical models. The environment is deformable – i.e. all its vertices move – and support topological trans- formations – like cuts, ligatures or tying involved in surgery simulations. In classical methods, the environment is modelled in a two levels approach. First, a fine level contains triangles defin- ing the geometry and used for the rendering. Secondly, a coarse level optimizes the collision detection usually taking the form of a set of spatially ordered bounding volumes. Our approach consists in keeping these two levels in a same volu- metric topological structure, avoiding the effort to maintain the coherence between the two levels even during topological changes. We assume that the refresh rate of the moving objects is high enough to consider linear displacements. Otherwise an interpolation of the trajectory should be used. We also as- sume that the moving object is discretized as a set of points or small spheres. This kind of assumption is widespread in the context of meshless physical models. Temporal coher- ence is the base of our algorithm. Thus the displacements are considered consistent and following continuous physical 147

Upload: others

Post on 05-Dec-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

Particle-based forecast mechanism for continuouscollision detection in deformable environments∗

Thomas JundLSIIT, UMR CNRS 7005University of Strasbourg

[email protected]

David CazierLSIIT, UMR CNRS 7005University of Strasbourg

[email protected]

Jean-François DufourdLSIIT, UMR CNRS 7005University of Strasbourg

[email protected]

ABSTRACTCollision detection in geometrically complex scenes is crucialin physical simulations and real time applications. Worksbased on spatial hierarchical structures have been proposedfor years. If correct performances are obtained for staticscenes, these approaches show some limitations when thecomplexity of the scene increases and particularly in case ofdeformable meshes. The main drawback is the time neededto update the spatial structures - often trees - when globaldeformations or topological changes occur in the scene. Wepropose a method to detect collisions in complex and de-formable environments with constant time amortized com-plexity for small displacements.

Our method is based on a convex decomposition of the envi-ronment coupled with a forecast mechanism exploiting tem-poral coherence. We use the topological adjacencies andincidence relationships to reduce the number of geometricaltests. Deformations of the scenes are handled with no cost asfar as no topological changes occur. Topological transforma-tions, like cuts and sewings, are handled locally, exploitingthe spatial coherence and do not imply global updates. Weillustrate our method in two experimental frameworks: aparticles flow simulation and a meshless animation systemboth lying in a deformable mesh. We compare our workwith classical optimization based on bounding volumes hi-erarchies to validate its efficiency on large scenes.

1. INTRODUCTIONContinuous collision detection refers to the process of deter-mining if, during its movement an object is intersecting an-other one. This problem is time consuming and thus crucialin physical simulators and real time animations The colli-sion detection subsystem has to return precisely all collisionsoccurring between objects of the simulation or between an

∗This research is supported by the french ANR projectVORTISS and the european project PASSPORT.

Permission to make digital or hard copies of all or part of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. To copy otherwise, orrepublish, to post on servers or to redistribute to lists, requires prior specificpermission and/or a fee. 2009 SIAM/ACM Joint Conference on Geometricand Physical Modeling (SPM 09), October 4-9, 2009, San Francisco, CA.Copyright 2009 ACM 978-1-60558-711-0/09/10$10.00.

object and the boundary of its environment. It also has toprovide a robust computation of the time and location ofthe collisions, as well as all their local geometric configura-tions (contact zones, impact points, friction conditions, etc.).This information is given back to the mechanical or physicalsubsystem that in turn computes the most reliable responsesin terms of reaction forces and velocity that will generate thenext movements. This kind of applications requires full in-teractivity, consistence and robustness. The time spent forthe collision detection has therefore to be strongly bounded,to provide the best interactivity.

A particular situation we address here is the case of thesimulation of objects moving in a geometrically complex en-vironment. This comprises, for instance, the simulation ofparticles flow in 3D deformable meshes, and also the interac-tive displacement of a surgery tool in a 3D model of organs– like the movements of a catheter inside the body – or thesimulations of angioscopies or endoscopies.

More precisely, we focus on the collisions occurring betweena set of particles and a volumetric mesh modelling its envi-ronment. This set of particles represents either the samplingof a fluid or the discretization of 3D objects in the contextof meshless physical models. The environment is deformable– i.e. all its vertices move – and support topological trans-formations – like cuts, ligatures or tying involved in surgerysimulations.

In classical methods, the environment is modelled in a twolevels approach. First, a fine level contains triangles defin-ing the geometry and used for the rendering. Secondly, acoarse level optimizes the collision detection usually takingthe form of a set of spatially ordered bounding volumes. Ourapproach consists in keeping these two levels in a same volu-metric topological structure, avoiding the effort to maintainthe coherence between the two levels even during topologicalchanges.

We assume that the refresh rate of the moving objects ishigh enough to consider linear displacements. Otherwise aninterpolation of the trajectory should be used. We also as-sume that the moving object is discretized as a set of pointsor small spheres. This kind of assumption is widespread inthe context of meshless physical models. Temporal coher-ence is the base of our algorithm. Thus the displacementsare considered consistent and following continuous physical

147

Page 2: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

laws (i.e. our method does not support chaotic moves andspeed).

Although 3D simulation is our main goal, we also presentthe 2-dimensional case to clarify the method. Our articleis decomposed as follows. In section 2 we outline some ofthe previous works in collision detection. In section 3, weintroduce the decomposition of the environment as a set ofconvex cells with neighbourhood relations. In sections 4 and5, we respectively present the forecast mechanism used inour collision detection algorithm in 2D and 3D respectively.In section 6, we explain how deformations and topologicalchanges are handled. In section 7, we present our imple-mentation, the statistical analysing of simulation data anda benchmark. We conclude in section 8.

2. RELATED WORKSWe discuss here some of the most representative methods incollision detection. This does not pretend to be a completestate of the art, and we refer the reader to [17, 24, 29, 31]for a deeper outline.

A widespread, tried and tested method consists in usingbounding volumes to lower the number of intersections tests.These tests, performed on simple polyhedrons, such as OBB[11] AABB [4] or k-dop [19], enable to sweep and prune thescene. The main drawback of these methods concerns theupdates of the bounding volumes when the objects and thescene are deformed. This updates are still a bottleneck insimulations of large scenes. A study of the AABB and OBBupdate times is given in [30].

Multiresolution approaches are interesting and widely usedin simulation. In [27], a CLODs – Contact Level of Details –system is described. It consists in considering that large con-tact areas can be described at a coarser resolution. Anotherconcept linked to the CLOD and introduced by Hubbard in[15] is the time-critical collision detection. Collision tests aremade at the finest possible resolution such that computationtime stays within fixed limits.

Another way to bring down the number of tested cells isprovided by Monte-Carlo approaches. Using a stochastic[13] or evolutionary algorithm [18] these methods only selectsamples of an object and use temporal coherence to makethem converge to couples of points minimizing the distancebetween two objects.

The closest feature algorithm has been introduced in the wellknown GJK and Lin-Canny algorithms [10, 23]. It works onconvex objects or objects with a convex decomposition butis not adapted to deformable complex environments as notopological transformations are supported.

The image-space approach, introduced in [16], has the ad-vantage to effectively handle deformable objects and dy-namic environments without the need of pre-processing. Thelimitation of this kind of method is the image-space resolu-tion needed for its effectiveness. That makes it not suitablefor applications requiring accurate collision detection.

Closer to the applications we are interested in, some worksfocus on objects moving in huge environments. This hap-

pens in endoscopies or angioscopies simulations [9, 21] (e.g.catheter and guide wire interactive manipulations). In theseapproaches the moving objects are usually modelled as dis-crete sets of points or segments depending on the accuracyrequired by the simulation.

The method in [21] is based on a tree of cells representingsections of the vessel. This is particularly well adapted tothe navigation in vascular models. But the approach is lim-ited to environments modelled as trees and does not supporttopological changes (like cutting, ligature or tying). Themethod also needs a second level of details to model theskin of the vessels.

The work of Geiger [9] is based on a tetrahedral decompo-sition of the mesh and uses temporal coherence. This algo-rithm supports non-tubular structures, but imposes restric-tions on the topological changes supported within interactivetime because of the costly updates of tetrahedrons. In [28]a hash function is used to map the tetrahedral subdivisionand handle deformable objects. Another drawback of thesemethods is that the tetrahedrons explicitly exist, leading toa very verbose data structure that is not adapted to largeand complex scenes.

Our method, similar to [9, 21], is more general and apply toenvironments that contain inner structures, are deformableand support changes in their topology. We also use tetra-hedrons as the base of geometrical tests but they are onlyimplicitly defined as shown further.

Although it is an important problem, self-collisions are notthe core of the current article, the user can refer to [12, 6]for an overview of some recent optimisation in this domain.

3. MODELING THE ENVIRONMENT3.1 Topological modelThe forecast mechanism we propose is based on a structuredsubdivision of the environment in which the collisions mayoccur. The movements of the considered objects stand in aspace that is partitioned in volumetric cells, whose bound-aries are decomposed in vertices edges and facets. Manydata structures exist in the computer graphics community torepresent such cells with their adjacency relations [2], amongwhich we choose combinatorial maps that are a formaliza-tion of all these concrete data structures [22]. The interest ofsuch topological data structure in computational geometryhas been illustrated in many papers [7, 8, 3] and in the caseof multiresolution meshes [20] for visualization or accuracyadaptability.

Combinatorial maps also present a formal and mathematicaldefinition that allows us to address the robustness problems.Similar topological models have already been used in physi-cal simulation to treat specific operations such as gluing andcutting [1, 25].

A map of dimension n is a finite set of darts (sometimescalled half-edges) equipped with n adjacency relations de-noted φ1, . . . , φn. Relation φi sews darts together to form(i − 1)-cells. Precisely φ1 is a permutation and φ2, . . . , φn

are involutions. Integrity constraints specify that φi ◦φj areinvolutions for i ≥ 1 and j > i + 1. This ensures that the

148

Page 3: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

Figure 1: Details of a 2-map. A cycle of darts forms

a face. Adjacent faces are sewn by φ2. These φ2

relations are drawn as yellow quads.

built subdivisions represent well-formed partitions of closedn-dimensional pseudo manifolds [22].

In more concrete terms, dart x is said i-sewn to dart y whenφi(x) = y. Darts are φ1-sewn to form cycles of orientededges, i.e. faces. When two darts are φ2-sewn, their twofaces are sewn along the two oriented edges x and y. A2-map models a partition of an oriented surface.

Figure 1 shows the details of a 2-map containing 4 faces.Dart x represents an oriented edge. Dart φ1(x) is the dartthat follows x in its face. Dart x also represents the face itbelongs to (as φ1(x), φ1(φ1(x)) and so long). Dart φ2(x) isthe dart in front of x in the adjacent face. By definition,α1(x) is φ1 ◦ φ2(x) and is the dart following x in the vertexof x.

Figure 2: An exploded view of the 3-map containing

two φ3-sewn cubes: yellow narrow quads symbolize

φ2 links; red broad quads represent a φ3 link.

A set of φ2-sewn faces forms an oriented closed surface anddefines a 3-cell, i.e. an oriented volume. Such volumes areφ3-sewn to build convex spatial subdivisions (figure 2). Theconstraint specifying that φ1 ◦ φ3 is an involution impliesthat volumes are sewn along whole faces.

3.2 Geometrical constraintsThe environment is subdivided into convex cells. In dimen-sion 2, it consists of a partition of the plane in convex poly-gons (see figure 3a). In dimension 3, the scene consists ofa set of φ3-sewn convex polyhedrons whose faces are con-vex (figure 4). We also assume there are no null edges ordegenerated faces in the convex decomposition.

The convexity constraint is widespread in the domain, it al-lows testing the inclusion of a point in a cell with simplepoint/face orientation tests. It is also common to limit themodel to triangles and tetrahedrons to simplify the com-putations. Our method works for any convex polyhedraldecomposition.

Figure 3: A 2D environment subdivided in convex

polygons. White faces are free, grey faces are un-

reachable.

The animated objects or particles flows move freely in a setof free cells. Cells that are outside the environment or rep-resent inside obstacles are unreachable. Markers, associatedto the darts, are used to identify these areas (figure 3b).

Figure 4: A polyhedral network.

The outside face or volume is never convex. To avoid theneed to handle special cases we add virtual edges and facesto simulate the convexity of the outside cells. That makesthe unreachable area convex (figure 3b illustrates this ideain dimension 2). In dimension 3, a convex decompositionof a larger volume that encompasses the whole scene andits outside is used to ensure the convexity of the traversedregions.

4. 2D NAVIGATIONThe collision detection consists in determining if an objectenters any of the unreachable cells when moving from a po-sition pt to a position pt+1, we also want to give informationabout the location of the first collision and the dimension ofthe cell it is colliding with (i.e. a face, an edge or a vertex).A naive method is to test all possible intersections between[pt, pt+1] and the edges of the unreachable cells. With thedecomposition of the scene in convex cells, things are easier.Assuming we know what cell contains pt, then we test if theobject stays in its cell or not. In the first case no collision isfound. In the second case the algorithm go on with the newcell until the cell containing pt+1 is reached while checkingthe reachability.

The second idea is to assume that the edge an object aimedat is known. In this case, a single intersection test is neededto find if the object stays in the cell or goes through its

149

Page 4: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

Figure 5: Upper-left: a particle moves in a 2D en-

vironment. Bottom: the decomposition of the envi-

ronment and of the displacement.

boundary. Our forecast mechanism consists in the predic-tion of the edge each particle is moving toward. When thedisplacement follows a regular trajectory, this edge rarelychanges. We present an algorithm that follows the changesin trajectory with the least tests as possible, using temporalcoherence and the convexity of the cells.

4.1 OverviewAt time t, the animated object is at position pt, belongingto the kind of cell kt (the possible value for kt is face, edgeor vertex) and going toward the dart it inside the currentcell. At time t+1, pt moved toward point pt+1 along a lineartrajectory (or assumed so). In the following, we denote St

the 3-tuple (pt, kt, it) representing the current state of theparticle. We note S0

t = (p0t , i

0t , k

0t ) the 3-tuple at the be-

ginning of the displacement, initialized with St value. Ouralgorithm consists in searching the final Sn

t prediction whichcorresponds to St+1. To go through one cell to the adjacentone, we locate the dart of the current cell which is cut bythe half-line [pt, pt+1) denoted ∆ in the following. This dartlocalizes a possible collision.

In order to find St+1, lot of cells can be traversed (includingedges and vertices). When this happens, intermediate statesS

jt are computed until the final 3-tuple Sn

t is found (figure6). In other words, the movement is decomposed followingthe subdivision of the environment.

In state Sjt = (pj

t , ijt , k

jt ) either St+1 is found, a collision oc-

curred, or the state changed. The first case happens whenpt+1 lies in the interval defined by current k

jt and i

jt . The sec-

ond case arises when an unreachable area would be entered.The third case happens when k

jt or i

jt do not correspond to

the new position. In this case the algorithm goes on in thiscell with a new intermediate S

j+1

t state.

Figure 6: Zoom on the decomposition of the move-

ment along the traversed cells.

In general, the movements are small enough to insure onlyfew edge changes in a time step. But our method supportsthe general case where any number of cells can be traversedduring a single move. The size of this sequence of cells isdiscussed further in section 7.

4.2 Forecast mechanismThe prediction mechanism starts from the current state ofthe object and looks for the next state in two steps: anorientation loop, to find the dart the object aims at, and adisplacement toward this dart. We denote d1 and d2 the twovertices of the aimed at edge. As said before, the algorithmstarts from current state St and changes this state until St+1

is obtained. To make the reading easier, we simplify thenotations and write S

jt = (p, i, k) in place of (pj

t , ijt , k

jt ) where

no ambiguity occurs. Three cases arise depending on thecurrent value of k.

When k indicates a face, the orientation step consists inturning around the face, following the φ1 topological rela-tion, until the edge cut by ∆ is reached (figure 7). Simpleorientation tests are performed until pt+1 lies on the rightside of [p, d2) and on the left side of [p, d1). To minimizethe number of geometrical tests, the first orientation deter-mines if the φ1 relation (counter clockwise) or its inverseφ−1

1 (clockwise) is used. Formally while the final interval isnot reached, i is replaced by φ1(i) or φ−1

1 (i). As the sourcepoint p is inside the face and this face is closed a solutionexists, the faces being convex this solution is unique.

150

Page 5: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

Figure 7: Orientation in face state: looking for the

edge i such that ∆ is included in the angle d1pd2.

The displacement step consists in checking if an intersectionexists between [pt, pt+1] and i. This simply implies to testif pt+1 lies before, after or on the edge i. In the first case,no intersection occurs and the current state is returned. Inthe two last, p is set to the intersection between ∆ and i,the current state is set as edge and i is replaced by φ2(i),i.e. the opposite dart of the edge (figure 8). This makes thealgorithm going on with the adjacent face.

Figure 8: Displacement in face state: testing if pt+1

goes across edge i during the move.

When k indicates an edge state, the object is either goingacross the edge or sliding along it. A single point/edge ori-entation test reports if pt+1 moves to a face or on the linesupporting edge i. In the first case, the face is checked. If i

is free the algorithm goes on with the adjacent face, else acollision is returned. In this second case, pt+1 is compared tod1 and d2. If pt+1 belongs to the interval ]d1, d2[ the move iscorrect and the final state is reached. Otherwise the objectis moved to d1 or d2, the state k is set to vertex and i is setto the first dart of the corresponding vertex, either φ1(i) orφ1(φ2(i)).

When k indicates a vertex state, the object will fall into aface or follow an edge (or stay on the vertex if the move isvery small to insure the robustness despite numerical pre-cision limitation). This is the dual of the face state. Ori-entation tests are done to turn around the vertex until thefinal interval is reached. The intervals are here defined bythe angles formed by the edges incident to the vertex (figure9). As in the face state, the vertex is traversed clockwiseor counter clockwise, following the α1 relation or its inverse,depending on the first orientation test.

The strong topological structure we use, allows us to jumpfrom faces to edges, vertices and adjacent faces in optimal

Figure 9: Orientation in vertex state: the edge i that

defines the angle containing ∆ should be found.

constant time. We only need to store the dart representingthe cell containing the particle. The chosen dart of this cell isfurther used as the starting point of the forecast mechanismof the next movement.

5. 3D NAVIGATIONThe 3D navigation follows the same principle. The changesmainly concern the number of possible cases to check. Wedecompose the problem in four kinds of cells and states:volume, face, edge and vertex. At each time step, we stillsearch the dart it+1 from the previous state. The forecastmechanism in dimension 2 mainly used intervals defined bytriangles. In dimension 3 these intervals are replaced byforecast tetrahedrons.

5.1 Volume predictionWhen the moving object is in a volume, the prediction con-sists in finding the tetrahedron formed by: the current dart,the point p and a point on a face we call sp which is a pointon the face the current dart it aimed at (figure 10).

Figure 10: Orientation in volumes: p is the source

point, ∆ is the direction of the displacement, sp and

[d1; d2] are respectively a point and an edge of the

face the particle aims at.

During the orientation step, the tetrahedron containing ∆ islooked for. It is found when pt+1 is included in the dihedralangle formed by the planes (p, sp, d2) and (p, sp, d1). While∆ does not lie within this angle, we turn around the facefollowing the φ1-links or φ−1

1 -links as in 2D.

In dimension 3, pt+1 may also lies above the plane (p, d1, d2).In this case we jump to the tetrahedron lying above thisplane, setting i to φ2(i), i.e. to its adjacent face in the

151

Page 6: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

volume, and go on the orientation loop on this face. Pointsp and sp must be respectively inside the tested volume andon the tested face while searching the tetrahedron to coverthe entire space. When a jump to an adjacent face occurs,a new arbitrarily point sp is computed inside the new faceto fulfil this constraint. That is done by taking the middlepoint of the first diagonal correctly defined (by three nonaligned vertices of the face) or the barycentre of the face fortriangular faces.

When the final tetrahedron is found, the segment [pt, pt+1]is tested against the face at the base of the tetrahedron. Ifan intersection occurs, k enters the face state and the pointp is moved to the intersection point. Otherwise no collisionoccurs and the current state is returned.

5.2 Face predictionWhen the object lies in a face, the 2D algorithm is used.Points/planes orientation tests are used. The lines are re-placed by the planes defined by point p, the d1 and d2 ver-tices, and the translation of p along the normal of the face.

Figure 11: Orientation in faces: First pt+1 is tested

against the plane of the face. Secondly, the correct

angular area is searched for turning around the face.

The face prediction is similar to the 2D one, excepted forone particularity: pt+1 can leave the face by going up ordown (figure 11). In these cases, the volume where pt+1 isgoing to is checked and a collision is reported if it is notreachable. Otherwise the algorithm goes on with a volumestate. For this, the dart i and the point sp are both placedon the first adjacent face that is not coplanar with the onewe come from – to avoid the building of a flat tetrahedron.

5.3 Edge predictionWhen the object lies on an edge, an adapted version of thevertex orientation case in dimension 2 is used. The inter-val (defined by two faces) where the line ∆ lies is searched(figure 12). Once the interval is found, we check if pt+1 issliding on the edge, or going into an adjacent volume or face.If the point stays on the edge, we also check whether pt+1

lies between ]d1, d2[ or reaches a vertex. After this test, weeither report that the point is on the edge or continue theprediction in the suitable cell.

Figure 12: Orientation in edge: one turns around

the edge searching the volume delimited by 2 adja-

cent faces containing ∆.

5.4 Vertex predictionThe vertex orientation case is the dual of the volume one.Point sp is no more defined on a face, but chosen inside theangular area covered by the volume from the vertex view(figure 13). One looks for the tetrahedron defined by thevertex p is on, the edge i (incident to the vertex) and sp

that contains ∆. The algorithm makes i turn around theaxe defined by p and sp following the φ2 ◦ φ1 relation (orφ2 ◦ φ−1

1 its inverse). Whenever pt+1 is above the planedefined by p, sp and i, we jump to the adjacent volume byreplacing i with φ3(i). At the end of the orientation test,the good tetrahedron is found, the algorithm goes on in thereached edge, face or volume. The aimed at cell is eitherfree or a collision is reported.

Figure 13: Orientation in vertex: one turns around

an umbrella decomposed in angular sections.

6. DEFORMING THE ENVIRONMENTIn this section we present how our method deals with trans-formations of the 3D mesh that models the environment.We begin with the case of a geometrical transformation thatpreserves the topology and the convexity of the cells. In asecond time, we address the handling of topological trans-formation and local remeshing to recover the convexity.

Let us notice here that in the cases of simplicial meshes–i.e. when the environment is composed of triangles andtetrahedrons–, a correct deformation always preserves theconvexity. This approach is chosen in case of strong deforma-tions. We show thereafter that our method efficiently handledeformations in usual cases, even for arbitrary meshes.

152

Page 7: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

6.1 Geometrical deformationsWhen a particle is moving in a deformable mesh, we decom-pose each time step of the animation in two displacements.First we consider the displacement of the particle, from pt topt+1, in a static environment. This gives us the predictiondart as previously explains.

Secondly, we move the vertices of the mesh, while keepingthe moving objects in a fixed position. Then, we check ifthe previous prediction is still valid. Two cases arise (figure14).

Figure 14: Local update to handle deformations.

• Case 1: pt still lie in the current cell, the forecast isstill valid or will be corrected with the next orientationstep.

• Case 2: pt lies no more in the predicted cell. Thisarises when the cell boundary moves over pt. In thiscase, in order to find the new cell pt+1 belong to, wesimulate a displacement from a point pm somewhere inthe previous cell to the point pt+1. This reinitializespt and pt+1 with sound values. The pm point doesnot have to be the barycentre of the cell, any pointcontained in the cell is suitable for the algorithm.

In practice checking if the first case apply requires testingif pt is still in the correct cell. If this information can bededuced from the mechanical simulation (e.g. when the de-formation is caused by an interaction tool) these case canbe considered. Otherwise, this test requires n orientationtests (one for each faces of the cell). One better has to ap-ply directly the second case which only requires one or twoadditional orientation tests in average. We use this strategyin the examples shown in section 7.

6.2 Topological deformationsThanks to our topological structure, changes in the subdivi-sions are fully supported. We consider three kind of topolog-ical operations: sewing, simplifying or cutting cells (figure

15). Thanks to our algorithm, only the particles lying insidea cell which topology is modified need a potential update.

Figure 15: Handling topological changes.

Sewing. : when the cell containing pt is sewn to anotherone, the predicted darts do not change. Thus nothing is tobe done, the adjacent cell is automatically used for the nextstep of the algorithm.

Simplifying. : this consists in removing a cell of dimension(n − 1) between two n-dimensional cells (i.e. removing anedge between two faces, or a face between two volumes).When pt belongs to a cell about to be simplified two casesarise:

• the darts of the removed (n − 1)-cell are not part of aprediction, then nothing has to be done (e.g. pt aimsat an edge or face that is not removed);

• a particle is aiming at one of the suppressed darts. Inthis case, we replace this dart by an adjacent dart inthe current cell (and update the point sp in the 3Dcase). A new orientation step will correct the forecastdart.

Cutting. : this consists in adding a cell of dimension (n−1)between two n-dimensional cells (e.g. adding a face inside avolume). That leads to three cases:

• pt and pt+1 are on both sides of the added cell, we takea dart from the (n − 1)-cell and do a new orientationstep to correct the prediction.

• pt and pt+1 are on the same side of the (n−1)-cell andthe prediction is still correct, nothing has to be done.

153

Page 8: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

Figure 16: Particles in a deformable mesh.

• pt and pt+1 are on the same side of the (n − 1)-celland the aimed dart lies on the other side (i.e. belongsto the adjacent cell), we take a dart from the newlyadded (n − 1)-cell.

To sum up, handling topological changes only requires re-placing some of the predicted darts with adjacent darts andpossibly going on a new orientation step. The presentedtopological operations allow us to handle cuts, tying andligatures. Obviously other topological operations and de-formations schemes can be treated similarly with only localupdates.

6.3 Convexity constraintIf during a deformation the convexity constraint of the meshis lost for some cells, a local remeshing of the concernedcells and their neighbourhoods is done. The principles ex-posed above concerning topological changes are simply usedhere to ensure the forecast data is valid after this topologi-cal remeshing. Usually the remeshing involves merging thenon-convex cells with their neighbours and possible decom-positions (few cuts) of the larger generated cell.

The self-collisions of the environment is detected during theconvexity check. Indeed in a convex decomposition a self-collision can only occurs when the move of a vertex leadsto a degenerated cell (i.e. a flat convex polyhedron). Ourmodel allows to soundly and efficiently computed the loca-tion and configuration of these self-collisions. Depending onthe simulation, a local remeshing may be done and somephysical constraints may be send to the mechanical subsys-tem to handle the collision.

7. IMPLEMENTATIONWe present here our implementation and tests with two ex-perimental frameworks: a particles system and a meshlessanimation system. We give some theoretical and practicalperformance analysis in different configurations. We alsocompare our work with a classical optimization based on abounding volumes hierarchy.

7.1 Theoretical complexityWe evaluate here the complexity of our approach for onestep of a single particle. In this case the time cost of collisiondetection can be estimated as the number of orientation testsneeded to find the prediction dart it and to move toward it.This number is highly dependent on the size and direction of

the movement and related to the stabbing number [14] thatdenotes the maximum number of cells met by a ray beforeencountering an obstacle.

Without any special consideration on the animation, thetime complexity of the orientation step is in O(n) wheren is the number of edges in the scene. Indeed a particlecould traverse all the faces of the scene during one timestep. Fortunately in physical simulations that use standardintegration schemes this cannot happen as limitations areplaced on the size of the time step to achieve good numericalevaluation. Without loss of generality we can assume thata single movement cannot be greater than the average sizeof the cells or edges of the mesh. We will also assume thatthe convex decomposition of the scene is smooth enough,i.e. that there is small differences in percentage between thesmallest and the widest cells.

With such assumption, during one time step a particle canonly traverse the faces and edges bounding a 3D cell or thefaces and volumes incident to an edge or the edges, faces andvolumes incident to a vertex. If we denote deg(it) the degreeof the cells of dart it in the current state of the particle, thenthe number of orientation tests needed to find it+1 is withinO(deg(it)). In others words the number of visited darts isproportional to the number of cells adjacent to the currentcell what is a local length.

Considering the whole 3D mesh, we can state that this num-ber is bounded by the maximal degree of its cells. Thatleads to a constant time complexity of our algorithm. Forinstance, if the scene is decomposed in hexahedral cells, eachcell contains 6 faces that are made of 4 darts (or half-edges).This gives 24 for the degree of the volumes. If a maximum of8 hexahedrons are incident to a vertex (with 3 faces incidentto the vertex for each hexahedron) that leads to a degree of24 for the vertices.

Finally the total complexity for the collision detection frame-work, tracking p particles moving in a mesh M of size n isin O(maxDegree(M).p) and independent of n. We show inthe next section that a statistical study of simulation datagives a smaller size for the constant and that we obtain inpractice time consumption in O(7.p).

Concerning the updates of the forecast mechanism when themesh is deformed or its topology modified, we shown thatonly local updates are needed and only one further orienta-

154

Page 9: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

tion step is need for each particle. This does not increase theglobal complexity of the algorithm. In practice, the numberof test during this update is negligible.

In classical approach each particle or trajectory is testedwith a hierarchy of bounding boxes that gives a complex-ity in O(6.p.log(n)). Indeed, testing intersection with abounding box asks for (usually) 6 orientation tests. The treethat contains all bounding volumes modelling the scene is ofsize n and a query on this tree implies testing about log(n)bounding boxes. Concerning the updates after a deforma-tion of the mesh, they ask for about m.log(n) operationswhere m is the number of deformed cells (i.e. the numberof leaves that have to be updated in a tree of size n).

This theoritical analyse shows that our method as a lowcomplexity compared to the wide and spread BVH methods.Of course, if the temporal coherence is low or if particlescross many cells while moving, a BVH method can be moreperformant.

7.2 Statistical analysis of simulation dataWe simulate a flow of particles in movement under gravityin a subdivided environment. The environment is then ro-tated to keep the particles moving. For this simulation weconsider a set of 5x5x28 hexahedrons, the external layer ofcubes are marked as unreachable. Figure 16 shows a cine-matic illustration of our first case study. The mesh is highlydeformed during the simulation.

For this statistical study, we count the number of changes inthe state of each particle during the forecast mechanism, i.e.the number of orientation tests in the former called orienta-tion step. We make these measurements for different kindsof simulation: a static hexahedral mesh, the same mesh de-formed and a mesh modelling a vascular network.

Figure 17: Number of rotations on a face and

changes of faces due to the prediction for 1000 parti-

cles with gravity in a moving mesh during 1000 time

steps.

As shown in figure 17, most of the time no changes to theprediction is required. It also shows that worst case com-plexity happens only occasionally. In practice, the numberof orientation tests stay within low bounds.

Figure 18: Particles in a vascular network mesh.

Figure 19: Number of rotations on a face and

changes of faces due to the prediction for 1000 par-

ticles with gravity in the blood vessel mesh during

1000 time steps.

Out of 1,000,000 of iterations, the experimental results show,for the static mesh, an average of 6.75 orientations tests perparticle. In 33% of the cases the prediction is still valid andneed only 4 tests to be confirmed (one test for each face ofthe forecast tetrahedron). In 31% of the cases updating theprediction involves only one shift to an adjacent edge andthus one more test. The other cases need two or more shiftsor topological jumps but rarely occur.

As we can see on figure 17, even when all the cells of the meshare deformed (figure 16), the mean number of orientationtests needed is of approximately 6.85. This shows that theextra tests needed for the update of the forecast data duringdeformation is very small. Globally, in this example, theoverhead is of 0.1 extra tests for a particle. This means thatonly one particle over 10 needs an update of its local forecastdata.

The figure 19 shows the same results for 1,000,000 iterationsin the mesh of figure 18. The mean number of orientation

155

Page 10: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

tests is 4.27 and significantly smaller. That shows that theglobal complexity of the scene does not involves loss of effi-ciency. In fact the local geometrical configurations of cells inthis example are simpler compared to the first one. The sizeof the inner volume may also influence the performances.More case analysis are needed to completely understand therelation between performances and the complexity of themeshes.

7.3 Collision between particlesThe forecast mechanism has been easily upgraded to han-dle self collision between particles. Each volume is markedwith an identifier, which enables us to manage a list of par-ticles contained in each volume. In this list, we can checkthe presence or the absence of collision between the par-ticles in a complexity in O(n2) where n is the number ofparticles within the volume. An adaptive algorithm couldbe implemented that subdivides a volumetric cell wheneverthe number of particles it contained becomes greater thana given threshold. We show in section 6.2 that this can beachieved only using local updates. Conversely two 3D-cellsmay be merged when they contain few particles and if theirsizes are kept under a given bound.

7.4 Meshless animationWe implement a physical simulation scheme derived fromthe meshless approach described in [26]. We simulate soliddeformable object as a set of particles without connectivityinformation (figure 20). Our method, as the one presentedin the article, is based on the computation of the minimaloptimal linear transformation between a rest shape and adeformed state defined as a point cloud. We add a Runge-Kutta 4th order interpolation to integrate the forces andreactions with fewer discontinuities.

Figure 20: A barrel sampled with particles for a

meshless animation.

When collisions occur, our forecast mechanism returns pre-cise topological and geometrical information about the im-pact or contact points. The computed reaction or frictionforces fully take into account the normals of all faces involvedin the collision. The forces are consequently computed withless approximation, by considering all the normals formingan edge or a vertex. This is particularly true for objectssliding along edges.

We do the physical simulation in two passes. In the first

one, the velocity and position of each particle are updatedusing an RK4 interpolation. The external forces applied toa particle are computed depending on the type of cell andcollision state returned by the forecast mechanism:

• the particle is in volume state: only the gravity applies

• the partition is in a face state and bounces (the pre-vious state was not in this face): The face normal isused to compute the reaction force

• the partition is in a face state and slide (the previ-ous state was this face): The face normal is used tocompute friction forces

• the partition is in an edge or vertex state (bouncingor sliding): The same computations are done for eachincident face. The resulting forces are then summed.

After all particles moved according to these parameters, thesecond pass begins. It first computes the minimal optimallinear transformation (by minimizing the error given in equa-tion 1) using the covariance matrix and a singular value de-composition. Then each particle is pulled toward the restingshape.

ε(R, t) =

NX

i=1

‖pit − (Rp

i0 + t)‖ (1)

In equation 1, pit is one of the particles from the set of N

particles used to sample the object and pi0 is the same parti-

cle when the object is in its resting shape. We compute therotation R and the translation t that minimize the error.

When the particles are pulled toward their resting shape,collision detection is performed. When a collision occurs,the involved particle is moved to the collision point and thefirst pass is applied again. This integration loop is iterateduntil the time step is consumed or the particle moves nomore (because its reaches a stable position in a corner forinstance).

The physic system we used here is somehow limited, but ourgoal was only to validate the collision detection system withsolid objects. More accurate physical modelling should beused to obtain a sound and precise mechanical simulation.

Figure 21: Missed collisions.

156

Page 11: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

In some configurations, with the meshless animation, it ispossible that parts of edges or faces go through an unreach-able zone (figure 21). We will have to consider respectivelyedges and faces in our forecast mechanism to solve theseproblems. We plan to check the covered area of the edgesand the faces during their displacement depending on thevolumetric subdivision of the environment to be able to trackcollisions between edges and facets and the environment.

7.5 Comparison with hierarchical methodsThe proposed algorithm has been implemented on a PC witha 2.4GHz Intel Core2 CPU and 2GB memory. Only one corehas been used for the simulation.

7.5.1 ExperimentThe benchmark consists in comparing our algorithm with anAABB bounding volume hierarchy (BVH). The implemen-tation of the AABB BVH is taken from the Bullet physiclibrary, the library used for Blender physical simulation. Wesimulated 1000 particles during 1000 time steps with tempo-ral coherence with varying complexity. The particles are allinitialized at a random position and fall under gravity. Theenvironment is made of n volumetric hexahedron, we mod-ify the number of hexahedrons to increase the complexity,as shown in figure 22.

Figure 22: Building meshes of size n for the bench-

mark.

The BVH is used to optimize the tests for segment/trianglesintersections in the same scene. The segments correspondto the start and end points of a particle move. The time ofthe physical responses is ignored in both simulations.

7.5.2 Performance analysisFigure 23 shows the numerical results. Our method spendsless time for the collision detection tests. The differencesare explained by the fact that the AABB BVH does not usetemporal coherence. A more significant point concerns theforms of the two curves. The complexity of our method iskept constant while the complexity of the scene increases.With exactly the same parameters, the AABB BVH algo-rithm shows log(n) variation.

8. CONCLUSIONIn this paper we present a forecast mechanism for collisiondetection between a set of particles and a deformable en-vironment modelled as a convex space subdivision. We il-lustrate our method with three kinds of simulation. First,we present the school case of a flow of particles moving ina heavily deformed hexagonal mesh. It allows us to make

Figure 23: Computation time for the collision detec-

tion in function of the complexity of the scene for

1000 particles during 1000 time steps.

statistical measurements that demonstrate the efficiency ofour approach.

Secondly, we present a flow of particles moving in a vascularnetwork. We plan to further extend this example to simulateendoscopies or the move of a catheter (sampled as a setof points) inside the body. In this context, the ability ofour method to naturally and efficiently support topologicalchanges will allow us to simulate surgery operations like cuts,ligatures or tying. We plan to insert this work in a generalframework dedicated to surgery simulations [5].

Thirdly, we present the collision detections for solid objectsin movement within a deformable environment. The solidsare sampled as sets of particles animated using a meshlessapproach for mechanical simulations. Not detecting collisionbetween moving segments or facets is a known limitation.This simplification is a choice we made to achieve real timecollision detection in huge deformable environments for tensof thousand particles. In reasonably smooth environmentswith sufficiently sampled objects the errors the are made areacceptable for interactive simulation. This limitation can bean issue for precise mechanical simulation as used in CAD.

Another limitation appears when a large number of parti-cles concentrate in few volumes. The adaptive subdivisionwe present in section 7.3 may generate a large amount ofcells. That may break the amortization argument we useto bound the overall time complexity. How to deal with alarge number of colliding objects with our method is still anopen question. So far, the global approach that uses spatialhierarchies can more simply handle this kind of tight prob-lems. More statistical studies have to be done to measurethe impact of these subdivisions on the overall effectivenessof our approach.

Finally, our forecast mechanism is limited to sets of particles.This way the collision detection is only supported for mesh-less mechanic simulation. We plan to extend our forecastmethod to edges and small facets so that truly solid con-tinuous collision detections can be achieved with the sameefficiency.

157

Page 12: Particle-based forecast mechanism for continuous collision … · 2013. 9. 27. · Particle-based forecast mechanism for continuous collision detection in deformable environments∗

9. REFERENCES[1] D. Bielser, P. Glardon, M. Teschner, and M. Gross. A

state machine for real-time cutting of tetrahedralmeshes. 11th Pacific Conference on ComputerGraphics and Applications, pages 377–386, 2003.

[2] E. Brisson. Representing geometry structures in d

dimensions : Topology and order. Discrete &Computational Geometry, pages 387–426, 1993.

[3] D. Cazier and J. Dufourd. A formal specification ofgeometric refinements. Visual Computer, 15:279–301,1999.

[4] J. D. Cohen, M. C. Lin, D. Manocha, andM. Ponamgi. I-collide: an interactive and exactcollision detection system for large-scale environments.In Proc. of the symposium on Interactive 3D graphics,pages 189–ff., 1995.

[5] S. Cotin, P. Neumann, X. Wu, S. Fonteneau,P. Bensoussan, J. Dequidt, D. Marchal, L. Grisoni,and S. Karpf. Collaborative development of an openframework for medical simulation. In MICCAIOpen-Source Workshop, 2005.

[6] S. Curtis, R. Tamstorf, and D. Manocha. Fast collisiondetection for deformable models usingrepresentative-triangles. In Proc. of the symposium onInteractive 3D graphics and games, pages 61–69.ACM, 2008.

[7] H. Edelsbrunner and L. Guibas. Topologicallysweeping an arrangement. In Proc. of the 18th ACMSymposium on the Theory of Computing (Berkeley),pages 389–403, 1986.

[8] M. Gangnet, J.-C. Herve, T. Pudet, and J.-M. V.Thong. Incremental computation of planar maps. InProc. of ACM-SIGGRAPH Conf. on ComputerGraphics, volume 23, pages 345–354, 1989.

[9] B. Geiger. Real-time collision detection and responsefor complex environments. In Proc. of theInternational Conference on Computer Graphics,pages 105–113. IEEE Computer Society, 2000.

[10] E. Gilbert, D. Johnson, and S. Keerthi. A fastprocedure for computing the distance betweencomplex objects in three-dimensional space. IEEEJournal of Robotics and Automation, 4(2):193–203,1988.

[11] S. Gottschalk, M. C. Lin, and D. Manocha. Obbtree:a hierarchical structure for rapid interferencedetection. In Proc. of the 23rd annual conference onComputer graphics and interactive techniques, pages171–180, 1996.

[12] N. K. Govindaraju, D. Knott, N. Jain, I. Kabul,R. Tamstorf, R. Gayle, M. C. Lin, and D. Manocha.Interactive collision detection between deformablemodels using chromatic decomposition. ACM Trans.Graph., 24(3):991–999, 2005.

[13] S. Guy and G. Debunne. Monte-carlo collisiondetection. Technical Report RR-5136, INRIA, 2004.

[14] M. Held, J. T. Klosowski, and J. S. B. Mitchell.Evaluation of collision detection methods for virtualreality fly-throughs. In In Canadian Conference onComputational Geometry, pages 205–210, 1995.

[15] P. M. Hubbard. Collision detection for interactivegraphics applications. IEEE Trans. on Visualizationand Computer Graphics, 1(3):218–230, 1995.

[16] H. Jang and J. Han. Fast collision detection using thea-buffer. Vis. Comput., 24(7):659–667, 2008.

[17] P. Jimenez, F. Thomas, and C. Torras. 3D CollisionDetection: A Survey. Computers and Graphics,25(2):269–285, 2001.

[18] L. Joussemet, A. Crosnier, and C. Andriot. Espions:A novel algorithm based on evolution strategy for fastcollision detection. In EuroHaptics, pages 159–167,2006.

[19] J. T. Klosowski, M. Held, J. S. Mitchell, H. Sowizral,and K. Zikan. Efficient collision detection usingbounding volume hierarchies of k-DOPs. IEEETransactions on Visualization and ComputerGraphics, 4(1):21–36, 1998.

[20] P. Kraemer, D. Cazier, and D. Bechmann. Extensionof half-edges for the representation of multiresolutionsubdivision surfaces. The Visual Computer,25(2):149–163, 2009.

[21] J. Lenoir, S. Cotin, C. Duriez, and P. F. Neumann.Interactive physically-based simulation of catheter andguidewire. Computers & Graphics, 30(3):416–422,2006.

[22] P. Lienhardt. Topological models for boundaryrepresentation: a comparison with n-dimensionalgeneralized maps. Comput. Aided Des., 23(1):59–82,1991.

[23] M. Lin and J. Canny. A fast algorithm for incrementaldistance calculation. Proc. of the IEEE InternationalConference on Robotics and Automation Proceedings,2:1008–1014, 1991.

[24] M. C. Lin and D. Manocha. Handbook of Discrete andComputational Geometry, chapter 35 - Collision andproximity queries. CRC Press, 2004.

[25] A. Lindblad and G. Turkiyyah. A physically-basedframework for real-time haptic cutting and interactionwith 3d continuum models. In Proc. of the ACMsymposium on Solid and physical modeling, pages421–429, 2007.

[26] M. Muller, B. Heidelberger, M. Teschner, andM. Gross. Meshless deformations based on shapematching. ACM Trans. Graph., 24(3):471–478, 2005.

[27] M. A. Otaduy and M. C. Lin. Clods: dual hierarchiesfor multiresolution collision detection. In Proc. of theEurographics/ACM SIGGRAPH symposium onGeometry processing, pages 94–101, 2003.

[28] M. Teschner, B. Heidelberger, M. Muller,D. Pomeranerts, and M. Gross. Optimized spatialhashing for collision detection of deformable objects.In Vision, Modeling, Visualization, pages 47–54, 2003.

[29] M. Teschner, S. Kimmerle, G. Zachmann,B. Heidelberger, L. Raghupathi, A. Fuhrmann, M.-P.Cani, F. Faure, N. Magnetat-Thalmann, andW. Strasser. Collision detection for deformableobjects. In Eurographics State-of-the-Art Report, pages119–139, 2004.

[30] G. van den Bergen. Efficient collision detection ofcomplex deformable models using aabb trees. J.Graph. Tools, 2(4):1–13, 1997.

[31] I. Wald, W. R. Mark, J. Gunther, S. Boulos, T. Ize,W. Hunt, S. G. Parker, and P. Shirley. State of the artin ray tracing animated scenes. In EurographicsState-of-the-Art Report, pages 89–116, 2007.

158