1 | View Space Partitioning and PVS computation modules
|
---|
2 | ===================================================
|
---|
3 |
|
---|
4 |
|
---|
5 | This directory contains a standalone application implementing the view
|
---|
6 | space partitioning and PVS computation modules of the GTP WP3.
|
---|
7 |
|
---|
8 | The usage of the application is illustrated in the example scripts:
|
---|
9 |
|
---|
10 | scripts/generate_viewcells (view space partitioning)
|
---|
11 | scripts/preprocess_visibility (PVS computation)
|
---|
12 |
|
---|
13 | These are simple shell scripts for usage with cygwin. It is easy to modify the
|
---|
14 | scripts for using with windows command shell.
|
---|
15 |
|
---|
16 | The precompiled application binary as well as the linked libraries can be found in the
|
---|
17 | bin directory. Note that the bin directory should be included in your PATH in order to
|
---|
18 | run the application.
|
---|
19 |
|
---|
20 |
|
---|
21 | Using the View Space Partitioning module
|
---|
22 | =========================================
|
---|
23 |
|
---|
24 | The view space partitioning is implemented as a standalone
|
---|
25 | application. Alternatively the module can be compiled as a library
|
---|
26 | which can be linked to a 3rd party code. An example of such an
|
---|
27 | application is the online occlusion culling module (integrated with
|
---|
28 | OGRE engine) which links the library in order to load the preprocessed
|
---|
29 | data and use them in runtime.
|
---|
30 |
|
---|
31 | The module uses a number of parameters which can be specified by the
|
---|
32 | user through the "environment file" or command line parameters. The
|
---|
33 | parameters can have one of the following types: string, int, float,
|
---|
34 | and boolean. All parameters have implicit values set by the
|
---|
35 | preprocessor (listed in the table). This value can be redefined by the
|
---|
36 | environment file (see for example preprocess_visibility.env). This
|
---|
37 | value can further be overwritten by a command line argument. There are
|
---|
38 | two possibilieties how to specify the command parameter: using a
|
---|
39 | shorcut or define construct. The define construct uses the following
|
---|
40 | syntax: -Dparameter_name=value. With the exception of Boolean
|
---|
41 | parameters the shorcut version is specified as follows:
|
---|
42 | -paremter_shorcut=value. The boolean parameter shorcut is directly
|
---|
43 | followed by + or - sign (e.g. -preprocessor_use_gl_render+). The
|
---|
44 | usage of the parameters is illustrated in the example scripts and
|
---|
45 | environment files (preprocess_visibility, preprocess_visibility.env,
|
---|
46 | generate_viewcells, generate_viewcells.env).
|
---|
47 |
|
---|
48 | Bellow we give a list of the most important parameters. For other
|
---|
49 | parameters see the environment file (generate_viewcells.env) and the
|
---|
50 | documentation included in the source code of the module.
|
---|
51 |
|
---|
52 | Scene.filename (-scene_filename=) [string]
|
---|
53 |
|
---|
54 | Scene description file. Currently simplified X3D (.x3d), Unigraphics
|
---|
55 | (.dat), UNC (.ply) formats are supported. This option has to be
|
---|
56 | specified!
|
---|
57 |
|
---|
58 | Preprocessor.type (-preprocessor=) [string, one of: vss, rss, exact, sampling, render]
|
---|
59 |
|
---|
60 | Type of the preprocessor to use. Currently only the "rss" type is
|
---|
61 | supported for PVS computation (rss stands for Ray Space Subdivision
|
---|
62 | explained in the previous chapters of the documentation). For view
|
---|
63 | cells construction the "vss" preprocessor should be used (vss stands
|
---|
64 | for View Space Subdivision).
|
---|
65 |
|
---|
66 |
|
---|
67 | Preprocessor.useGlRenderer (-preprocessor_use_gl_renderer) [boolean]
|
---|
68 |
|
---|
69 | Tells the preprocessor to open an OpenGL window which serves for
|
---|
70 | visualization, testing and visual debugging of the preprocessor. This
|
---|
71 | functionality is currently implemented using Qt OpenGL widget.
|
---|
72 |
|
---|
73 |
|
---|
74 | ViewCells.type (-view_cells_type=) [string, one of: vspBspTree, .....]
|
---|
75 |
|
---|
76 | Type of view cells to be generated. Use "vspBspTree", which
|
---|
77 | corresponds to our optimized algorithm.
|
---|
78 |
|
---|
79 | ViewCells.Construction.samples (-view_cells_construction_samples=) [int]
|
---|
80 |
|
---|
81 | Number of visibility samples to be used for the view cell construction.
|
---|
82 |
|
---|
83 | ViewCells.maxViewCells (-view_cells_max_view_cells=) [int]
|
---|
84 |
|
---|
85 |
|
---|
86 | Using the PVS computation module
|
---|
87 | =================================
|
---|
88 |
|
---|
89 | The PVS computation module is implemented as a standalone application.
|
---|
90 | The parameters for the module can be specified by the user through the
|
---|
91 | "environment file" or on the command line as described for the view
|
---|
92 | space partioting module. Bellow we give a list of the most important
|
---|
93 | parameters. For other parameters see the environment file
|
---|
94 | (preprocess_visibility.env) and the documentation included in the
|
---|
95 | source code of the module.
|
---|
96 |
|
---|
97 | Scene.filename (-scene_filename=) [string]
|
---|
98 |
|
---|
99 | Scene description file. Currently simplified X3D (.x3d), Unigraphics
|
---|
100 | (.dat), UNC (.ply) formats are supported. This option has to be
|
---|
101 | specified!
|
---|
102 |
|
---|
103 | Preprocessor.type (-preprocessor=) [string, one of: vss, rss, exact, sampling, render]
|
---|
104 |
|
---|
105 | Type of the preprocessor to use. Currently only the "rss" type is
|
---|
106 | supported for PVS computation (rss stands for Ray Space Subdivision
|
---|
107 | explained in the previous chapters of the documentation). For view
|
---|
108 | cells construction the "vss" preprocessor should be used (vss stands
|
---|
109 | for View Space Subdivision).
|
---|
110 |
|
---|
111 |
|
---|
112 | Preprocessor.useGlRenderer (-preprocessor_use_gl_renderer) [boolean]
|
---|
113 |
|
---|
114 | Tells the preprocessor to open an OpenGL window which serves for
|
---|
115 | visualization, testing and visual debugging of the preprocessor. This
|
---|
116 | functionality is currently implemented using Qt OpenGL widget and thus
|
---|
117 | requires compiling the preprocessor with Qt library.
|
---|
118 |
|
---|
119 |
|
---|
120 | Preprocessor.detectEmptyViewSpace (-preprocessor_detect_empty_viewspace=) [boolean]
|
---|
121 |
|
---|
122 | Empty view space detection allows more efficient sampling for scenes
|
---|
123 | with properly modelled watertight objects (those which can be
|
---|
124 | correctly rendered with backface culling on).
|
---|
125 |
|
---|
126 | Preprocessor.applyVisibilityFilter (-preprocessor_apply_visibility_filter) [boolean]
|
---|
127 |
|
---|
128 | Tells the pre-processor if the visibility filter should be applied.
|
---|
129 |
|
---|
130 | Preprocessor.visibilityFilterWidth (-preprocessor_visibility_filter_width=) [float]
|
---|
131 |
|
---|
132 | Width of the visibility filter specified as a ratio of the size of the
|
---|
133 | bounding box of the scene. A reasonable value for common scenes is
|
---|
134 | 0.01.
|
---|
135 |
|
---|
136 | Preprocessor.visibilityFile (-preprocessor_visibility_file=) [string]
|
---|
137 |
|
---|
138 | Name of the file into which the preprocessed visibility information
|
---|
139 | should be exported.
|
---|
140 |
|
---|
141 | RssPreprocessor.initialSamples (-initial_samples=) [int]
|
---|
142 |
|
---|
143 | Number of initial samples to use. These samples are distributed
|
---|
144 | uniformly in the whole view space.
|
---|
145 |
|
---|
146 | RssPreprocessor.vssSamples (-rss_vss_samples=) [int]
|
---|
147 |
|
---|
148 | Number of samples cast using importance and stratified sampling based
|
---|
149 | on RSS.
|
---|
150 |
|
---|
151 |
|
---|
152 | RssPreprocessor.useImportanceSampling (-rss_use_importance) [bool]
|
---|
153 |
|
---|
154 | Tells the preprocessor whether to use RSS based sampling at all. If
|
---|
155 | false then even the RssPreprocessor.vssSamples are cast using the
|
---|
156 | uniform distribution.
|
---|
157 |
|
---|
158 |
|
---|
159 | RssPreprocessor.vssSamplesPerPass (-rss_vss_samples_per_pass=) [int]
|
---|
160 |
|
---|
161 | Number of samples cast per pass of the RSS algortihm. After each pass
|
---|
162 | the RSS tree is updated and the new set of rays is generated according
|
---|
163 | to the estimated sample contributions.
|
---|
164 |
|
---|
165 |
|
---|
166 |
|
---|
167 |
|
---|
168 |
|
---|
169 |
|
---|
170 |
|
---|
171 |
|
---|