You are on page 1of 18

Progress Report on the Implementation of a Thin Layer Surface Crack Pattern Generation Algorithm

Patrik Rauber December 22, 2011

Contents
1 Introduction: Understanding 1.1 Motivation . . . . . . . . . 1.2 Achievements . . . . . . . . 1.3 Approach . . . . . . . . . . 2 Implementation Details 2.1 Used tools . . . . . . . 2.2 Algorithm . . . . . . . 2.3 Parameters . . . . . . 2.4 Diculties . . . . . . . 3 Findings 3.1 Results . . . . 3.2 Observations 3.3 Complexity . 3.4 Open Issues . 4 Future Work of H.N. Ibens thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 3 3 4 8 10 10 10 11 13 16 16

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

1
1.1

Introduction: Understanding of H.N. Ibens thesis


Motivation

The motivation of the thesis [1, 2] is to produce a visually plausible crack pattern on locally manifold triangle meshes that corresponds to cracking that happens in thin surface layers. Real world examples of the crack pattern that the thesis tries to simulate are patterns that can be found in the surface layers of the following materials: ceramic glaze dried mud 1

Using additional input such as directionality of the stress eld or multiple runs with dierent parameters the algorithm is also able to produce cracks that occur in: impact patterns on glass plates rock fractures It is has to be stated that the goal is not to produce a physically correct result but rather using a physical approach to reproduce certain eects and patterns that occur in nature.

1.2

Achievements

There are two main achievements in the PhD thesis. The rst one is the generation of thin layer crack patterns using a physically based approach. The second is, using thin surface layer model, a reduction of dimensions of the stress eld on a surface from 3D to 2D and therefore saving computation time and memory. 1.2.1 Physically based Pattern Generation

Non-physical approaches generate crack patterns by mapping a representation of cracks to a mesh similar to texture mapping, or trying to apply observations about cracks to the mesh. Those non-physical methods are a phenomenological approach but do not try to simulate the actual physics behind the formation of the patterns. Ibens thesis on the contrary tries to reproduce patterns using a physical model for the stresses that form the cracks and for the relief of stresses that occurs when a crack forms or the mesh is deformed. This allows a simulation using parameters similar to real world entities like material toughness and deformation coecients that provide an intuitive interface and control over the behaviour of the algorithm. 1.2.2 Reduction of Dimensions

In physics stress is represented as a tensoreld. The stresstensor is dened at each point within a body as a 3x3 matrix. Using the property, that thin surface layer cracks are a result of stresses that mainly act in the plane that locally aproximates the surface, the approach is able to describe the stresses as a eld of symmetric 2x2 matrices dened over the surface of an object. By doing this the complexity of several calculations and the memory consumption is reduced. The framework for her approach is given by the paper by James F. OBrien and Jessica Hodgins [3]. They implemented a nite element approach for fracture simulation of bodies consisting of tetrahedra with stress tensors dened per tetrahedron. Also the idea of using eigenvalue/vector pairs of separation tensors for crack generation and the separation tensor itself are derived in this paper.

1.3

Approach

Ibens approach mainly consists of four steps, which Ill describe in detail further.

1. Stresseld denition. Initially a stress eld is dened. For every triangle in the mesh a local orthonormal coordinate system is calculated using the vertices of the triangles to dene the orientation of the basis vectors. Then in this local coordinate system a symmetric 2x2 matrix is set as the initial stress tensor. In the simplest case it is the identity matrix. In more complex cases, the user can specify a general direction in which the stresses should be applied. The stress tensor will then be initialized according to the projection of the specied direction on the plane. 2. Crack Generation. After the initialization, so called separation tensors are calculated per vertex in the 3 dimensional global coordinate system using all the stress tensors in the 1 ring neighborhood of the vertex. From those 3x3 matrix quantities the one with the largest eigenvalue/vector pair denes on which node and in which direction a crack occurs. 3. Stresseld Relaxation. After the cracking, a relaxation method that virtually displaces the vertices in direction of the force that acts on them as a result of the stress, the changes in the per face dened stress tensors is calculated and accumulated into them. This step repeats several times and is therefore the most consuming one in the whole procedure. After that, the crack generation procedure is again invoked. 4. Output Generation. If the user dened number of iterations is reached or the eigenvalues of the separation tensors do not exceed the material toughness threshold anymore, the crack generating routine and relaxation are no longer executed and an output mesh is generated. Iben uses a custom shader that darkens edges in the mesh that are marked as cracks to display ceramic glaze crack patterns or a vertex moving and remeshing step for displaying the cracks in crack patterns like dried mud or glass.

Implementation Details

My implementation of the crack pattern generating algorithm follows closely the one described in Ibens thesis [1, 2]. In the following paragraphs I briey describe the tools used and discuss the algorithm in more detail.

2.1

Used tools

I use a few external tools for representing and handling triangle meshes and some linear algebra packages. OpenMesh is an open source mesh handling framework that represents a polygon mesh as a winged edge data structure and is capable of storing additional arbitrary per-face, per-vertex and per-halfedge attributes in the mesh, e.g. oat values, matrices etc. It also provides an interface to quickly access adjacent faces, vertices or edges for given vertices, faces and edges. AlgLib is an open source library that provides several mathematical algorithms. I use it for Eigenvalue/vector calculation and Singular Value Decomposition in my code. 3

MeshLab is an open source mesh viewer which I use for displaying results and rendering of the images in this report.

2.2

Algorithm

The algorithm consists basically of the four steps described in paragraph 1.3. The following section talks about the implementation of each of the steps and gives a short pseudo code. 2.2.1 Overall Algorithm

The overall algorithm is pretty straight forward. Notice that the stress tensors are dened per face as opposed to the separation tensors which are dened by vertex. Algorithm 1 The overall algorithm of the pattern generation routine. Note that it very coarsely describes what happens. Refer to following listings for more information. mesh = r e a d mesh from f i l e f o r e v e r y f a c e i n mesh do { i n i t i a l i z e l o c a l c o o r d i n a t e system . i n i t i a l i z e stress tensor . } f o r i := 1 t o maximum number o f i t e r a t i o n s { i f t h e r e a r e nodes t h a t can be c r a c k e d i n t r o d u c e c r a c k i n mesh . perform r e l a x a t i o n on t h e mesh . } v i s u a l i z e cracks .

2.2.2

Stresseld denition and initialization

In continuum mechanics, a stress eld is a tensor eld dened by a 3x3 matrix at each point of a body [4]. Since our assumption is that crack formation in thin surface layers that can locally be approximated by a plane, one can assume that the tensor has the following form on the surface of the object, if it is dened relative to the normal at the vertex position in [2]: 1 0 = 2 0 (1) 0 0 0 Thus, it can be expressed locally by a 2x2 matrix only. 4

Using a nite element approach for the stress eld, it suces to dene only one stress tensor per triangle that is dened with respect to the normal of the plane a triangle lies in. The local coordinate system and base change matrix are easily calculated with the 3 vertices that form the triangle. In order to generate repeatable results I did not yet use random values to initialize the stress tensors. The pseudo code of Listing 2 shows how the initialization is done. Note that the algorithm involves also the calculation of another matrix , which origin is explained in [3]. Algorithm 2 Initializes a local coordinate system for a triangle and sets an initial stress tensor that is dened in that local coordinate system. t : the current t r i a n g l e . p1 , p2 , p3 : V e r t i c e s o f t h e c u r r e n t t r i a n g l e . # d e f i n e t h e l o c a l c o o r d i n a t e system u = ( p2 p1 ) ; u /= u . l e n g t h ( ) ; v = u x ( p3 p1 ) ; v /= v . l e n g t h ( ) ; n = u x v; # d e f i n e t h e b a s e change matrix from t h e # l o c a l c o o r d i n a t e system t o t h e world c o o r d i n a t e system t . T = Matrix ( u v n ) ; # i n i t i a l i z e b a r i c e n t r i c matrix t h a t c o n t a i n s p1 , p2 , p3 #e x p r e s s e d i n l o c a l c o o r d i n a t e s m1, m2, m3 t . b e t a = Matrix (m1, m2, m3) 1; # i n i t i a l i z e sigma t o t h e i d e n t i t y matrix which amounts t o # normal s t r e s s a l o n g t h e two b a s i s v e c t o r s o f t h e # l o c a l c o o r d i n a t e system t . sigma = Matrix ( 1 , 0 , 0 , 1 ) ; As stated in Algorithm 1 this procedure is executed for every triangle once at the beginning of the program. Note that instead of the identity matrix as initial stress tensor a more general symmetric matrix might be used to add additional randomness to the pattern generation. 2.2.3 Crack generation

Generation of cracks on the mesh is done exactly as in H. N. Ibens thesis [2]. The following list illustrates coarsely the necessary steps. For further information refer to chapter 3, 4 and 5 of the thesis. Separation Tensor Calculation. For each vertex a so called separation 5

tensor [3] is calculated and stored as a per vertex argument. Determine the cracking nodes. The separation tensors are prioritized according to the value of their largest positive eigenvalue. The node with the largest positive eigenvalue is the one that will be cracked in the current iteration. Introducing crack edges into the mesh. Having the eigenvector/value pair from the separation tensor, a plane with the eigenvector as normal is then set up in the node that is to be cracked. The crack edges will be introduced between the node that is to be cracked and the intersections (either 1 or 2) of the plane dened by the node and the eigenvector. Remeshing. Introucing a crack introduces a new boundary into the mesh. This is done by duplicating the cracked vertex and connecting the faces below the split plane to one of the duplicates and the faces above the split plane to the other. One special case needs to be taken care of: if a crack edge is too close to a pre existing edge in the mesh, i.e. the angle is less than 25 degrees, the new created edge should be snapped to the pre existing one.

2.2.4

Relaxation

After a crack has occurred stress is relieved in the mesh because the forces that were exerted on a node no longer act on the node since the surface elements are no longer connected. Furthermore, elastic deformation may alter the stress eld throughout a cracking process. The program tries to simulate this by applying a diusion algorithm to the stress tensors. This is done by calculating Greenes strain tensor [5] for every face with respect to the displacement of its vertices. The basic assumptions behind the relaxation process are: Stress is proportional to strain (this means: the body deforms elastically) Displacement on the surface is piecewise linear Important to note is that all of the separation tensors and force calculations are expressed in a global coordinate system. The stress tensors however are dened in their respective local coordinate system. Those two systems are related by a rotation only since they are both orthonormal and the resulting forces and the stress tensor are translation invariant [4]. Additionally using symmetry of the stress tensor, relaxation can be expressed as the change in stress for a triangle. This corresponds to a matrix vector multiplication: = p[i] = F[i] t, i = 1, 2, 3 p[i] p[i] (2)

where F[i] is a vector quantity that denotes the force acting on node i of the triangle. t is the relaxation rate, a user speciable scalar parameter and p[i] a 3x3 matrix. The derivation of the values is not discussed here since it is too verbose for this report. But it can be said that they stem from the derivative of

Algorithm 3 Looks in the mesh for the vertex whose separation tensor has the largest positive eigen value, then introduces a crack edge at that node and remeshes. heap : a max heap c o n t a i n i n g a l l s e p a r a t i o n t e n s o r s sorted after their eigenvalues f o r v = f i r s t t o l a s t v e r t e x i n mesh do { v . zeta = separation tensor heap . push ( v ) } # g e t t h e node with t h e l a r g e s t s e p a r a t i o n t e n s o r e i g e n v a l u e . c r a c k n o d e = heap . pop ( ) # i f t h e m a t e r i a l t o u g h n e s s i s no l o n g e r e x c e e d e d by t h e # maximum e l e m e n t o f t h e heap , t h e s i m u l a t i o n can t e r m i n a t e . i f ( c r a c k n o d e . e i g e n v a l u e <= t o u g h n e s s t h r e s h o l d ) break ; normal = c r a c k n o d e . e i g e n v e c t o r ; postion = crack node . position p l a n e = Plane ( p o s i t i o n , normal ) ; # n o t e t h a t t h e normal o f t h e p l a n e s h o u l d # p e r p e n d i c u l a r t o t h e normal o f t h e p l a n e # l i e s in f o r t = e v e r y t r i a n g l e i n 1 v e r t e x r i n g o f i n t e r s e c t o p p o s i n g edge t o c r a c k n o d e i n s t o r e i n t e r s e c t i o n p o i n t s ( i f any ) } a l m o s t be the t r i a n g l e c r a c k n o d e do { t with p l a n e

p1 , p2 : i n t e r s e c t i o n p o i n t s found i n t h e above l o o p # i n t r o d u c e new e d g e s i n t o t h e mesh ( and new # f a c e s as w e l l ) e1 = c r e a t e e d g e ( c r a c k n o d e , p1 ) ; e2 = c r e a t e e d g e ( c r a c k n o d e , p2 ) ; upper , l o w e r : d u p l i c a t e s o f c r a c k n o d e f o r t = e v e r y t r i a n g l e i n 1 v e r t e x r i n g o f c r a c k n o d e do { i f t i s above p l a n e r e p l a c e c r a c k n o d e i n t with above else r e p l a c e c r a c k n o d e i n t with below }

the Greene strain tensor with respect to the basis vectors and from the rotation from the world coordinates into the local triangle coordinates. Algorithm 4 shows the principle of performing the relaxation. I make several optimizations to avoid unnecessary calculations, especially I do only calculate the components of de dp that are needed. 2.2.5 Output

Once there are no more separation tensors in the mesh whose eigenvalues exceed the material threshold or a user specied amount of iteration has been reached, the cracked mesh is written out to a new le. There are several output options: No colors. The output has no colors assigned to it, it is written to the le without any additional information about the cracks. This mode only writes out the model with all the newly generated edges. Colored model. The colored model adds dierent colors to the above and below vertices introduced in Algorithm 3. This helps recognizing which faces are below and which are above a crack. Crack visualization. Additionally to writing out the model, another mesh is generated that uses information stored in the edges of the model to visualize cracks by putting a cylinder object onto edges that are formed by the crack generation routine. Crack visualization with color coding. Like crack visualization, an additional mesh is generated but dierent colors in the mesh give information about when in the cracking progress a crack was generated. For illustrations of these outputs see Section 3.1. Since the generation of the output is straight forward I will not provide pseudo code for it.

2.3

Parameters

The user is required to specify a set of parameters to control the simulation. Those parameters are: C Number of total iterations. Integer > 0. This sets the upper limit on how many times the program is invoking the crack generation routine. R Number of relaxation steps. Integer 0. This controls how many times the relaxation step is invoked after a crack has been generated. The material toughness threshold. Float value > 0. Controls how though or resistant the material should be. Higher value means that the eigenvalue of the separation tensor needs to be higher in order to be able to continue cracking. It is meant to simulate the ??? in physics. t The relaxation rate. Float value 0. Denes the amount of stress that dissipates into a triangles surrounding 1-vertex ring per relaxation iteration.

Algorithm 4 Performs a diusion of the stress tensor of a triangle into its neighboring triangles. For the calculation of de dp please refer to [2]. de dp [ v ] [ 3 ] [ 3 ] [ 3 ] : 3 by 3 by 3 by 3 a r r a y t h a t s t o r e s t h e e n t r i e s t h a t r e p r e s e n t s f o r each v e r t e x v o f a t r i a n g l e t h e d e r i v a t i v e o f Green s s t r a i n t e n s o r with r e s p e c t t o node p o s i t i o n s component r = 1 , 2 , 3 o f a t r i a n g l e i n world c o o r d i n a t e s F v delta t : The f o r c e t h a t a c t s on node v : The r e l a x a t i o n r a t e s p e c i f i e d by t h e u s e r

f o r t = e v e r y t r i a n g l e do { dsigma = Vector ( 0 , 0 , 0 ) ; f o r v = every v e r t e x i n t do {

# i t e r a t e o v e r t h e components o f Green s s t r a i n t e n s o r f o r i = 1 t o 3 do { f o r j = 1 t o 3 do { # i t e r a t e over a l l 3 dimensions f o r r = 1 t o 3 do { c a l c u l a t e de dp [ v ] [ i ] [ j ] [ r ] . } } } # e x p r e s s de dp i n t h e l o c a l t r i a n g l e c o o r d i n a t e # system ( not shown how t o do h e r e ) # we end up with a 3 by3 matrix t r a n s f o r m e d d e d p = t r a n s f o r m ( de dp ) ; # c a l c u l a t e d e l t a p as the product o f the f o r c e # t h a t a c t s on t h i s nod with r e l a x a t i o n r a t e delta p = F v delta t ; # dsigma i s a 3 x1 v e c t o r which s t o r e s t h e accumulated r e s u l t s . # I t s t o r e s a matrix v e c t o r m u l t i p l i c a t i o n # and r e p r e s e n t s t h e change o f s t r e s s with r e s p e c t t o # node v . dsigma += t r a n s f o r m e d d e d p d e l t a p } # add d e l t a sigma i n t o t h e s t r e s s t e n s o r o f t h e t r i a n g l e t . sigma += Matrix ( dsigma . x1 , dsigma . x2 , dsigma . x2 , dsigma . x3 ) ; }

Crack propagation factor. Float value 0 1. For being able to recreate the phenomenon of long spreading straight crack around a surface I add a residual amount of the separation tensor to the crack tips each times a crack is formed. This parameter inuences how much of this residual tensor is going to be added in the next iteration. Snapping threshold. Float value > 0. Describes the angle at which a new formed crack is snapped to a pre existing edge in order to not generate triangles which are too small.

2.4

Diculties

The following sections describes the three main diculties I encountered during the implementation process. 2.4.1 Understanding of Physics

As the physics of fracture mechanics are quite evolved and my background in physics does not cover it I had diculties in the beginning with understanding exactly what was going on in Ibens thesis. There were some misunderstandings of the text, namely the calculation of the change in stress in the relaxation phase that needed prolonged discussions with my supervisor, as it was either not properly described or conceptually unclear. 2.4.2 Framework Usage

On the other hand using an open source framework like OpenMesh yielded some problems as well. There were two points that slowed down my progress: the lack of documentation of some features which I had to explore by browsing through the source code and the presence of undetected bugs within the framework. Thanks to the guys at OpenMesh, there were pretty fast xes available for the three bug reports I led. 2.4.3 Debugging numerical calculations

A third aspect that caused some problems was to nd good visualizations and debug the code. As the numerical quantities that are calculated do not make much sense when seen in the debugger it was dicult to isolate bugs and errors even to the main components of the system described in Section 2.2.

3
3.1
3.1.1

Findings
Results
Relaxation

As one can see in Figure 3.1.1 the relaxation has the eect of distributing a stress tensor in the neighboring vertices.

10

Figure 1: The eects of the relaxation. On the left side is a plane that has only stress tensor matrices in the red part. The matrices have only one non zero entry in the main diagonal such that only one eigenvalue is dierent form 0. On the right side the stress tensors are shown after one relaxation steps. The tensors from the left part are distributed in the local neighborhood of the red marked triangles. Parameter t C R Value 0.5 0.01 2000 0.5 25 3

Table 1: The base line values for all the pictures. Values that do not correspond to the baseline are indicated in the captions.

3.2
3.2.1

Observations
Parameter Inuences

Section 2.3 describes several parameters which the user can set. The following gures illustrate the inuences of each of those parameters. The baseline of the parameters are listed in table 1. Figures 2 to 5 illustrate this. 3.2.2 Parameter Ranges

In several experiments I tried to determine the range of the parameters in which they act in a predictable manner. For each of the parameters described in Section 2.3 I list in table 2. There are two ways a parameter is internally handled. The adaptive parameters are in relation with the average triangle area of the input mesh. This means they are scaled according to the average triangle area. Non-adaptive parameters are used as the user enters them without any scaling. As opposed to H. N. Ibens thesis my implementation of the algorithm is able

11

Figure 2: Rendering of two spheres, one with crack propagation factor = 0.5 and one with propagation factor = 0.8. Note that the cracks on the left hand model are much longer than on the left sphere and are less likely to have secondary cracks.

Figure 3: Two spheres, one the left with relaxation rate t = 0.01 and on the right with t = 0.07. Note that for the one with the higher rate the cracks are more spaced than on the one with low rate.

12

Figure 4: Two spheres with dierent number of relaxation steps. On the left 1 step per iteration is used. On the right 5 steps per iteration are used. Note that the cracks on the more relaxed sphere are farther apart than on the less relaxed. The thin hair lines are part of the bounding boxes of the two spheres and not connected to the calculation. Also the more relaxed has less cracks because of early termination of the program due to the fact that no eigenvalue of the separation tensors were larger than the toughness threshold. to handle dierent triangle sizes without the need to adapte the parameters and t. Figure 5 illustrates this. 3.2.3 Triangulation of input mesh

Several types of artefacts may result from dierent kind of triangulations. Large variance in triangle size The algorithm tends to favor cracks at nodes that are attached to large triangles. This is the result of the calculation of the forces that are exerted on a node by a large triangle, since the magnitude of the force vector is proportional to the area of triangles that surround it. Figure 6 illustrates this. Regular mesh structure The algorithm initializes the local triangle coordinate systems according to the orientation of each individual triangles. Meshes with a regular structure (e.g. a 4-8 mesh) do not provide the necessary randomness that less structured meshes do, so the crack patterns look too regular, clearly visible in Figure 7

3.3

Complexity

Taking a look on the algorithm in Section 2.2 we can derive that the complexity is O(C R) using notation dened in Section 2.3. This expresses the complexity in numbers of iterations. If we are taking into account that for every crack generation we need to iterate over every vertex and in the subsequent relaxation over every face and assuming that there are around 2 times more vertices than faces in a mesh (this results from the spheres I used to generate the examples) 13

Figure 5: On the left is a sphere that has a bounding box with edge length 2. On the right side is a sphere that is a scaled version of the one on the left related by a factor 10. The result of the algorithm is the same, making it scale invariant. Note that for this example t = 0.05, R = 5 and C = 2900.

Figure 6: This gure illustrates the problems that arise with meshes that have triangles which vary in size. This sphere is generated by simple sampling of polar coordinates and nding a delauney triangulation. As one can see, cracks tend to build in the areas where the triangles are larger and along long edges.

14

Figure 7: Meshes that are too regular build artefacts because of the orientation of the local coordinate system. The algorithm relies on the randomness of the triangle orientation. A regular mesh imposes a kind of order on the mesh, making the stresseld more directional rather than uniformly distributed. The information on the crack lies in the colors. Green color means that the face is above the crack plane. Blue color means that the face is below the split plane. A crack is recognizable as a sharp color change from green to blue or blue to white. Red denotes a crack tip vertex. With no relaxation involved, it is visible that the algorithm introduces cracks at nodes with long edges and large faces.

Param t R C

Name Toughness Threshold Relaxation Rate Crack Propagation Factor Snapping angle Number of Relaxation steps Number of total iterations

Range 0.1 < 1 0.01 t < 1 01 15 30 0R5 13T

Adaptive Yes Yes No No No No

Table 2: The parameters with their experimentally determined eective ranges. T denotes the number of triangles in the input mesh. The Adaptive column tells if the parameter is put in relation to the average triangle area.

15

Figure 8: From left to right. The rst image shows the boundaries as they are in the sphere after the crack generation. The second image shows the cracks as they are marked in the mesh. In a closed water tight mesh cracks and boundaries should be the same. The red circle indicates where this is not the case. the complexity in terms of vertices is O(Rv 2Cv) = O(v 2 ), which corresponds roughly to the experiences I made when generating the images. Note that at every step the number of vertices increases, but only linear to the number of total iterations.

3.4
3.4.1

Open Issues
Faulty markings

In the remeshing step, faces below the split plane and faces above the split plane are both recreated and a new boundary is introduced. The snapping of crack edges to pre existing ones may cause some problem in this step such that snapping is not 100 percent accurate. The artefacts become visible on a sphere when visualizing the crack markings and the boundaries of the mesh after the crack generation (Figure 8). A statistical analysis shows that the remeshing fails in around 0.5 percent of all cracks. 3.4.2 Massing of cracks in Small Areas

Artefacts that are inexplicable to me at the moment is the massing of cracks in small areas, like Figure 9 shows. I assume that it is an artefact that results from an erroneous residual value used to propagate long cracks around a mesh. 3.4.3 Physically implausible cracks

There are occasions where cracks enclose a single small triangle at all three sides which is somewhat counter intuitive. One of my assumption is that it could have something to do with the Faulty Markings explained in Section 3.4.1.

Future Work

Future work involves solving the issues described in Section 3.4 which should take a few days. Further a new mechanism for dening a stress eld on a 3D mesh has to be developped. We are thinking about marking high stress areas on a mesh with Meshlab z-Painting. Another way of displaying crack than the cylinders has to be found. Further work can also be done in the area of taking

16

Figure 9: The red circle illustrates the massing of cracks in a very small area described in Section 3.4.2 which is physically highly implausible. The orange circle shows that one triangle is entirely surrounded by crack edges. This is also very unplausible since the triangle is very small. The source of the problem for both artefacts might be the presence of a bug in the relaxation or crack propagation step. For the enclosing triangle bug it may also be that the error originates in the snapping of edges. into account non planar stresses (which will result in a loss of performance and simplicity).

Acknowledgements
Thanks to Daljit Dhillon for the great supervision and reliable source of ideas and motivation. Thanks to Peter Bertholet, Marco Manzi, Gian Calgeer, Gregor Budweiser and the other pool students of the CGG for advice and coee breaks when I needed them most. Thanks and apologies to Michelle Aolter for not seeing me throughout the week when writing this report and nevertheless buying me a Christmas present :)

References
[1] Hayley N. Iben and James F. OBrien. Generating surface crack patterns. In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation, pages 177185, Sept 2006. [2] Hayley Nicole Iben. Generating Surface Crack Patterns. PhD thesis, Electrical Engineering and Computer Sciences, Unversity of California at Berkeley, Dec 2007. [3] James F. OBrien and Jessica Hodgins. Graphical modeling and animation of brittle fracture. In Proceedings of ACM SIGGRAPH 1999, pages 137146, Aug 1999. [4] Panayiotis Papadopulos. Introduction to continuum mechanics. Lecture script, Department of Mechanical Engineering, University of California at Berkeley, Aug 2008. 17

[5] Wikipedia. Finite strain tensors. http://en.wikipedia.org/wiki/Finite strain theory. Online; accessed 21-Dec-2012. [6] Wikipedia. Fracture mechanics. http://en.wikipedia.org/wiki/Fracture mechanics. Online; accessed 21-Dec-2012.

18

You might also like