Coding and Compression of Three Dimensional Meshes by Planes

Coding and Compression of Three Dimensional Meshes by Planes

Abstract

The present paper suggests a new approach for geometric representation of 3D spatial models and provides a new compression algorithm for 3D meshes, which is based on mathematical theory of convex geometry. In our approach we represent a 3D convex polyhedron by means of planes, containing only its faces. This allows not to consider topological aspects of the problem (connectivity information among vertices and edges) since by means of the planes we construct the polyhedron uniquely. Due to the fact that the topological data is ignored this representation provides high degree of compression. Also planes based representation provides a compression of geometrical data because most of the faces of the polyhedron are not triangles but polygons with more than three vertices.

Rafik  Aramyan *, Gagik Mkrtchyan **, Arman Karapetyan ***

  1. Institute of mathematics of NAS of Armenia;
    e-mail: rafikaramyan@yahoo.com

  2. ixibit;
    e-mail: mkrtchyan_gagik@yahoo.com

  3. ixibit;
    e-mail: arman.karapetyan@ixibit.com

1 Introduction

In recent years more and more three dimensional (shortly 3D) spatial models become increasingly popular and available for advertising, World Wide Web, 3D laser scanning systems and etc. Highly detailed models are also commonly adopted in design of computer graphics. Mostly 3D graphical models are represented as complex polyhedral meshes, composed of topological and geometrical data. Topological data provides connectivity information among vertices (e.g., adjacency of vertices and edges), while geometrical attributes describe the position for each individual vertex. In terms of implementation, most of 3D graphical file formats consist of list of polygons, each of which is specified by its vertices indexes and their attributes. Generally speaking, real world 3D models are expensive to render, awkward to edit, and costly to transmit through networks since they contain tremendous number of vertices and polygons. For reduction of storage requirements and transmission bandwidth, it is desirable to compress these models with lossless and/or loss compression methods, which keep distortion within a tolerable level. This demands that meshes would be approximated with different resolutions and would be reduced by the coarse approximation through sequences of graphic simplifications. Simplification and compression of 3D meshes data have been studied by many researchers. Most of the early works were focused on the simplification of graphical models.

Schroeder [1] proposed a decimation algorithm that significantly reduced the number of polygons required to represent an object. Turk [2] presented an automatic method of creating surface models at several levels of detail from an original polyhedral description of a given object. Hoppe [3] address the mesh optimization problem of approximating a given point set by using smaller number of vertices under certain topological constraints. Deering [4] discuses the concept of generalized triangle mesh which compresses a triangle mesh structure. Taubin [5] presented a topological surgery algorithm which utilized two interleaving vertex and triangle trees to compress a model. Hoppe [6] proposed a progressive mesh compression algorithm that is applicable to arbitrary meshes.

The present paper suggests a new approach for geometric representation of 3D spatial models and provides a new compression algorithm for 3D meshes. In contrast to conventional representations here we suggest plane surface based representation for 3D meshes, which is based on mathematical theory of convex geometry. In our approach we represent a 3D convex polyhedron by means of planes, containing only its faces. This allows not to consider topological aspects of the problem (connectivity information among vertices and edges) since by means of the planes we construct the polyhedron uniquely. Due to the fact that the topological data is ignored this representation provides high degree of compression. Also planes based representation provides a compression of geometrical data because most of the faces of the polyhedron are not triangles but polygons with more than three vertices. For non convex 3D meshes we initially divide them into the groups of convex polyhedrons, and then each convex polyhedron is separately represented by its set of planes. Here we suggest an algorithms for division of non-convex 3D meshes, which divides into the convex parts by separation of convex and concave surface elements.

The features and advantages of our result will be more fully understood and appreciated upon consideration of its detailed description. First we need to describe a plane in 3D space.

2 Representation of a plane

We consider only oriented planes since 3D models can be represented by single sided surface. By definition, an oriented plane is a plane with specified normal direction. An oriented plane will be denoted by . Each oriented plane divides space into two hemispaces: and . By we denote the hemispace on direction of the plane’s normal, and by we denote the hemispace on its inverse direction (see Fig. 1). We consider the hemispace with its boundary, so it is closed. An oriented plane can be represented by means of the following pair . Where is the spatial direction of its normal, which means that , where is the unit sphere in the three dimensional Euclidian space . And is the distance of from the origin O including its sign, which means that , and if the origin O belongs to and if the origin O belongs to (see Fig. 2).

Fig. 1.

Fig. 2.

Representation of a spatial direction. Let be a spatial direction, then by using spherical coordinates it can be represented as , where is the angle between z-axis and , and is the angle between x-axis and the projection of the onto the plane. Note that the variable changes in the interval , while changes in the interval . Since spatial direction is represented by two numbers, and a plane is a pair of a spatial direction and distance . Thus any plane can be represented by three numbers.

3 Representation of a convex polyhedron

Let be a convex polyhedron, its faces can be numbered by . Let be an oriented plane containing -th face of the polyhedron (), which has outside directed normal and be the normal of ( is the unit sphere in 3D space) and be the distance (including sign) of the plane containing -th face of the polyhedron from the origin O, ().

For a convex polyhedron we will have a collection of oriented planes , or the collection of pairs , . This procedure allows representation of any convex polyhedron by a collection of planes (see Fig. 3).

Fig. 3.

As a result any convex polyhedron can be represented by a collection of triplets, since any plane can be represent by means of three numbers

(3.1)

The following theorem proves the uniqueness of this representation.

Theorem 1

Let be a convex polyhedron and be the collection of its oriented planes. We have

(3.2)

Hence P is uniquely determined by its collection of oriented planes.

Proof 1

Let be a convex polyhedron and be the oriented plane containing -th face of the polyhedron (), which has outside directed normal. It follows from the convexity that the polyhedron P belongs to hemi space for each . Hence the polyhedron P belongs to the intersection of that hemi spaces . Now we have to conform, that . Indeed, If a point does not belong to , then exists a number for which does not belong to hemi space , hence it also does not belong to intersection . The proof is complete.

It follows from the above theorem that any convex polyhedron can be uniquely represented by means of oriented planes containing its faces, i.e. by means of the system . Note that in cases of rotation and/or translation of a polyhedron its new representation can be recalculated very easily. Let a polyhedron , with corresponding system , is translated by a vector . We denote by the new system of representation a .

Theorem 2

Let be a convex polyhedron and be the collection of its oriented planes. Let be the translation of by a vector . We have

(3.3)

where is the scalar product of the vectors and .

Proof 2

It is easy to understand that after translation, the normal direction of -th face does not change, and can be given by the following simple relations:

(3.4)

Let a polyhedron , with corresponding system , is rotated with respect to the origin O. We denote by the system of representation of .

Theorem 3

Let be a convex polyhedron and be the collection of its oriented planes. Let be the rotation of with respect to the origin O.. We have

(3.5)

where is the rotation of the direction by the same rotation.

Proof 3

It is easy to understand that after rotation, the distance of the plane containing -th face does not changes, and can be given by the following simple relations:

(3.6)

4 An example plane based representation of 3D polyhedron

Plane based representation for cube. Let be a cube, which six faces are numerated as shown in Fig. 4. We denote by the normal of -th face, and the corresponding system of planes will be . Now by using spherical coordinates the cube can be represented by the following system:

By using this representation the cube can be coded by means of number, which will require only bytes for its storage. For comparison with conventional coding, we represent the cube as an indexed triangular mesh. At first step we should numerate (create indexes) the vertices of the cube. We do it as shown in the Fig. 5 (note that each vertex is coded by three numbers, which are its x, y, z coordinates), and for storing it would be required bytes. Additionally should be stored the code for connectivity information among vertices as follows:

which requires bytes. Thus by means of triangular mesh is needed

bites, which is three times more than the plane based storage requirement.

Fig. 4.

5 Lossless versus loss compressions

Lossless compression Pure plane based representation of 3D meshes provides lossless compression, since we can exactly restore the initial mesh. As lossless compression its compression ratio depends from polyhedron’s shape, and for some polyhedrons it can provide big value of compression.

In general case the required storage can be calculated for both types of coding as following: Let P be a convex polyhedron for which the number of faces are and vertices are . For coding the polyhedron by means of plane based approach will be required bytes. For coding the polyhedron by triangular mesh will be required bytes, where is number of triangles on the faces. At worst case, when there is only one triangle on each face we would require to store bytes.

Loss compression The plane base coding approach additionally allows lossy compression of 3D meshes. The plane based coding is not very sensitive to the removal of some planes from the system of polyhedrons representation, while in contrast to that triangular meshes are quite sensitive to the vertices removal. If a single plane is removed from the plane base representation of a polyhedron it does not change other planes since there is no need of separate topological information. We suggest the following two algorithms for lossy compression: A plane can be removed from the system of representation of a polyhedron if its corresponding face has much smaller surface than other faces. Thus for a given triangle if its area is smaller than certain value we can remove its corresponding plane from the representation. For two neighbor triangles we can replace their corresponding planes by a single plane if the angle between those planes is quite small (are nearly parallel). Thus for two given neighbor triangles if the angle between their normals is smaller than certain number , their corresponding planes can be combined into one plane.

6 Representation of a non-convex polyhedron

We suggest two algorithms for a non-convex polyhedron representation.

1. The first algorithm is the following: we divide a non-convex polyhedron into convex polyhedrons and each of them is represented by its collection of planes.

2. The second algorithm is the following: we divide the surface of a non-convex polyhedron into pseudo-convex and pseudo-concave parts and each of them is represented by its collection of planes. We denote vertices of an initial triangle as and by the oriented plane containing that triangle with outside directed normal. We numerate in such a way that in the plane the insider space of the triangle would be on the left side of the vectors , , when we look from the positive hemispace bounded by .

Let and are two triangles. We call them positively oriented to each other if the triangle belongs to the negative hemispace bounded by and the triangle belongs to the negative hemispace bounded by (see Fig. 5).

Fig. 5.

Let and are two triangles. We call them negatively oriented to each other if the triangle belongs to the positive hemi space bounded by and the triangle belongs to the positive hemi space bounded by (see Fig. 6).

Fig. 6.

Definition 1. We say that a collection of triangles is pseudo-convex if each two of them are positively oriented to each other .

Definition 2. We say that a collection of triangles is pseudo-concave if each two of them are negatively oriented to each other .

We suggest the following algorithm for division of the given non-convex triangular mesh into pseudo-convex and pseudo-concave parts.

We choose a triangle, which with its neighbor can organize a pseudo-convex collection. Then we verify one by one their neighbor triangles are they positively oriented with all other triangles of the pseudo-convex collection or not, if yes then we add that triangle into the collection and take next neighbor triangle. We end this process if all the neighbors that are not included yet into the pseudo-convex collection are negatively oriented. Thus we get one of the pseudo-convex parts and can remove it from the originally given non-convex mesh. Then by using same procedure we try to organize another pseudo-convex collection, and after ”filling” it with all positively oriented triangles, remove it from the non-convex mesh. We continue this until it becomes impossible to organize any pseudo-convex collection.

When all pseudo-convex parts are removed from the original non-convex mesh we start to organize pseudo-concave collections. We choose a triangle, which with its neighbor can organize a pseudo-concave collection. Then we verify one by one their neighbor triangles are they negatively oriented with all other triangles of the pseudo-concave collection or not, if yes then we add that triangle into the collection and take next neighbor triangle. We end this process if all the neighbors that are not included yet into the pseudo-concave collection are positively oriented. Thus we get one of the pseudo-concave parts and can remove it from the originally given non-convex mesh. Then by using same procedure we try to organize another pseudo-concave collection, and after ”filling” it with all negatively oriented triangles, remove it from the non-convex mesh. We continue this until it becomes impossible to organize any pseudo-concave collection.

Using above presented algorithms we divide the given non-convex mesh into pseudo-convex and pseudo-concave parts. If occasionally some triangles remain after the above mention procedures of division into pseudo- convex and pseudo-concave parts they can be separately or inside some groups be assumed as pseudo-convex or pseudo-concave parts.

When the given non-convex mesh is fully divided into pseudo-convex and pseudo-concave parts we start the process of their polygonization, under which is assumed the unification of all neighbor triangles into polygons if their corresponding oriented planes coincide. After polygonization of which we denote by , also to each collection we need to include additional planes which will create (cut) the boundaries of the pseudo-convex and pseudo-concave parts since their shapes are not always closed surfaces. Because each of the pseudo-convex and pseudo-concave parts represents the part of the surface of originally given non-convex mesh, after their combination the whole surface can be reconstructed uniquely. As a result of this procedures the original non-convex polyhedral mesh will be coded by the groups of the planes , where each of the group will represent the certain piece of the whole surface.

Here we compare the storage requirements of proposed plane based and conventional coding methods.

Fig. 7.

Let be a non-convex polyhedron shown in Fig. 7. For its coding by means of plane based approach we divide its surface into pseudo-convex and pseudo-concave parts. As shown in figure, the pseudo-convex part contains 9 polygons, and additionally we need to include 4 planes for limitation of its bounding borders. So for its storage by means of the planes based approach will be required bytes. As shown in figure, the pseudo-concave part contains 5 polygons, and additionally we need to include 4 planes for limitation of its bounding borders. So for its storage by means of the planes based approach will be required bytes. Thus for coding the non-convex whole polyhedron P by means of the plane based approach will be required to store bytes. If the polyhedron would be stored by means of conventional quadrangular mesh based approach then we would need to store the following. For storing the data of the 16 vertices would be required bytes. Additionally should be stored the connectivity information among the vertices, which requires the storage of 14 quadrangles such as bytes. Thus for coding the non-convex whole polyhedron P by means of the quadrangular mesh will be required bytes, which is more than three times more than for the plane based storage is required.

7 Conversion formulas

In this section we present mathematical formulas for conversion of a triangular 3D mesh into planes based representation. Let be a triangle of a triangular polyhedral mesh, and we should convert it into the plane base representation with outside directed normals. It is easy to mention that is the normalized vector product of the vectors , :

where denotes the length of the vector. When vertices are given by Euclidean coordinates , by means of well known formulas they can be found by the corresponding coordinates . It easy to see that is the scalar product of the vectors and , where is the origin.

The spherical coordinates , of the can be calculated by the following formulas:

References

  1. W. J. Schroeder, ”Decimation of Triangle Meshes”, Computer Graphics Proceedings, Annual Conference Series, pp. 65-70, ACM SIGGRAPH, 1992.
  2. Turk, ”Re-tiling Polygon Surfaces”, Computer Graphics Proceedings, Annual Conference Series, pp.55-64, ACM SIGGRAPH, July, 1992.
  3. Hoppe et al., ”Mesh Optimization”, Computer Graphics Proceedings, Annual Conference Series, pp.19-26, ACM SIGGRAPH, august, 1992.
  4. Deering, ”Geometry Compression”, Computer Graphics Proceedings, Annual Conference Series, pp.13-20, ACM SIGGRAPH, august, 1995.
  5. Taubin, ”Geometric Compression Through Topological Surgery”, Tech. Rep. Rc-20340, IBM Watson Research Center, January, 1996.
  6. Hoppe, ”Progressive Meshes”, Computer Graphics Proceedings, Annual Conference Series, pp.99-108, ACM SIGGRAPH, august 1996.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
""
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
   
Add comment
Cancel
Loading ...
130319
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description