Towards Efficiency in Cloth Simulation

download Towards Efficiency in Cloth Simulation

of 12

Transcript of Towards Efficiency in Cloth Simulation

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    1/12

    Towards Efficiency in Cloth Simulation

    Fernando Birra and Manuel Santos

    CITI/Departamento de InformticaFaculdade de Cincias e Tecnologia (FCT)

    Universidade Nova de Lisboa, Quinta da Torre2829-516 Caparica, Portugal{fpb,ps}@di.fct.unl.pt

    Abstract. Cloth simulation is an extremely expensive task. Realistic

    cloth models coupled with stable numerical integration demand all theprocessing power we can spend. Although implicit integration schemesallow us to use large time steps, the exponential time complexity limitsthe number of particles that are reasonable to use in any simulation.In this paper, we present a technique that simulates cloth surfaces withadaptive level of detail without degrading the surface physical propertiesor the stability of the simulation. The underlying mesh operations arederived from subdivision surfaces, but rules are adapted to prevent thenumerical simulation from diverging. We also demonstrate how the modelconstants can be specified in a resolution independent way.

    1 Introduction

    Although the use of implicit integration on the simulation of deformable modeshas been proposed by pioneering work of Terzopoulos et al. [11], the approachsuffered from the lack of CPU power at the time. A decade later, Barraf andWitkin [1] were able to capitalize on the benefts of implicit integration. Theircontribuitions to the field included a modified version of the conjugate gradientlinear solver that was able to maintain a set of restrictions on the particlestrajectories, without any performance penalty. The authors also proposed anelegant and continuous formulation of a cloth surface model that could easily beapplied to irregular triangular meshes.

    Desbrun et al. [3] took the road of simplification to attain real time per-formance, but the method cannot be applied to meshes with varying topologyand the the simulated surface exhibits a super elastic behavior, requiring post

    processing measures to make the cloth look good.Ideally, a simulation should only use as much particles as it needs to capturethe realistic behavior of the cloth surface. At any given time, some areas of thesurface may be mostly flat and thus a small discretization can be used. Others,may present complex folds and wrinkles and a high resolution polygonal modelis required. This paper starts by analyzing related work in cloth simulation withdynamic detail. Next, we identify the major problems, largely emanating fromcareless manipulations of the topology, and provide a set of viable solutions. Weconclude by discussing the results.

    F.J. Perales and R.B. Fisher (Eds.): AMDO 2008, LNCS 5098, pp. 144155, 2008.c Springer-Verlag Berlin Heidelberg 2008

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    2/12

    Towards Efficiency in Cloth Simulation 145

    2 Related Work

    First attempts to use adaptive refinement on rectilinear meshes were madeby Hutchinson et al. [7] and Zhang et al. [16]. The cloth model proposed byProvot [10] was used. These first approaches didnt contemplate simplificationand werent suitable for animation. Later, Villard et al. [14] also worked withrectilinear meshes that were refined during the simulation as a result of a pro-cess of curvature estimation at each vertex. New vertices were classified intotwo different sets: active and inactive, depending on weather they were directlyinvolved in the simulation or not. Forces computed on inactive nodes were dis-tributed to the surrounding active vertices and only these were really simulatedwith an explicit integration technique, thus requiring very small time steps. The

    mesh simplification was not considered and it was left for future work.Other authors [6,4] also used nodes that do not participate in the simulationand thus do not contribute the realist formation of folds, so characteristic incloth. The additional virtual nodes are generally computed in a geometricalway, often with the main intention of removing some visual artifacts [ 4].

    Volkov and Ling [15] used

    3subdivision [8] on a cloth simulator based onBaraff and Witkins cloth model. The surface is a set of connected triangles andits curvature is estimated along edges shared by two triangles. Whenever thepolygonal mesh is distant enough from an idealized surface passing through thatplace, the two triangles are subdivided according to

    3subdivision. Simplifica-

    tion works the opposite way, when the detail is considered exaggerated.The authors make no effort explaining the benefits of the particular subdivi-

    sion scheme adopted in the context of cloth simulation. Topological operationson a mesh, like edge swaps or vertex filtering, may introduce abrupt changeson the orientation of mesh polygons. They also abruptly change the directionand modulus of forces applied on particles, causing instability in the numericalintegration process. Ultimately, the system will diverge or, at best, unwantedoscillations will be present. Another missing point in their work is the descrip-tion of how the physical properties of the material are preserved during meshrefinement and simplification.

    Other refinement strategies are presented in [2,5], where subdivision is totallydecoupled from simulation and executed as a post-processing step, with the solepurpose of generating artificial detail. We also use a similar technique with theadvantage that it is executed almost entirely on the GPU.

    3 Dynamic Level of Detail in Cloth Simulation

    If the change in detail is only driven by visualization needs, for instance when avery large polygonal model changes its distance to the viewer, there is a greatervariety of subdivision schemes that can be used. But, varying the detail of apolygonal mesh that is also being used to run a physical simulation createsadditional problems. In cloth simulation, the polygonal mesh usually defines aparticle system where mesh vertices are, in fact, particles. The physical model

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    3/12

    146 F. Birra and M. Santos

    of the surface is evaluated and, as a result, forces are computed and applied toparticles which will, in turn, be used to integrate their trajectories through time.

    Abruptly changing either the force magnitudes or their orientations, duringtopological mesh operations, can spoil the entire simulation by voiding the re-sults of the numerical integration technique. In our preliminary tests, we foundthat explicit integration could hardly cope with these changes and was easilyaffected by instability and divergence. Implicit integration, on the other hand,was sometimes able to recover from instability in a few steps. While this was notsatisfactory, since it created jumpiness and oscillation in the mesh, the revealedincreased robustness indicated that implicit methods could probably be used, ifthe mesh operations were chosen more carefully.

    3.1 Subdivision Surfaces and Adaptive Subdivision

    Subdivision surfaces can easily provide local variation of detail in both directions.Simply put, starting with a coarse polygonal mesh and, by successively applyinga set of subdivision rules, a more refined surface is obtained at each step. Afteran infinite number of applications of the rules, over the whole surface, we obtaina smooth limit surface. The rules are classified in two different types. Face rulesare responsible for inserting new vertices while vertex rules pickup the verticesfrom the previous steps and filter them.

    We are only interested in considering subdivision schemes that will work ontriangle meshes since they are the less restrictive and the cloth model we use isalmost entirely based on the one proposed by Baraff and Witkin, thus definedover an irregular triangle mesh.

    (a) nonuniform Loop

    (b)3 triangle split phase

    (c)3 edge swap phase

    Fig. 1.3 and Loop subdivision schemes

    When thinking of subdivision schemes for general triangle meshes, there aretwo schemes that immediately come to mind. The Loop scheme [9] is probablythe most famous and it works by splitting each triangle into four new ones. Thenew vertices are inserted at the midpoint of the original edges and connected toeach other (see lower triangle of figure 1(a)). The other well known scheme for

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    4/12

    Towards Efficiency in Cloth Simulation 147

    triangles is 3subdivision, already referred here. This later scheme works intwo distinct steps. First it inserts a vertex at the middle of each triangle to bedivided and connects it to the original vertices, creating three new triangles (seefigure 1(b)). In the second stage it performs an edge swap operation betweenadjacent triangles not contained in the same original triangle (figure 1(c)).

    Since our motivation is geared towards efficient simulation, using uniformsubdivision over the whole surface is not considered. Instead, we focus on selec-tively performing local refinement and simplification. Fortunately, subdivisionschemes can be made adaptive. For instance, some triangles can be subdividedwhile neighboring ones are left unchanged, with

    3subdivision. In this case, the

    edge swap phase is delayed until adjacent triangles are at the same subdivisionlevel. In Loop subdivision, triangles adjacent to the subdivided ones still need to

    be subdivided, although in a different (irregular) way, to avoid generating holes,as can be seen in the upper part of figure 1(a).

    3.2 Choice of Subdivision Method

    In figure 2, we show the geometric discontinuities that can be introduced duringtopological changes, if we do not carefully choose the subdivision scheme. Onthe left, we show a potential initial arrangement of two triangles. In the middleimage, we see what can happen to the orientation of the triangles using theLoop subdivision scheme. The arrangement corresponds to the situation whentwo irregular triangles (those used to avoid cracks) are later transformed into4 normal triangles. The right part illustrate the discontinuity problem arisingfrom the edge swap phase in

    3subdivision.

    (a) initial state (b) Loop subdivision (c)3subdivision

    Fig. 2. Geometric discontinuity in3 and Loop subdivision

    Theses changes, in the orientation of the triangles, will stress the numericalintegrator without any necessity, since the forces applied on neighboring particles

    will instantly change their directions, leaving the system in a inconsistent state.For instance, force derivatives will have no knowledge of these modifications. Forthe same reason, we advocate that, when using a subdivision scheme to vary thedetail in cloth simulation, we should not use the rules that filter vertices, sincethey will also produce the same type of geometric discontinuities. This leaves uswith only the face rules that are used to insert new vertices.

    From various subdivision schemes studied, we found one that works on trian-gle meshes, while leaving their orientations unchanged during subdivision. Thescheme is called 48 subdivision [13] and it operates on 4k meshes [12].

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    5/12

    148 F. Birra and M. Santos

    3.3 Adaptive 48 Subdivision

    4k meshes are also called tri-quad meshes, since they can be described as amesh of triangles grouped in pairs, forming a quad. The only restriction is thata triangle can only belong to a quad. The shared edge between grouped trianglesis the blocks inner edge, or diagonal. On the boundaries, we can also observeincomplete blocks, since one of the triangles is missing.

    The elementary refinement operation is described as the blocks inner edgebisection. The shared edge is split in two by placing a vertex in the middlepoint and connecting it to the opposite vertices of the block. Note that thisoperation is consistent, regarding the orientation of the new and the old triangles.Another advantage of this rule is that there is no need to irregularly divideneighboring triangles to avoid holes in the mesh and a single simple rule can be

    used throughout the entire procedure.

    (a) same level (b) different levels

    Fig. 3. Adaptive 48 subdivision

    Adaptive subdivision, also known as hierarchical subdivision, needs to handle

    situations when the blocks to be refined do not belong to the same subdivisionlevel. In figure 3, we depict two possible scenarios. In both cases the edge thattriggers subdivision is the middle vertical one, shared by the two quadrilaterals.

    On the simpler case, both quads are at the same level. However, the edge thatwe want to split isnt the inner edge of a block. In this situation we first spliteach block, as shown with the dashed diagonal lines. Now, the smaller trianglesaround the vertical edge form a block, rotated 45 degrees from the original ones.So, the vertical edge is now an inner edge of a block and another subdivision willsplit it. On the right side, the triangles to each side of the edge do not belong tothe same level of the hierarchy and the first step consists of dividing the biggerblock, from the a less refined level. Fortunately, the variance in hierarchy levelsbetween adjacent blocks can be, at most, one unit. For the details of hierarchical

    48 subdivision we refer the reader to [12].Although 4k meshes are not really general triangular meshes it is relativelyeasy to convert an irregular mesh of triangles to this format. To convert an irreg-ular mesh of triangles we have at least two different methods at our disposal. Onesuch method was proposed in [13] but can generate meshes where triangles havevery different sizes. To tackle this problem we propose an alternative methodbased in

    3subdivision. On the first step we split every triangle in the original

    mesh by placing a vertex in the center of the face and connect it to the originalvertices. Next, we group the new triangles that share edges of the original mesh

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    6/12

    Towards Efficiency in Cloth Simulation 149

    in blocks of two. Finally, we proceed with the edge swap phase. The resultantmesh is more regular with respect to the size of the triangles.

    4 Refinement and Simplification

    At each simulation step we inspect every shared edge and compute an errorestimator similar to the one described in [15]. This estimator lets us know whenwe need more resolution or when the detail can be sacrified. A numerical valuedescribes the error of the polygonal mesh to an idealized surface. If the valueis too big we subdivide, if it is too small we simplify. The particular estimatorused is not very important and other alternatives could be used. We prefer

    to concentrate on the numerical conditions that can make DLOD a reality incloth simulation. For subdivision, edges are processed by decreasing value of theestimator. In any case, each block can only be divided one level in each time step,to improve stability and keep the local density of changes small. Simplificationis also processed according to priority, starting with the more flat arrangements.

    4.1 Numerical Conditions

    While subdivision, as we saw before, preserve the orientation of the triangles,the same cannot be said about simplification. Unless we are thinking about atotally flat arrangement of two triangles. Note that we can only join trianglesthat belonged to the same block in the upper subdivision level.

    In our experiments, simply trying to join triangles based on the value of theestimator or their flatness proved to be catastrophic. The impact on the nu-merical integrator caused the system to diverge with ease. We ensure additionalstability conditions to be able to simplify the mesh. A more strict condition toperform simplification should consider the variation of the orientation of the twotriangles. Not only we need them to be relatively co-planar, as we also want thearrangement to be stable in time, and not merely a transitory state.

    Recalling that the condition vector C(x), used model curvature in Baraff andWitkins model, is simply the angle formed by the normals of the two adjacenttriangles (ijk and jkl ), we measure its time derivative and only simplify if itis near zero. Fortunately, the time derivative can be obtained from the gradientsin the formula below, already needed to evaluate the surface model. The extraeffort is thus negligible since velocities (for particles i, j, k and l) are also already

    available.

    C(x)

    t=

    C(x)

    xivi +

    C(x)

    xjvj +

    C(x)

    xkvk +

    C(x)

    xlvl

    To avoid tight loops of subdivision and simplification operations locally weimpose a time to die value on newly created triangles. They can only be simplifiedback if they have lived long enough. However, to quickly adapt to curvature weallow subdivision to occur at rate of one level per block and per step.

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    7/12

    150 F. Birra and M. Santos

    4.2 Invariance of Physical Properties

    Changing the cloth mesh resolution shouldnt be reflected in the dynamic behav-ior of the surface. This means that physical quantities such as total mass, linearmomentum and internal deformation energies should be invariant with respectto resolution, as much as possible.

    Fig. 4. Mass and linear momentum conservation

    In figure 4 we represent the elementary refinement step. To keep the totalmass constant we release the load of triangles A1 and A2 from their supportingparticles. The weight of the newly created triangles is then equally distributedthrough each of their 3 vertices. The cloth density, , is considered constantthroughout the entire surface but it could trivially be made different on eachtriangle of the initial mesh. The result, after aplying the mass conservation law,

    is summarized below and we note that particles A and D see their masses un-changed:

    mB = mB +

    3(A11 + A20 A1 A2), mE =

    3(A1 + A2),

    mC = mC +

    3(A10 + A21 A1 A2).

    (1)

    From the conservation of linear momentum law, we extract the following ve-locity formula for the newly created particle:

    vE =vC(A11 + A20) + vB(A10 + A21)

    A1 + A2.

    We also tested the mean velocity between particles B and C and found novisual artifacts with this simpler approach. We note that, in the case of having4 triangles with the same area, both formulas give the same result.

    To preserve elasticity, bending and shearing behavior we force the internalenergy associated with the surface deformations to remain invariant during meshresolution changes. According to Baraff and Witkins model, stretching energyof a given triangle, t, is directly proportional to the square of its area in the reststate (uv area):

    est Area(t)2,

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    8/12

    Towards Efficiency in Cloth Simulation 151

    and the same applies to shearing as well. The subdivision rule splits each of theinitial 2 triangles of a block in two similar ones, thus halving the area of theresulting triangles. Summing the energies of the new triangles totals half ofthe initial value. To keep the total energy constant we simply double the associ-ated stiffness constants kst and ksh of the new triangles to compensate.

    For bending, the total energy is directly proportional to the square of theangle between two adjacent triangles:

    ebe 2.

    This angle remains constant during edge bissection and so, at first, we could betempted to halve the bending constant, kbe, to compensate for the fact that,instead of the initial pair, we now have two pairs of triangles with the same

    hinge angle, both equally contributing to the total bending energy. However thisapparent increase in stiffness of the surface is not seen through experimentation.The explanation lies in the fact that, by performing the edge bissection, we arealso making the surface more amenable to curve in the orthogonal direction(in the cloth plane), thus also lowering its stiffness. This result is in line withthe observation of Baraff and Witkin in [1] where they advocate that bendingconstant is independent of mesh resolution.

    To have a set of normalized rigidity constants for the cloth model invariantwith respect to the level of discretization used for the surface we only need todiscover what should happen to stretching and shearing constants, since bendingis already invariant with respect to resolution. For a given triangle, t, we alreadyfound that the following relation will always hold for stretching and shearing:

    kt.Area(t) = K,

    with constant K. Thus we only need to use K as the cloth rigidity constantas it will be invariant with the resolution used. This result is very important,since it allows us to assign behavior to the surface without worrying about thediscretization level that will be used.

    5 Results and Conclusions

    To prove that our technique maintains the dynamic behavior of the materials,independently of the resolution used, we did a comprehensive set of experiments.

    One of those tests is represented in figure 5. A rectangular piece of cloth is hangedby 3 of its 4 corners. We have repeated the same simulation with different meshresolutions, both with fixed and varying detail. For each run we also traced theenergy curves of the different internal deformation modes: elasticity, shearingand bending. Not only the curves were similar enough, both in progression andmagnitude of the associated function, as the visual perception of the surfacebehavior was found to be concordant on the different tests.

    As an example, we present the variation of bending energy in figure 6. Westart by pointing the instantaneous violations to the conservation of bending

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    9/12

    152 F. Birra and M. Santos

    (a) 2048 tris (b) 32-2048 tris (c) 128-2048 tris (d) 512-2048 tris

    Fig. 5. Visual concordance with different resolution meshes

    energy as we discussed above, visible in the high frequency peaks. But, thesimilarity of the different curves also show that the analysis that took us to thisapparent violation is correct. This, as well as the concordance in final valuesreached for each simulation, serve to prove that our DLOD technique doesnt

    change the bending properties of the material. With a set of thinner lines wecan also see the number of particles used in each of the 3 simulations analyzed.We make notice of the fact that the bending stiffness used in the simulationswas higher than the values applicable to common cloth, with the purpose ofmaking potential differences in behavior more noticeable. The curves for theother internal energies are even more similar.

    Figure 7 shows a series of snapshots of a piece of cloth interacting with a solidobject. Note that we do not use collision information to steer subdivision. Theresolution will simply change as a consequence of the cloth folds created duringcloth-solid interaction.

    In figure 8 we present the accumulated simulation times for several mesh con-figurations. The first two cases correspond to fixed resolution meshes and they

    are used to bound the results from the DLOD cases. Both dynamic resolutionmeshes are allowed to reach the number of triangles of the more refined fixedresolution mesh. We start by observing that in terms of performance they are

    0

    0,05

    0,1

    0,15

    0,2

    0,25

    0 2 4 6 8 10 12 14 16 18 20

    Tempo

    Energiacurvatura

    0

    100

    200

    300

    400

    500

    600

    700

    N

    merodepartculas

    Energia curvatura: 32 tringulos (max.2048)

    Energia curvatura: 128 t ringulos (max.2048)

    Energia curvatura: 512 t ringulos (max.2048)

    n partculas: 32 tringulos (max.2048)

    n partculas: 128 tringulos (max.2048)

    n partculas: 32 tringulos (max.2048)

    Time

    Bendingenergy

    Numberofparticles

    energy: 32 triangles (max. 2048)

    energy: 128 triangles (max. 2048)

    energy: 512 triangles (max. 2048)

    number of particles: 32 triangles (max. 2048)

    number of particles: 128 triangles (max. 2048)

    number of particles: 512 triangles (max. 2048)

    Fig. 6. Variation of bending energy

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    10/12

    Towards Efficiency in Cloth Simulation 153

    (a) t=2.40 (b) t=2.40 (c) t=4.40s

    Fig. 7. Cloth interacting with an object

    very identical and follow a similar trend, dictated by the needs of the simula-tion. We can clearly identify sections where the number of particles has surelyincreased, noticeable by the increase in steepness. The justification to the factthat the DLOD curves are above the fixed resolution mesh with 1089 particlesshows that this particular simulation required a greater number of particles,reaching peek values around 2000 particles. Although the chart doesnt show it,if a mesh with around 2000 particles would be used, the time required wouldbe more than doubled. The results show that we can simulate folds with finedetail in a very small fraction of time that would be needed if we used a fixedresolution mesh.

    One important observation that isnt present in the chart is the impact of

    collision and variation of detail in the time needed for the solver to computea numerical solution. By carefully profiling the execution time associated withthe several parts of the technique, we discovered that, in a significant numberof times, whenever there was a very big number of refinement and simplificationoperations, the integrator needed to reduce the simulation step in order to finda reasonable and stable solution. We intend to explore the position alterationmechanism described in [1] to try to minimize this negative impact. The ideais that, before doing the simplification operations, we instruct the numerical

    Fig. 8. Accumulated simulation time

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    11/12

    154 F. Birra and M. Santos

    (a) DLOD 4-k mesh (constantshading)

    (b) GPU refined mesh (phong shad-ing)

    Fig. 9. Example of post-processing on the GPU

    solver to find a solution where the particle that is about to be removed lied ina perfectly flat and steady arrangement in the plane formed by the block. Toconclude the performance analysis we would like to say that the overall weight ofthe variation of detail in the whole simulation is systematically below the timeneeded to find the solution from the ODE solver by one order of magnitude.When we add to the total simulation time the costs of evaluating the surfacemodel and collision detection then we are talking about two orders of magnitudesmaller times.

    Finally, in figure 9 we present the result of applying a post-processing stepto increase the detail inside a common low-end GPU, since we only requirepixel shader performance. The DLOD mesh is sent to the GPU where it isfurther subdivided several times until the final detail is reached. No ping pongof data is required and, up to the final rendering (here illustrated with Phongshading), there is no additional CPU intervention, apart from sending the ordersto execute the necessary shaders. Although the technique is out of the scope ofthis paper, we just want to emphasize that the result of our dynamic level ofdetail simulations can be further improved without stressing the CPU, and allits power is used to run the physical simulation.

    References

    1. Baraff, D., Witkin, A.: Large steps in cloth simulation. In: SIGGRAPH 1998: Pro-

    ceedings of the 25th annual conference on Computer graphics and interactive tech-niques, pp. 4354. ACM Press, New York (1998)2. Bridson, R., Fedkiw, R., Anderson, J.: Robust treatment of collisions, contact and

    friction for cloth animation. In: SIGGRAPH 2002: Proceedings of the 29th annualconference on Computer graphics and interactive techniques, pp. 594603. ACMPress, New York (2002)

    3. Desbrun, M., Schroeder, P., Barr, A.: Interactive animation of structured de-formable objects. In: MacKenzie, I.S., Stewart, J. (eds.) Proceedings of the Confer-ence on Graphics Interface (GI 1999), Toronto, Ontario, June 2-4, 1999, pp. 18.CIPS (1999)

  • 7/31/2019 Towards Efficiency in Cloth Simulation

    12/12

    Towards Efficiency in Cloth Simulation 155

    4. Etzmu, O., Eberhardt, B., Hauth, M., Straer, W.: Collision adaptive particle sys-tems. In: Proceedings of the 8th Pacific Graphics Conference on Computer Graph-ics and Application (PACIFIC GRAPHICS 2000), Los Alamitos, CA, October 3-5,2000, pp. 338347. IEEE, Los Alamitos (2000)

    5. Hadap, S., Bangarter, E., Volino, P., Magnenat-Thalmann, N.: Animating wrinkleson clothes. In: Ebert, D., Gross, M., Hamann, B. (eds.) IEEE Visualization 1999,San Francisco, pp. 175182. IEEE, Los Alamitos (1999)

    6. Howlett, P., Hewitt, W.T.: Mass-spring simulation using adaptive non-activepoints. Computer Graphics Forum. 17(3), 345354 (1998)

    7. Hutchinson, D., Preston, M., Hewitt, T.: Adaptive refinement for mass/spring sim-ulations. In: Boulic, R., Hegron, G. (eds.) Computer Animation and Simulation1996, SpringerComputerScience, pp. 3145. Springer, New York (1996)

    8. Kobbelt, L.:3subdivision. In: SIGGRAPH 2000: Proceedings of the 27th annual

    conference on Computer graphics and interactive techniques, New York, NY, USA,pp. 103112. ACM Press/Addison-Wesley Publishing Co. (2000)9. Loop, C.T.: Smooth subdivision surfaces based on triangles. Masters thesis, De-

    partment of Mathematics, The University of Utah (August 1987)10. Provot, X.: Deformation constraints in a mass-spring model to describe rigid cloth

    behavior. In: Davis, W.A., Prusinkiewicz, P. (eds.) Graphics Interface 1995, Cana-dian Information Processing Society, Canadian Human-Computer CommunicationsSociety, May 1995, pp. 147154 (1995)

    11. Terzopoulos, D., Platt, J., Barr, A., Fleisher, K.: Elastically deformable models.Computer Graphics (Proc. Siggraph) 21(4), 205214 (1987)

    12. Velho, L., Gomes, J.: Variable resolution 4-k meshes: Concepts and applications.Computer Graphics Forum 19(4), 195212 (2000)

    13. Velho, L., Zorin, D.: 4-8 subdivision. Computer Aided Geometric Design 18(5),397427 (2001)

    14. Villard, J., Borouchaki, H.: Adaptive meshing for cloth animation. In: IMR, pp.243252 (2002)

    15. Volkov, V., Li, L.: Real-time refinement and simplification of adaptive triangularmeshes. In: van Wijk, G.T.J.J., Moorhead, R.J. (eds.) Proceedings of the IEEE Vi-sualization 2003, October 2003, pp. 155162. IEEE Computer Society, Los Alamitos(2003)

    16. Zhang, D., Yuen, M.M.F.: Cloth simulation using multilevel meshes. Computersand Graphics 25(3), 383389 (2001)