Sunteți pe pagina 1din 2

Subdivision Algorithms and Analysis

http://www.hakenberg.de/subdivision/subdivision.htm

SUBDIVISION ALGORITHMS

AND

ANALYSIS

Subdivision is a technique in computer aided geometric design for approximating a smooth surface by a sequence of increasingly faceted polyhedra. Subdivision schemes have several attributes that have motivated their development ever since the fundamental work of Catmull-Clark '78, Doo-Sabin '78 and Loop '87: The input to the algorithm is a coarse mesh, that is manageable in size for the designer. The subdivision procedure on the mesh is determined by a simple set of affine combinations of the vertices. Several iterations typically result in a smooth surface. Today subdivision algorithms find their main application in industrial design and computer animations, for instance in modeling the skin of a humanoid character. While a huge variety of subdivision algorithms exist to conveniently generate smooth surfaces, less attention has been given to volumetric subdivision schemes. In my thesis, I derive stationary subdivision rules on bi-uniform volumetric meshes consisting of pairwise combinations of tetrahedra, octahedra, triangular prisms and cubes. The existing framework of quasiinterpolants is refined so that weight stencils can be computed by algebraic manipulation. The joint spectral radius test developed by Levin '03 proves that the combined schemes yield C2 limit functions. Smooth Subdivision for Mixed Volumetric Meshes Subdivision for the Ultimate Consumer Loop, tri-quad, and tetrahedral subdivision in MATLAB As a student at the Technische Universitt Darmstadt/Germany, Ulrich Reif has introduced me to subdivision algorithms, and the world of research in general. He initiated my acceptance to public support and pushed me to travel over-sea to work with his colleague Joe Warren.
The next morning the sun was behind a cloud, but they started on, as if they were quite sure which way they were going. "If we walk far enough," said Dorothy, "I am sure we shall sometime come to some place." The Wonderful Wizard of Oz

Loop, tri-quad, and tetrahedral subdivision in MATLAB

Loop subdivision

tri-quad subdivision

1 of 2

04/20/2011 06:50 PM

Subdivision Algorithms and Analysis

http://www.hakenberg.de/subdivision/subdivision.htm

Together with Annika Kuhl from the Curtin University of Technology in Perth/Australia, we release a function to subdivide triangular meshes in MATLAB. The applied algorithms are Loop-subdision, but also linear subdivision. Later, subdivision of triangular and quadrilateral meshes in MATLAB was added. The algorithm is the extention of Loop- and Catmull-Clark-subdision described in Schaefer/Warren. Upon a request by Jiayi Zhu from Zhejiang University in Hangzhou/China, a function to subdivide meshes consisting of tetrahedra and octahedra in MATLAB was added. The applied algorithms are Schaefer/Warren. Loop, tri-quad, and tetrahedral subdivision in MATLAB * mexmesh.zip

800 kB

* all source code included. The mex-binary is precompiled with Microsoft VC++ 6.0 for Windows; works for MATLAB 7.1 and later. However, according to Dylan Richard Muir, the cpp code does not compile on a Macintosh.
Weniges, aber Reifes. Carl Friedrich Gau

Below, you find a simple MATLAB example that generates a random triangular mesh and applies three rounds of Loop subdivision. The precompiled binary file subdivision.mexw32 in the zip-archive supplies the function subdivision(). Upon execution, a figure compares the input and output meshes.
function loop_demo X=rand(3,40); T=delaunay(X(1,:),X(2,:)); T=T'; subplot(1,2,1); trimesh(T',X(1,:),X(2,:),X(3,:)) [x,t]=subdivision(X,T,[0 1 1 1]); subplot(1,2,2); trimesh(t',x(1,:),x(2,:),x(3,:))

The actions performed by the function subdivision() are determined by a queue comprising of the digits: 0 - add mesh boundary 1 - one round of Loop-, tri-quad, or tetrahedral subdivision 2 - one round of linear subdivision In the example, we use the sequence [0 1 1 1]: Boundary is added to the mesh, and three rounds of Loop-subdivision are applied. For precise information on the inputs and outputs to the function, please have a look at the demos provided in the software archive above. When applying subdivision on an open mesh, we recommend to preceed subdivision by the "add boundary"-option. The option adds a curve along the border of a surface mesh, and a surface on the border of a valumetric mesh. Curves are subdivided using cubic B-spline subdivision. The measure prevents that the following rounds of subdivision deform the boundary of the mesh in an undesired fashion.
Zi Gong fragte: Gibt es ein Wort, nach dem man sein ganzes Leben ausrichten kann? Der Meister sprach: Ja. Gegenseitigkeit. Konfuzius

2 of 2

04/20/2011 06:50 PM

S-ar putea să vă placă și