source: trunk/UPV/GTGeometry/doc/overview.tex @ 138

Revision 138, 7.0 KB checked in by hidalgo, 19 years ago (diff)

Uploaded WP4 Dummy code(Geometry)

Line 
1\newcommand{\tab}{\hspace{2mm}}
2\chapter{Overview}
3
4This work package consists in developing a continuous multiresolution
5model for polygonal objects that includes connectivity information
6and uses basic primitives like triangle strips to reduce the
7amount of information stored and the time required for rendering.
8Our results will be specifically applied to allow the efficient
9rendering of complex outdoor scenes, including plants and trees.
10
11
12The work consists of the following main tasks:
13\begin{enumerate}
14\item Developing a new multiresolution model with connectivity information
15for general meshes; we call this model LODStrips.
16
17\item Developing a new multiresolution model to represent plants and
18trees; we call this model LODTrees.
19\end{enumerate}
20
21To achieve this goal we are developing two modules, one for each
22multiresolution model:
23
24
25{\textbullet}\tab\textbf{Module for General Meshes.}
26
27This module contains functions that handle the levels of detail
28of objects made of polygonal meshes. With these functions, the
29user will be able to get information about the geometry and the
30current level of detail. Besides, one has the possibility of
31changing the complexity level of the model interactively. The meshes the
32module works with use triangle strips to reduce storage usage
33and to speed up realistic rendering.
34
35
36This module is implemented in the \textit{Geometry::LodStripsLibrary}
37class, which inherits from the \textit{Ogre::Renderable} and
38\textit{Ogre::Movable} classes for its integration with the engine.
39
40{\textbullet}\tab\textbf{Module for Plants and Trees.}
41
42This module contains functions that handle the levels of detail
43of plant and tree models. These models support separate processing
44of leaves and branches. Branches, including the trunk, are handled
45by the general mesh module. Leaves are represented using their
46own specific variable multiresolution model. In order to get
47the proper foliage geometry, the user can interact with this
48module according to his necessities.
49
50
51All this functionality is integrated into the \textit{Geometry::LodTreeLibrary}
52 class, which has as parent the \textit{Ogre::Renderable} and
53\textit{Ogre::Movable} classes for its correct behaviour inside the engine.
54
55
56
57These modules are accompanied by four other support modules that
58will be independent:
59
60
61
62{\textbullet}\tab\textbf{Simplification Module.}
63
64This module is used by both models, general mesh and the plant
65and tree models. It contains functions that take a triangle mesh
66as input and generate simplified versions of 3D objects made
67out of triangles, while preserving its appearance.
68
69
70It receives a pointer to a \textit{Geometry::Mesh} object containing
71the model to be simplified. For general meshes, this input is
72a triangle mesh, while for leaf sets (foliage) is a set of leaves,
73each made of two texture-mapped triangles.
74
75
76As result of the simplification process, it returns a simplification
77sequence represented by an object that contains:\\
78\begin{itemize}
79\item
80For general meshes: for each simplification step the module returns
81the edge to be collapsed, the two triangles begin removed, and
82the new triangles added to the representation. All the information
83of the steps is included in a \textit{Geometry::MeshSimplificationSequence}
84object.
85\item For leaf sets (foliage): for each simplification step the module
86returns the collapsed leaf, the two leaves being removed, and
87the new leaf added to the representation. This information is
88included in a \textit{Geometry::TreeSimplificationSequence} object.
89\end{itemize}
90
91This module consists of the \textit{Geometry::MeshSimplifier} for general
92meshes and the \textit{Geometry::TreeSimplifier} for plants and trees. The
93\textit{Geometry::MeshSimplifier} is a virtual class and must be derived in a
94class that implements the simplification algorithm. This is done by means of
95the classes \textit{Geometry::ImageBasedSimplifier} and
96\textit{Geometry::GeometryBasedSimplifier}.
97
98
99{\textbullet}\tab\textbf{Stripification (Strip Search) Module.}
100
101
102This module implements methods that extract triangle strips from
103triangle meshes. It receives a pointer to a \textit{Geometry::Mesh}
104object containing the model to be stripified and returns the
105stripified mesh, contained in another \textit{Geometry::Mesh} object. It
106consists of the virtual class \textit{Geometry::Stripifier} and
107the class \textit{Geometry::CustomStripifier} that implements the
108stripifying algorithm.
109
110
111{\textbullet}\tab\textbf{Construction module for general multiresolution models.}
112
113This module stores general multiresolution mesh representations according to
114the LODStrip format. Its functionality is supported by the \textit{LodStrips}
115\textit{Constructor} class.
116
117
118It takes as inputs the strips provided by the stripification module
119(\textit{Geometry::Mesh} class) and the edge collapse sequence computed by the
120simplification module (\textit{Geometry::MeshSimplificationSequence} class). It
121returns a file containing the mesh generated according to the
122\textit{Geometry::Mesh} object structure. Besides, it outputs a LodStrips file
123with the multiresolution information.
124
125
126
127{\textbullet}\tab\textbf{Construction module for tree multiresolution models.}
128
129This module stores tree multiresolution representations using our own specific
130file format. It consists of the \textit{Geometry::TreeConstructor} class.
131
132It receives a file including the geometry information of the foliage
133(\textit{Geometry::Mesh} object) and also a file describing the simplification
134steps of the leaves (\textit{Geometry::TreeSimplificationSequence} object). The
135output this module returns is a file describing the multiresolution tree
136object. In addition, it references the file with the original set of leaves,
137the one with the original geometry of the trunk and branches and the LodStrips
138file obtained after the simplification of the trunk and branches mesh.
139
140
141Besides, this modules structure requires the auxiliary
142\textit{Geometry::Serializer}, \textit{Geometry::Serializable} and
143\textit{Geometry::Mesh} classes. The \textit{Mesh} class represents the
144structure that will store the information about the mesh that we will work
145with. The \textit{Geometry::Serializer} and \textit{Geometry::Serializable}
146classes implement a method that reads information from a file and stores it in
147our mesh structure. It also provides a method to save this information to a
148file.
149
150
151
152%******************** Diagrama general de clases ************************
153\begin{figure}
154\includegraphics[scale=0.7]{../html/inherit__graph__0.png}\\
155\includegraphics[scale=0.7]{../html/inherit__graph__1.png}\\
156\includegraphics[scale=0.7]{../html/inherit__graph__2.png}\\
157\includegraphics[scale=0.7]{../html/inherit__graph__3.png}\\
158\includegraphics[scale=0.7]{../html/inherit__graph__4.png}\\
159\includegraphics[scale=0.7]{../html/inherit__graph__5.png}\\
160\includegraphics[scale=0.7]{../html/inherit__graph__6.png}\\
161\includegraphics[scale=0.7]{../html/inherit__graph__7.png}\\
162\includegraphics[scale=0.7]{../html/inherit__graph__8.png}\\
163\caption{Workpackage general class diagram .}
164\end{figure}
165
Note: See TracBrowser for help on using the repository browser.