Geometric Techniques

Weil's Technique
Agui et al's Technique

Geometric methods to model cloth are aimed at recreating the "look" of cloth and not its properties. This method is mainly employed by computer graphic people who are only trying to create images of the cloth that look realistic enough to be believed, but don't need the cloth to have the exact characteristics of cloth.
Weil

Weil was one of the first people to attempt to simulate cloth. His technique is the basis for almost all other techniques that have been developed since. The method that he created was to represent hanging cloth as a grid or points. He simulated its shape by fitting catenary curves between hanging restraint points. His method can be broken down into a two stage process. The first stage is to approximate a solution to the shape of the cloth and the second state is to apply certain restraints to the first stage to get a more realistic look.

The first step of the first stage is to set the cloth onto a square grid. This grid will be a representation of the cloth. The second step is to pick a triangle and hang a catenary curve from one of its corners to the midpoint of the other side of the triangle. Weil uses this equation for the catenary:



The next step is to move all of the points that lie on the line created by the catenary to the catenary curve. A rasterized line is drawn between the two end points of the catenary curve. The number of points that make up this line are counted and uniformly divide the catenary by this number. The points are then moved onto their corresponding location on the catenary.



If there are still points that are not lying on the catenary withing the two triangles created by the splitting of the original triangle with the catenary, then the above process is repeated on these new triangles. The process is repeated on every triangle until all points are represented by a catenary. This splitting process can be seen below.



One problem with the steps discussed above is that there are more than one way to split a triangle with a catenary. To fix this problem a new catenary should be created that takes the original two into account. While this may solve the problem, it creates many calculations. Instead Weil decided to simply use the lower of the two catenaries. This solution solves the problem in a less computational way. The only problem with picking the lowest catenary is that during an animation the lower catenary may change from one frame to another creating a "snapping effect."



The second stage of the process is to apply restraints to the cloth shape to allow for a more realistic look. Weil did this through the use of a relaxation algorithm. During the first stage many of the points on the grid get moved into a location that would not be possible in a real cloth. The relaxation algorithm makes sure that the points are all located in relatively the same distance from each other as they were in their initial state.

The first step in this process is to constuct displacement vectors between each point and its neighbors. The resultant displacement vector of the individual displacement vectors is then used to displace the point by some value to attempt to decrease the magniture of the overall displacement. This process is repeated over the whole grid until d_max (total displacement of the grid) is less than L (original distance to neighbors) + some tolerance factor. The displacement vectors are displayed below.



This method creates rather realistic looking cloth models. An example of this method can be seen below in the images of a ghostly shaped cloth model.


Agui et al

Agui and his colleges create a method to model cloth on a bending arm. They represented cloth as a hollow cylinder consisting of a series of circular rings. The image below is of the representation that they used.



Agui et al observed that folds formed as a direct consequence of the difference in curvature between the intter and out part of a bent sleeve. They were able to derive the following equation from this observation.



L(i,j) is the distance between the points P_i,j and P_i-1,j. dL(i,j) is the difference in distance before and after a bend. They determined that a deformation (fold) occurs when dL(i,j) is at a minimum. A before an after image of a bending is shown below.



Folds are created by transforming the circular rings into polygons. The image below whow the circle R_i on the xy-plane before and after it is split into polygons. The shaded circle inside or R_I is the representations of the arm. To make the computations simple the circles are assumed to by symmetric about the y-axis. The first step in turning the rings into polygons is to find a point N_a where dL(i,j) is greater than some predetermined threshold dL_a. The parts of the circle below the point N_a are not changed and remain in circular form. The next step is to locate points N_1 and N_2 with thresholds dL_1 and dL_2 where dL_2 > dL_1 > dL_a. The algorithm that they used always assigns the top of the sleep to be flat. This is based on the assumption that folds are always flat near the top of the sleeve. This process is applied to all circles that makeup the sleeve. the corners are smoothed smoothed and averaged before rendering.