source: trunk/VUT/obsolete/overview_old.tex @ 71

Revision 71, 3.8 KB checked in by mattausch, 20 years ago (diff)
Line 
1\newcommand{\tab}{\hspace{2mm}}
2\chapter{Overview}
3
4
5 The visibility work package aims to develop methods for making use of
6restricted visibility in large scenes. The major goal of these methods
7is to avoid wasting of the computational power on currently invisible
8parts of the scene. To address this goal we develop new methods for
9online visibility culling and offline visibility preprocessing. The
10online visibility culling is either used to render only visible part
11of the scene or to provide queries which determine visible part of the
12scene in runtime. Visibility preprocessing provides partitioning of the
13view space into view cells and for each view cell it calculates a
14potentially visible set.
15
16
17\section{Module Class Hierarchy}
18
19 The visibility work package consist of a module which is integrated
20into the game engine and an external module which deals with
21preprocessing. One of the goals of the design of the module class
22hierarchy has been easy portability of the developed methods to other
23game engines. The resulting class structure clearly separates the
24actual engine dependent parts from the game engine independent
25algorithmic parts.  We have used name spaces to separate the engine
26dependent parts (name space Ogre) from the engine independent parts
27(name space GtpVisibility). The external visibility preprocessing module
28defines its own name space (GtpVisibilityPreprocessor).
29
30 An overview of the important classes of the visibility work package and
31their integration into the Ogre engine is depicted in
32Figure~\ref{fig:classes}.
33
34\begin{figure}[htb]
35  \centerline{
36    \includegraphics[angle=270,width=1.0\textwidth]{../classes}
37    }
38  \caption{Overview of the visibility work packages classes and their integration
39    into the Ogre game engine.}
40  \label{fig:classes}
41\end{figure}
42
43The diagram shows that the module integrated into the engine consists
44of three main parts (CullingManager, QueryManager,
45PreprocessingManager) which are encapsulated in a helper class
46(Visibility Manager). The helper class then deals with the
47initialization of the contained parts and allows an easy communication
48between them.
49
50\section{Visibility Culling}
51
52Visibility culling seamlessly integrates into the rendering
53loop and eliminates most invisible objects from being send to the
54pipeline. Visibility culling is implemented by instances of the CullingManager
55class. We will provide several implementations which can be easily
56switched at runtime and so the best technique for the particular scene
57and scene representation can be selected. Note that the Ogre
58integration design allows to exploit all already existing methods for
59scene management, such as octree, BSP tree, or plain scene graph.
60
61
62\section{Visibility Queries}
63
64Visibility queries determine the visible geometry for a given view
65point in the scene. Additionally they can also report the visible
66scene hierarchy nodes. Visibility queries are implemented by
67instances of the QueryManager class. Note that some of these instances
68will make use of the preprocessed visibility data through the use of
69PreprocessingManager.
70
71\section{Visibility Preprocessing}
72
73Visibility preprocessing precalculates visibility for all viewpoints
74corresponding to cells of a view space partitioning. The visibility
75preprocessor is implemented as a standalone module which imports files
76generated by the PreprocessingManager. The results of the visibility
77computation will be exported to the file which can then be loaded by
78the PreprocessingManager and used inside the engine.
79
80 Apart from the scene definition file the preprocessor will be able
81to import the view cell definition. In this case it will assume the
82view cells have to be described as meshes satisfying set of
83requirements. Alternatively the module can generate view cells by
84automatic view space partitioning.
85
86
87%{\textbullet}\tab\textbf{Construction module for tree multiresolution models.}
88
Note: See TracBrowser for help on using the repository browser.