source: trunk/VUT/doc/DummyModules/overview.tex @ 71

Revision 71, 3.8 KB checked in by mattausch, 20 years ago (diff)
  • Property svn:executable set to *
RevLine 
[67]1\newcommand{\tab}{\hspace{2mm}}
2\chapter{Overview}
3
4
[71]5 The visibility workpackage aims to develop methods for making use of
[67]6restricted visibility in large scenes. The major goal of these methods
[71]7is to avoid wasting computational power on currently invisible parts
8of the scene. To address this goal, we develop new methods for online
9visibility culling and offline visibility preprocessing. The online
10visibility culling is either used to render only visible part of the
11scene or to provide queries which determine visible parts of the scene
12in runtime. Visibility preprocessing provides partitioning of the view
13space into view cells, and for each view cell it calculates a
[67]14potentially visible set.
15
16
17\section{Module Class Hierarchy}
18
[71]19 The visibility workpackage consists of a module which is integrated
[67]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
[71]24actual engine-dependent parts from the game engine independent
[67]25algorithmic parts.  We have used name spaces to separate the engine
26dependent parts (name space Ogre) from the engine independent parts
[71]27(name space GtpVisibility). The external visibility preprocessing
28module defines its own name space (GtpVisibilityPreprocessor).
[67]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{
[70]36    \includegraphics[angle=270,width=1.0\textwidth]{../classes}
[67]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,
[71]45PreprocessingManager), which are encapsulated in a helper class
[67]46(Visibility Manager). The helper class then deals with the
[71]47initialization of the contained parts and allows easy communication
[67]48between them.
49
50\section{Visibility Culling}
51
[71]52Visibility culling seamlessly integrates into the rendering loop and
53eliminates most invisible objects from being sent to the pipeline.
54Visibility culling is implemented by instances of the CullingManager
[67]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
[71]80 Apart from the scene definition file, the preprocessor will be able
[67]81to import the view cell definition. In this case it will assume the
[71]82view cells have to be described as meshes satisfying a set of
83requirements. Alternatively, the module can generate view cells by
[67]84automatic view space partitioning.
85
86
87%{\textbullet}\tab\textbf{Construction module for tree multiresolution models.}
Note: See TracBrowser for help on using the repository browser.