Subdivision Surfaces and Penrose Tilings - ENS Lyon

Sep 1, 2007 - The Physics of Quasicrystals. World Scientific,. 1987. [VZ01] Luiz Velho and Denis Zorin. 4-8 subdivision. Computer Aided Geometric Design,.
2MB taille 1 téléchargements 375 vues
Subdivision Surfaces and Penrose Tilings Vincent Nivoliers September 1, 2007

M1 training period at the LIGUM, University of Montreal

Adviser : Victor Ostromoukhov

1

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

Contents 1 Introduction 2 Understanding the subject 2.1 Subdivision surfaces . . . 2.1.1 Main principle . . 2.1.2 Characteristics . . 2.2 Penrose tiling . . . . . . .

2

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3 3 3 3 5

3 Previous work 7 3.1 Subdivision surfaces and splines . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Conclusion about how to create subdivision schemes . . . . . . . . . . . . . 10 4 Contribution 4.1 Problematic of the training period . . . . 4.2 Applying the process to arbitrary meshes 4.2.1 Formalisation of the problem . . . 4.2.2 Resolution . . . . . . . . . . . . . . 4.3 Smoothing the subdivided mesh . . . . . . 4.3.1 Spline methods . . . . . . . . . . . 4.3.2 Eigenstructure analysis methods . 4.3.3 Future work . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

10 10 11 11 11 13 13 15 19

5 About the internship 20 5.1 Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2 Benefit of the training period . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6 Conclusion

1

20

Introduction

Subdivision surfaces are very widely used in the range of computer graphics. The basic idea is to smooth a 3D model designed roughly, and help the modeler refine his mesh. A smoother and more detailed mesh is useful as far as illumination, or texture mapping are involved for instance, since it improves precision, and therefore realism. The aim of the training period was to develop a novel method for subdivision surfaces based on Penrose’s tiling. As the subject is a common issue, there already exists several subdivision schemes, and a strong theoretical background. However, the principle of the new subdivision method was quite unusual and therefore its development is not very similar to the other methods. I will first try and explain the basic notions involved in the subject, mainly subdivision surfaces, and a bit about Penrose’s tiling. Then I will describe the amount of previous work on top of which I started working, and finally the last part will be devoted to the training period itself, and the lab in which I spent most of the ten weeks. To help the reading, the figures are also available on a separate file in presentation format. Apart from the first one, they are all scalable without loss.

Adviser : Victor Ostromoukhov

2

Training period at the LIGUM, University of Montreal

2

Vincent Nivoliers

Understanding the subject

2.1 2.1.1

Subdivision surfaces Main principle

The basic idea behind subdivision is to subdivide an initial mesh automatically to create a more detailed one. As a matter of facts several notions have to be defined. First of all, a mesh. Definition 1 (Mesh). A mesh is the superposition of two layers of information to describe the shape of an object. Like a polyhedron, it is made of vertices, edges and faces, which constitute the Topological information. Vertices are of dimension 0, edges are 1 dimensional objects bounded by vertices, and faces are 2 dimensional objects bounded by edges. The second layer of information is geometrical information, which gives each point a position in space. Intuitively, a mesh is a kind of generalisation of polyhedra for arbitrary shapes. The subdivision process involves two different parts. Subdivision and refinement, or smoothing. Subdivision only uses topological information. This step creates new vertices and edges, and divides faces into several smaller ones. Then smoothing is used to compute the new coordinates of all the points. The method used is called the Refinement scheme. The goal of the process is to obtain a finer mesh smoother than the previous one. The operation can then be reproduced on the new mesh, as an iterative process. An example of the process is depicted in figure 1

Figure 1: Example of a subdivision process applied to a cube. This is the Catmull-Clark method, implemented in blender

2.1.2

Characteristics

As the subdivision creates new faces, the size of the model increases, and then the operation is quite heavy. As a matter of facts, it is of the utmost importance to control the growth rate. The figure 2 shows one of the simplest methods. You can see that each face is divided into four ones. Moreover, a face of the original mesh is linked to four vertices, shared between four faces for ordinary vertices. In the new mesh, one new vertex appears at each edge linked to the face, shared between two faces, and one in the centre, as a matter of facts, there are also four new vertices for one in the original mesh. Since Adviser : Victor Ostromoukhov

3

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

each edge becomes a cross of four ones, again, there are four more edges. As a matter of facts, at each subdivision step, the size of the mesh increases four times, and finally, the model grows exponentially in size.

(a) basic mesh

(b) subdivided mesh

Figure 2: basic subdivision scheme for a regular quad mesh

An other essential point is the smoothness of the surface resulting from the subdivision process. The iterations converge to what is called the limit surface. However, depending on the way the positions of the points are computed, the continuity is not assured. The resulting surface can be totally fractal, and therefore totally useless. It is evaluated in terms of continuity of the surface. To see no artifacts in the shading process later on, normal continuity is required. In particular about smoothness, the notion of ordinary or extraordinary vertices is crucial. I never found an accurate definition of this notion, but still it is essential. As their name suggests, ordinary vertices are the kind of vertices most commonly found in the mesh, and therefore extraordinary vertices are undesirable. For regular quad meshes, ordinary vertices are the ones of degree 4, and for regular triangular meshes, they are of degree 6. In fact, these notions are related to curvature. Indeed, ordinary vertices are the ones for which the curvature is zero. For instance, in the regular quad mesh, a vertex of degree 4 is linked to four quads, and if we consider these quads as squares, the surface around the vertex with these squares is flat, the curvature is 0. Now consider a vertex of degree 3. If we consider the three quads as squares, we no longer have a plane. Since the “perimeter” of this surface is lower than what is usual for a flat surface, the curvature is positive, like a sphere. On the contrary, vertices with a degree higher than 4 are of negative curvature, like an hyperbolic paraboloid. This example is illustrated on figure 3

(a) extraordinary vertex of negative curvature

(b) ordinary vertex

(c) extraordinary vertex of positive curvature

Figure 3: Ordinary and extraordinary vertices, and the link with curvature

Adviser : Victor Ostromoukhov

4

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

The subdivision process preserves flat curvature, but tends to amplify non-zero ones. As a matter of facts, at the extraordinary vertices, the subdivided mesh appears too sharp. Consequently, these points are undesirable. In terms of continuity, these extraordinary vertices are exceptions, where the subdivided mesh is not as continuous as it should be. Most of the time, at these points, continuity is C 1 , whereas it is at least C 2 at the other vertices. Therefore, it is painful for a subdivision process if it creates at each step extraordinary vertices, since they would grow unbounded. Additional extraordinary vertices can be created at an initialisation step, but then, the number of these points remains identical.

2.2

Penrose tiling

The Penrose tiling is basically made of two kinds of rhombus, thin and thick ones. An example can be found on figure 4. Its main characteristic is that it is aperiodic. The basic idea is then to use this tiling as a model for subdivision surfaces. The subdivision process is described in [ODJ04] and shown on figure 5. This article uses Penrose tiling to distribute points on a surface for sampling. Some points however have to be modified. Since we will be working on a mesh, we need to keep a valid mesh in terms of polygons, which means no edges aligned in a polygon, and therefore, no so-called T-crossings. Consequently, we cannot subdivide tiles locally as for sampling, there has to be a kind of gradient in the levels of subdivision.

(a) Penrose tiling, rhombus form

(b) Penrose tiling, kites and darts form

Figure 4: Two examples of the Penrose tiling, with the two forms used in our approach

The reason why we want to use Penrose tiling is basically its growth factor. Indeed, at each global step, the amount of geometry grows by a factor of φ ' 1.618, the golden ratio, which is better than any factor previously achieved. Moreover, we believe that the process can support local subdivision, without destroying the regularity of the mesh, which is also a very interesting characteristic, since it enables to subdivide locally some regions of the mesh more than others, depending on the level of details. For instance, plane regions of the mesh are not interesting to subdivide, and therefore, a local subdivision process enables to save extra useless geometry in these regions.

Adviser : Victor Ostromoukhov

5

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

(a) basic tiles

(b) first subdivision step

(c) second subdivision step

Figure 5: Subdivision scheme for Penrose tiling. The first two tiles are thick and thin rhombus, the third a kite, and the fourth a dart. Actually, the steps could have been explained in terms of triangles, still, this representation shows that no T-crossings are created

Adviser : Victor Ostromoukhov

6

Training period at the LIGUM, University of Montreal

3

Vincent Nivoliers

Previous work

3.1

Subdivision surfaces and splines

As previously mentioned, there already exists many subdivision methods. I might forget to mention some of them, but still I’ll try to cite the most important ones. Actually subdivision were invented in 1978 by two independent teams : Catmull-Clark and DooSabin in [CC78] and [Doo78, DS78]. These two methods are based on the same principle, which is to generalize the principle of B-Splines on surfaces of arbitrary topologies. As the notion of splines is essential to understand the refinement step in the subdivision process, I will try to give you a short introduction on what it is. B-splines are something very commonly used in the field of computer graphics, since it is a method to compute a smooth surface given a set of control points. For the subdivision methods described above, the control points are on a regular grid, which is mush simpler. In one dimension of parametrization, the principle is the following: let P = {Pi }ni=0 be a set of control points, which are positions in space, t = {tj }nj=0 a non decreasing sequence of reals, with m = {mi }ni=0 the multiplicities in t. Let u = {ui }ni=0 be the distinct values of t. Each point in P is related to a value for the parameter in u. That means that the position of the parametric curve for a value ui of the parameter is mainly determined by the point Pi . The greater the multiplicity of ui , the more the curve respects the position of Pi , but each step of multiplicity costs a degree of continuity. We will now construct a set of nodal functions which are the key of the subdivision process. These functions are recursively defined, and are plotted on figure 6  1 f or ti ≤ t < ti+1 Bi,0 (t) = 0 otherwise (

t−ti ti+κ −ti Bi,κ−1 (t)

Bi,κ (t) =

ti+1+κ −t ti+1+κ −ti+1 Bi+1,κ−1 (t)

+

0

1.0

1.0

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

if ti ≤ ti+1+κ otherwise 0.7 0.6 0.5 0.4 0.3 0.2 0.1

1

2

3

4

5

6

(a) B0,0 (x)

1

2

3

4

5

6

(b) B0,1 (x)

1

2

3

4

5

6

(c) B0,2 (x)

Figure 6: Nodal functions for B-splines. They are piecewise polynomial, and their degree increases at each step as well as their continuity Now for a certain degree of continuity κ, the parametric curve is given by the equation x(t) =

n X

Pi Bi,κ (t)

i=0

In the subdivision methods previously mentioned, this approach is generalized by a tensor product. Consequently, the nodal functions, and the resulting parametric curve become Bi,j,κ (u, v) = Bi,κ (u)Bj,κ (v) + Bj,κ (u)Bi,κ (v) Adviser : Victor Ostromoukhov

7

Training period at the LIGUM, University of Montreal

x(u, v) =

n X n X

Vincent Nivoliers

Pi,j Bi,κ (u)Bj,κ (v)

i=0 j=0

An example of a tensor product B-spline can be found on figure 7

0

2

1.0 0.5 0.0

4

-0.5 -1.0 6

0 2 4 6

8 8

Figure 7: Tensor product B-Spline on a 4x4 grid of control points alternating height 5 and height −5

These methods are a generalisation since in the basic formulation of B-splines, these curves are produced on a regular quad mesh, and a planar topology. Catmull-Clark generalizes bi-cubic B-splines, Bi since it the curve is bidimensional, and cubic since the polynomial patches are of degree 3. Doo-Sabin generalize bi-quadratic B-splines, of degree 2. These methods generate the corresponding B-Spline on a planar mesh, but also on any topologies, be it a sphere, a torus, or whatever. The basic idea was to use a subdivision mask, which is a bunch of coefficients used to compute the new position of all the points, new ones and older ones, as a wighted average of its former position, if any, and his neighbours. These coefficients are derived from the formalisation of the splines. Doo-Sabin method is C 1 everywhere, and Catmull-Clark is C 2 everywhere, except at the extraordinary vertices where it is C 1 . These two methods have a factor of subdivision 4, and are shown on figure 8.

(a) Catmull-Clark subdivision

(b) Doo-Sabin subdivision

Figure 8: Basic subdivision algorithms on square meshes

In 1987, Loop invented an other method for triangle meshes in [Loo87]. His method uses Box-Splines. There is a different kind of spline. The basic idea is the same since it is also a piecewise polynomial curve, the only difference is in the nodal functions used. Since the grid is no longer a regular quad grid, but an hexagonal one, they could not use the tensor product to generate their splines. The nodal function of a box spline is the projection of a Hypercube of a dimension determined by the number of directions you want in 2D, 6 for loop subdivision, to have C 2 continuity. The value of the nodal function at a point (u, v) is the measure of the part of the cube projected to the point. The figure 9 shows the principle of box splines and the loop subdivision. In fact, the principle of box splines Adviser : Victor Ostromoukhov

8

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

is widely used in the field of subdivision surfaces. to get more information on these, you can find more detailed information in [CRE01]

(b) Loop subdivision

(a) Principle of box splines

Figure 9: On the left, box splines, where the value of the nodal function is the measure of its backward image by projection, and right, the loop subdivision methods

More √ recently two new subdivisions methods appeared which improved the subdivision factor: 3-subdivision and 4 − 8-subdivision. Both are based on triangular meshes. In the mean time in [Zor96, Rei95, Pra98] a theoretical analysis of subdivision surfaces, and their continuity was done, based on the analysis of a subdivision matrix. This matrix has in his rows corresponding to a point and its neighbourhood at a step k, and its lines the same at the step k + 1. The values in the matrix are the influence of the old points in the positions of the new ones. For instance, if a point A is added in the neighbourhood of a point B, and his position is the barycenter of the triangle it appeared in, with points B,C and D, then the values in the subdivision matrix for the line corresponding to this point will be 1/3 in the rows corresponding to B,C and D, and 0 in the other ones. It has been proved that the behavior of the limit surface around point B is determined in the eigenstructure of the matrix. I don’t now a lot further about these results, but the important thing is that it is yet another way of finding a good subdivision mask. √

3-subdivision, described in [Kob00] is based on this analysis. Its mask was completely determined by optimising the eigenstructure of the subdivision matrix. This enabled them to have a C 2 continuous subdivision scheme at ordinary vertices, of degree 6, and C 1 at other vertices. Moreover their subdivision ratio is 3. Finally 4-8-subdivision described in [VZ01] is the most interesting for our purposes. This method is based on a box spline like Doo-Sabin one, but their ordinary vertices are the ones of degree 8 or 4 in a triangular mesh, since their triangles are rectangle isosceles. I discuss this point later on. Doo-Sabin box spline was a projection of a 6 dimensional hypercube, whereas here, the hypercube has 8 dimensions, which leads to two more degrees of continuity. Therefore, their method 4 1 has √ continuity C at ordinary vertices, C at others, and their subdivision factor is 2. 3-subdivision and 4 − 8-subdivision schemes are illustrated in figure 10.

Adviser : Victor Ostromoukhov

9

Training period at the LIGUM, University of Montreal

(a) 4 − 8-subdivision scheme

Vincent Nivoliers

(b) scheme

√ 3-subdivision

Figure 10: 4-8 √ subdivision scheme with subdivision factor 2, and ordinary vertices of degree 4 or 8, and 3-subdivision, with subdivision factor 3

3.2

Conclusion about how to create subdivision schemes

As a conclusion about all this work, the important thing is that there already exists two ways of building subdivision surfaces. The first one is the most widely used, based on splines. In fact, tensor product B-splines are a particular case of box splines. The second one is based on the subdivision matrix, and the eigenstructure analysis. This method was √ only used by Kobbelt to create 3-subdivision scheme. In fact, these two approaches are not so different since there are a lot of similarities. I would say that the second approach is less powerful, since the analysis only forces C 2 continuity, whereas spline approach enables higher degrees of continuity.

4

Contribution

4.1

Problematic of the training period

As previously mentioned, the subdivision process has already been described in an article about sampling. Still, some problems need to be addressed. First of all, the application of the process on arbitrary meshes. Once this problem is solved, the faces are subdivided into small pieces. However, the positions of the vertices still have to be computed at each time, so that the continuity is maximal. The objectives of the training period can therefore be expressed in terms of two problems: . Apply the subdivision process to arbitrary meshes . Compute the position of the created vertices maximizing continuity I managed to solve the first of the two problems quite easily, and the solution is very simple. However, I didn’t manage to find a way to smooth correctly the subdivided mesh. Consequently, I’ll explain the different methods I tried.

Adviser : Victor Ostromoukhov

10

Training period at the LIGUM, University of Montreal

4.2 4.2.1

Vincent Nivoliers

Applying the process to arbitrary meshes Formalisation of the problem

The first thing to notice is that as the Penrose tiling is aperiodic, and can be considered as an infinite graph, it is quite difficult to see whether a given mesh is isomorphic to a portion of this graph. However, topologically, we describe Penrose tiling on a plane, whereas most of the meshes currently used are isomorphic to the sphere, or other manifolds. Hence, the formalisation has to apply to these topologies. In [GS87], the Penrose tiling is described in terms of basic tiles, with matching rules on the edges, visually like a kind of puzzle. These rules are shown on figure 11. This formulation is much more interesting for our purposes.

(a) matching rules step 0

(b) matching rules step 1

Figure 11: Matching rules assuring coherence of the Penrose tiling. Images from wikipedia

4.2.2

Resolution

These rules highlight some important points. The edges in a Penrose tiling are not symmetrical. In terms of topology, this means that they are oriented. Therefore, each triangle has to be given an orientation, with its edges cycling around it. Moreover, this means that each vertex of the mesh needs to be of even degree, since to triangles in contact are of opposite orientation, and around an edge, triangles alternate positive and negative orientation. I’m not sure this condition is enough to give an orientation to each triangle, so that the orientations match on the edges. I think I proved the result on a sphere, and on a torus, but still, with other kinds of manifolds, I didn’t manage to prove it. However, the orientation is not enough to grant compatibility with the Penrose Tiling. Indeed, two oriented edges are not always matching, and each triangle has to match one of the tiles, which is much more complicated. The solution I found is very simple once you have it, but still it took some time to make its way out. The constraint over the degrees shows that some meshes are not compatible at all. Consequently, we need to transform the original mesh. Suppressing vertices, or switching edges is not a good solution, because it could damage the shape described by the mesh. Therefore, my solution only adds vertices and edges. The process is illustrated on figure 12. At first, by adding one vertex at the centre of every face, and putting an edge to each vertex of the original face, the degrees of the vertices are twice what they used to be, and consequently all even. Still, with faces with an odd number of vertices, the degree of the new vertex is also odd. From that, let’s add a vertex in the middle of each edge, and edges from that vertex to the centres of the faces it separates. All these new vertices are of degree 4, and the degree of the centre vertices are doubled, which leads to a mesh with only even degrees. Adviser : Victor Ostromoukhov

11

Training period at the LIGUM, University of Montreal

(a) Initial mesh

Vincent Nivoliers

(b) Transformed mesh

Figure 12: Preparation of a mesh to fit a Penrose subdivision process on it The orientation of the mesh is quite straightforward. Take a vertex added at the centre of the face, and give an orientation to the related edges. As there is an alternation in the neighbours between the vertices of the face, and the ones on the edges, either all the edges are oriented from the centre to the vertices, and from the edges to the centre or the contrary. The orientation on the edges is forced, and is either from their endpoints to their centre, or the contrary. Depending on the option you choose for one face, if you choose the same for all the faces, you get an orientation for the whole mesh, since the orientation on the edges is always the same, and on the vertices, you alternate edges to a face centre, and to an edge centre, with compatible orientations. I personally chose to orient from face centres to face vertices. To match tiles on this orientation, let’s add a label to each kind of edge. Edges from face centres to face vertices get the label 1, from face vertex to edge centres label 2, and finally from edge centres to face centres label 3. With this labelling all triangles on the mesh have one edge of each type. Any kind of tile can therefore be matches. I chose the first grey one. We finally get a mesh compatible with our subdivision process. This result is depicted on figure 13. 2 2

2

1

3

1

2

3 3 2

1

3

2 Face vertice

1

2

2 Face centre

Edge centre

(a) Orientation, and tags on the transformed mesh

(b) 8 steps of subdivision on a transformed cube

Figure 13: Transformation of an arbitrary mesh to fit the subdivision process

I explained previously extraordinary points. As I said, it is taken from granted that ordinary vertices for a triangular mesh are vertices of degree 6. However, in their article Adviser : Victor Ostromoukhov

12

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

[VZ01], Velho and Zorin have two kinds of vertices of degree 4 and 8, and still have one of the best continuity achieved in subdivision methods for ordinary vertices. As a matter of facts, even if their vertices are not ordinary in the common 6 definition, they are for their method. My intuition is that in their method, their triangles are not supposed to be equilateral, but rectangle isosceles ones. This supposition was implicitly made when they chose their smoothing methods. In our case, the ordinary vertices have to be the ones of the Penrose tiling. As a matter of facts, to me, it is of the utmost importance to use a smoothing method which preserves the specific shapes of Penrose triangles. Still our preparation step generates extraordinary vertices, and quite a lot of them, which is, to me, its main weakness. Indeed, intuitively, a modeler uses quad meshes, and most of their vertices are of degree four. In our preparation step, all the edge vertices created are basically of degree 4, and when they evolve through the subdivision process, their degree becomes 12, which should be 10. As a matter of facts, curvature is negative at these points. Moreover, the face vertices, unless the original face is a pentagon stays of degree 8 all the time instead of 10, which means positive curvature. Finally the face vertices, unless their previous degree was 5 which is unusual, are also extraordinary.

4.3

Smoothing the subdivided mesh

As I previously explained, I didn’t manage to smooth correctly the mesh. It is not even a question of continuity, each of my attempts on a cube lead to a kind of fractal. Still, I’ll explain What I did, and the future work. 4.3.1

Spline methods

Our first idea was to try and apply a box spline method. The basic things behind that choice were some results in quasicrystallography in [SO87], and also articles from De Bruijn [Bru81]. Indeed, There is a particular relation between a Penrose tiling, and grids in R5 . The first thing to be noticed is that each point can be easily related to a point in R5 with integer coordinates. Basically, the edges are only oriented in 5 directions. There is a special projection of R5 which projects the base vectors to these five directions in R2 :   1 cos 2π/5 cos 4π/5 cos 6π/5 cos 8π/5 0 sin 2π/5 sin 4π/5 sin 6π/5 sin 8π/5 Now, by choosing a centre and a particular length to be 1, each point in the Penrose tiling can be given integer coordinates in R5 , as shown in figure 14, and therefore, the points projected are part of a regular grid in R5 . That was the starting point to try and make an analogy with box splines methods. Indeed, in loop subdivision, implicitly, when they choose their directions, they use the fact that a cubic grid in R3 , when projected along vector (1, 1, 1) gives a regular triangle mesh. In fact, they use six directions, which means they project from R6 , but their projection is done so that pairs of vectors overlap. In 4-8-subdivision, is is quite the same thing, but the projection is done from R8 , with also vectors overlapping, and it is not just a projection, since their vectors project on the set (0, 1), (1, 1), (0, 1), (−1, 1). The projection creates a lattice structure in R2 , which is used to determine the neighbourhood considered in the subdivision mask, and the influence of the surrounding vertices.

Adviser : Victor Ostromoukhov

13

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

Figure 14: 5D coordinate system for a Penrose tiling in the rhombus form. On this figure, you can see that all points in a Penrose tiling can be given integer coordinates, and also that all points in the grid are not in the tiling, as for instance point 0, 1, 0, 1, 0 The problem in our method is that we don’t have all the points of the 5-dimensional grid. Consequently, if we use a classic box spline approach, there are some points where we will have holes in the structure. In terms of splines, these holes correspond to points where a control point and his nodal function should stand. Without these points, the area doesn’t get enough influence, and the regions shrink to the origin. Consequently, it is not possible to build nodal functions by projecting hypercubes in R2 because of these missing points. Our idea was to generate unusual nodal functions, by considering a mesh in R5 , which projected corresponds to a Penrose tiling, and to try and reproduce our subdivision process in R2 in this mesh, and see the structure it has. My approach was to find a regular 5 dimensional mesh, based on the simplest kind of points, with all neighbours at the same distance, and degree 10, and looking at the evolution of this particular mesh. Even if I found regular meshes respecting the symmetries of the tiling, and could express the subdivision process by plane intersections, it didn’t isolate particular volumes, and the position of the planes didn’t lead to any recursive process, which was the goal. Some of the planes I found are shown on figure 15. I programmed some small tools to manipulate 5 dimensional meshes, and project them, but still, when you consider that for instance, two planes in R5 can be tangent and intersect at a single point, it remains quite unintuitive. Moreover, There are many solutions in embedding the mesh in a 5D one, since two points P1 and P2 matching the rule P1 = P2 + k(1, 1, 1, 1, 1) are projected at the same place, and there can be multiple points from the original mesh projected at the same place.

Figure 15: Some cutting planes in involved in the subdivision process in R5

Adviser : Victor Ostromoukhov

14

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

To understand the link with box splines, I would say that if I had found a set of basic volumes, which once projected gave a Penrose tiling, and a recursive subdivision process on these volumes which gives an other Mesh in R5 , which once projected gave the subdivided Penrose tiling, it would have been possible to use these volumes instead of the cubes in box-splines to generate nodal functions, four our splines. I finally abandoned this way, since it was really time consuming for quite few results. It might be possible to have results in this way, but still, as our idea to build nodal functions was also uncertain, it can be worthless. However, we think there remains an other way to explore. In fact, a Penrose tiling can also be seen as a projection of a non regular grid in R5 . The basic idea lies in [Bru81]. We haven’t worked on it yet, since the idea came lately, but still it might be worth trying. De Bruijn describes an other kind of grid, in which there exists two kinds of intervals, of length 1 and φ, the golden ratio. This means using a different numbering system, with a non integer base. To make an analogy, lets consider the usual grids we use. For regular grids, we take 10 segments of length 1 which make a segment of length 10. In base b = 10, it means that 10b0 = b1 . In our case, in base b = φ, we have φk + φk+1 = φk+2 . This corresponds the the Fibonacci rule. To build recursively our grid, consider that you have two kinds of segments, of length a and b, which correspond to φk+1 and φk at step k + 1. Each segment of type b becomes a segment pf type a in the next step, and each segment of type b is subdivided in two segments respectively of types a and b. Again this corresponds to the Fibonacci process :      Fn 0 1 Fn+1 = Fn+1 1 1 Fn+2 As a matter of facts, even if we don’t really have a regular structure in an integer base, we still have a regular structure in base φ. It still seems quite fuzzy at the moment, but by projecting a five dimensional grid of that kind, the result is the dual of a Penrose tiling, and so by putting a vertex in each face, and edges between vertices corresponding to faces sharing an edge, you get a Penrose tiling. Still, we get more regularity than in any approach already used. The interesting part could be this subdivision process could define a set of hyper-rectangles, which projected would give nodal functions. 4.3.2

Eigenstructure analysis methods

An easier approach is to describe the subdivision process with a formal subdivision mask, and try to optimise it by studying the eigenstructure of the subdivision matrix. The first step was to study the evolution of our points. The reason why we didn’t use this method at first was that our structure is much more complex than others. Indeed in the description of the subdivision matrix in every other article, there is only a single type of ordinary vertices. Consequently, after a subdivision step, the neighbourhood of a vertices is still of the same form with new points. Consequently, the subdivision matrix is quite simple. The way it works is explained on figure 16. Again, this formulation doesn’t work in our case, for all points. The fact is that our subdivision scheme is similar to the 4-8 one since we have two kinds of points. In their scheme, the points of degree 8 stay with that degree, whereas points with degree 4 become points of degree 8 at the next step. Still, we have some differences. In their case, points of degree 8 once subdivided keep the same neighbourhood. In our case, everything is a bit more complex. Indeed, we have 15 different types of points, four of which loop in a Adviser : Victor Ostromoukhov

15

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

1 4

1 4

1 4

1 4

1 4

1 4

1 4

1 4

(a) Subdivision mask for a new face vertex 1 16

1 8

1 16

1 16

1 4

1 8

(b) Subdivision mask for a new edge vertex

c3

c5

1 8

1 8

(c) Subdivision mask for an old vertex, of the non-subdivided mesh

      1 4     

1 1 1 1 1 1 1 1 1

l2

l1

l5

c0,l0

l4

l8

l7

l6

c7

1 2

1 4

1 2

1 2

1 4

1 2

1 4

1

1 1 1 0 0 0 0 0

0

1

0

1 2

1 2

1 2

1 0

0 1 0 1

1 0 1 0

0 0 0

0 0 0

1 2

1 2 1 2

0 0 0 0

1 2

1 2

0

1

0 1 2

0 0 0 0

c4

c6

(d) position of the vertices in the subdivision matrix

1 4 1 2

c1

l3

c8

1 16



c2

1 2

0 0 0

0 1 1 0



1 2

        1  2  0   1 

1

1

1

2

(e) Subdivision matrix associated with the subdivision mask

Figure 16: An example of subdivision mask for regular vertices in the Catmull-Clark subdivision scheme

Adviser : Victor Ostromoukhov

16

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

cycle. These are all shown in figure 17. Consequently, if we just consider the usual way of defining the subdivision matrix, it doesn’t apply in our case. Still, for the four looping points, it is possible to define a subdivision matrix covering four steps of subdivision. The easiest approach to this problem was to define a formal subdivision mask at each point. To limit the number of variables, I chose to attribute a formal coefficient depending on the type and orientation of the two triangles sharing the edge between the centre and his neighbour. This led to a set of 20 coefficients for the neighbours, and still one coefficient per type of point, for self coefficients. These formal coefficients along with the evolution of all the points is shown on figure 17 With this original set of coefficients, I added the compulsory constraints for a subdivision scheme, being that for each point, the sum of the surrounding coefficients, plus the own coefficient should be 1. Moreover, for me, it was of the utmost importance to keep the form of the triangles. Indeed, if the subdivision mask lead to a deformation of the triangles, to become equilateral, then all our vertices become extraordinary. Consequently, the second set of constraints was only considering surrounding coefficients, and made that if the surrounding points were at their good geometric position, defining a neighbourhood of the right shape, then the centre was to be put in his good position. Here is an example of the two constraints generated for a point of type C : • The sum of the surrounding coefficients plus own coefficients as to be 1 – cc + m + 2d + 2r + e = 1 • The centre has to be in his good position – the constraint is only useful along the axis of symmetry – m+

2d φ

4π cos 2π 5 + 2r cos 5 − φd = 0

I solved the system with mathematica, and had some remaining degrees of liberty. I then programmed with mathematica the whole subdivision process, so that it kept the formal coefficients in the position of the points. With that, I computed the subdivision matrices for the four looping points. I never managed to compute the formal eigenstructure of these matrices, since it took too much time. I also tried to set arbitrarily the remaining free coefficients to see the result, and each attempt led to something looking like figure 18. Actually, this is the kind of results I obtained with every method I tried. Later on, by discussing with Neil Stewart, an other researcher in the LIGUM, I discovered that it was also better for the subdivision mask that all coefficients be strictly in ]0, 1[. Indeed, by changing the subdivision mask of an existing method, the resulting surface was C 0 but in any point not C 1 . I thought that the constraints I had fixed so that the central point be in his right geometrical position was enough. Consequently, I created inequations for every coefficient, and reduced this set of inequations, and unfortunately, there was no solution. Therefore, I have to change my program, and suppress the only guess I made to reduce the amount of coefficients. In fact, to understand that, it sets that the final result remains in the convex hull of all the points influencing the position. Without this condition, my set of constraints is not enough, since the constraint on the geometrical position is only “planar”, and the position of the influenced point could be disastrous on the orthogonal direction of the plane defined by his ideal neighbourhood. Adviser : Victor Ostromoukhov

17

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

Figure 17: Formal coefficients of my schemes, and evolution of all the points. New points are of type A and F, and cycling points for which the subdivision matrix can be defined are of type E1 ...E4 . This subdivision scheme was too restrictive to have only values between 0 and 1

Figure 18: Fractal subdivision result corresponding to most of the subdivision schemes I chose, applied on a cube

Adviser : Victor Ostromoukhov

18

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

What is most surprising with that method, is that even subdivision masks which would intuitively fit don’t work. For instance, I also tried to compute the new position of a point as the centroid of his neighbours. but still the result is all bumpy. As this seems very weird, and as by checking my program over and over I don’t see any mistake, I plan to reprogram the whole thing. The last method I tried came from a presentation we had in the lab from a PhD student from Berlin, Andy Nealan, who was working on a method to produce a 3D model by sketching its shape. He also had to smooth the mesh he had to produce a good result. In his method, he solved a system of constraints, in which he had specified that all edge lengths should be nearly the same. From that my method was for each neighbour to generate a displacement vector in the direction of the edge, pushing or pulling the point depending on whether the edge was too short or too long than what it should be. In fact, it was equivalent to consider each edge as a spring. The result was not good either. In fact, when the ring surrounding a point is too short, the point can go inwards or outwards, and consequently the results are not very predictable. As I will explain later, I went to the SIGGRAPH. In this conference, I attended to many courses on geometry and meshes, which gave me other ideas about how to smooth the mesh. Currently, the best smoothing methods for meshes are based on the minimization of an energy function based on the Laplacian. There exists two kinds of Laplacian. the first one, the uniform Laplacian, tends to move any vertex to the centroid of his neighbours, which is not good in our case, but there exists an other kind of Laplacian, the cotangent Laplacian, the energy function of which is more difficult to minimize, but which leads to better results. I didn’t have enough time to test this method, but it is worth trying. 4.3.3

Future work

As we didn’t have a good result yet, we discussed the next steps before my departure : . Box spline method based on the φ base pentagrid – Study the grid, and the projection – What are box-splines in a non-integer base ? . Test other kinds of subdivision masks – Reprogram or extend the previous programme – Generate subdivision masks with all coefficients in ]0, 1[ – Generalize the notion of subdivision matrix to all of our points . Laplacian methods – Document on what the formula of the Laplacian stands for (exterior calculus) – See whether this method preserves the shape of the triangles or implicitly assumes they should be equilateral – generalize this method meant to smooth a given mesh to subdivision surfaces

Adviser : Victor Ostromoukhov

19

Training period at the LIGUM, University of Montreal

5 5.1

Vincent Nivoliers

About the internship Management

I found the way I was directed, and helped very formative. Indeed, when I arrived, two subjects were ready for me and I just had to pick one up. Moreover, these subjects were really part of Victor’s research, and interest, and consequently, we discussed a lot about it, and I was not left alone working on it. The beginning had to very quick, since Victor was to be absent about 5 or 6 weeks during the training period, and I had to be able to work alone. Still, I was not completely alone during these periods, since another researcher, Neil Stewart, who was writing a book on subdivision surfaces could answer my questions.

5.2

Benefit of the training period

The internship brought me a lot. Of course, I learnt many things about the subject, and a new programming language, but what was really interesting to me was that I was really doing research with other people, discussing on the problems quite every day, looking for new solutions in other articles, and meeting other researchers to discuss on the subject. I previously mentioned it, I attended to SIGGRAPH, which is the biggest conference in computer graphics. I was offered the inscription, the plane, and the housing, since it took place in San-Diego, for five days between 4th and 9th August. I had the opportunity there to meet many people, attend to presentations and courses, and learnt a lot, not only on my single subject, but also more about the computer graphics community, and the mechanisms of publication. An other positive point was that I was in a lab with many other students working on their master thesis, or PhD, and by discussing with them, I also saw other matters of interest in computer graphics. Presentations were organised every week, and students were invited to present an article to be presented at SIGGRAPH, or one of their own if they ever published one. Two articles were presented every week, and I also took part of it. There really was a good communication in the LIGUM, and it helped a lot in making the training period constructive. The subject I worked on is not over, and there are still many ways to explore. I am now in touch with Victor, and we plan to go on with this collaboration. We might meet again in November, since he has to come in France.

6

Conclusion

In a nutshell, the training period can be summarized in two main problems : mapping the Penrose recursive subdivision process to any kind of mesh of any topology, and find a subdivision mask or any method to smooth the subdivided mesh. I managed to find a way to solve the first problem. This was interesting, since it meant our subdivision process can be used on any mesh, without complete remeshing, which is quite painful, and therefore is usable, since it is not limited to Penrose like meshes. However, there is still a small problem, since the preparation step creates a lot of extraordinary vertices. Consequently, it could be interesting to find other ways to map the subdivision process with less of these points, or work on some particular meshes, like quad meshes, which are the most used, Adviser : Victor Ostromoukhov

20

Training period at the LIGUM, University of Montreal

Vincent Nivoliers

The second problem is still to be addressed. We tried many things, and have still many things to test. Consequently, our subdivision process is not usable yet. Still, our collaboration with Victor is not finished and we shared the remaining tasks, in collaboration with Neil Stewart. Once the subdivision process, the next step is to implement it efficiently, and try to publish it.

References [Bru81] N. G. de Bruijn. Algebraic theory of Penrose’s non-periodic tilings of the plane. I. PKNAW, 84:39–52, 1981. [CC78]

E. Catmull and J. Clark. Recursively generated B-spline surfaces on arbitrary topological meshes. Computer-Aided Design, 10:350–355, September 1978.

[CRE01] Cohen, Riesenfeld, and Elber. Geometric modeling with splines: an introduction. A. K. Peters, Ltd., Natick, MA, USA, 2001. [Doo78] D. W. H. Doo. A subdivision algorithm for smoothing down irregularly shaped polyhedrons. Proc. Interactive Techniques in Computer Aided Design (Bologna), pages 157–165, September 1978. [DS78]

D. Doo and M. Sabin. Behaviour of recursive division surfaces near extraordinary points. Computer-Aided Design, 10:356–360, September 1978.

[GS87]

Grunbaum and Shephard. Tilings and Patterns. W. H. Freeman, 1987.

[Kob00] Leif Kobbelt. Sqrt(3)-subdivision, April 19 2000. [Loo87] Charles Theorell Loop. Smooth Subdivision Surfaces Based on Triangles. PhD thesis, University of Utah, 1987. [ODJ04] Victor Ostromoukhov, Charles Donohue, and Pierre-Marc Jodoin. Fast hierarchical importance sampling with blue noise properties. ACM Transactions on Graphics, 23(3):488–495, 2004. Proc. SIGGRAPH 2004. [Pra98]

Hartmut Prautzsch. Smoothness of subdivision surfaces at extraordinary points. 1998.

[Rei95]

Ulrich Reif. A unified approach to subdivision algorithms near extraordinary vertices. Computer Aided Geometric Design, 12(2):153–174, 1995.

[SO87]

P. Steinhardt and S. Ostlund. The Physics of Quasicrystals. World Scientific, 1987.

[VZ01]

Luiz Velho and Denis Zorin. 4-8 subdivision. Computer Aided Geometric Design, 18(5):397–427, 2001.

[Zor96]

Denis Zorin. Ck continuity of subdivision surfaces, November 01 1996.

Adviser : Victor Ostromoukhov

21