Extensions:Uni-Verse/Acoustic Geometry Reduction
目次
Introduction
This document is the user's guide for the acoustic geometry reduction unit, which is one of the audio related applications created in the Uni-Verse project. This application is built on the Verse platform for sharing 3-dimensional data over networks. Since acoustics modeling is computationally demanding and the number of geometrical elements in the modeled environment affects the performance signicantly, the reduction unit is designed to simplify the complex geometry used in e.g. visualization. Thus it is possible to use the same data shared by other applications also in the acoustics modeling.
The acoustic geometry reduction unit can also be seen as a bridge between the visual data and the acoustic data. Usually it is desirable to keep these data sets on separate Verse servers since the material representations differ from each other and are not meaningful in the other context. The reduction unit copies all non-geometrical data from the source server to the destination server, including objects, materials, audio nodes, and other data which is necessary for the acoustics modeling. All the changes are updated in real-time.
Only the geometry and the object structure related to it are modified. Object hierarchies are collapsed into one object which is linked to one geometry node containing all the geometry. The material representation in the original model can be either per object or per face, but in the reduced object only per face materials are used. All the changes in the geometry are updated as soon as the corresponding Verse commands have been received by the reduction unit.
The installation and usage of the application are described in detail in the following sections.
Installation
Before the reduction unit can be run, it must be installed properly. The installation procedure is dependent on the operating system, but the general requirements and building instruction are given in this section.
Requirements
Some other software libraries are required to build the reduction unit. On most operating systems, these libraries are shared or dynamic libraries which must be installed at proper locations.
The dependencies are:
- Verse
- Of course, the Verse library is required to build the reduction unit. More information can be found at Verse main site.
- OpenGL
- This library is needed for the graphical display. It is commonly used on many operating systems and might be already installed. More information can be found at OpenGL's official site.
- GLU
- This is a third party utility library for OpenGL which is used to simplify some tasks related to graphics. More information can be found at OpenGL's official site.
- GLUT
- This is OpenGL Utility Toolkit by Mark Kilgard. More information can be found at OpenGL's official site.
- Pthread
- POSIX thread libraries are native in Unix and Linux distributions, but not in Windows. However, they can be found as open source.
Obtaining the Software
A relatively fresh version of the source code for the acoustic geometry reduction unit can be found here.
Building the Reduction Unit
The compilation procedure can be different on different platforms. On POSIX-compliant platforms it is relatively easy. It might be necessary to edit the Makefile so that the VERSE variable points to the correct path. Minor changes in the include directives in the source code might be required in some cases.
Then it is sufficient to type:
$ make
And a program called dynamic is created.
Running the Reduction Unit
This section describes how to run the acoustic geometry reduction unit. It is assumed that there is a properly compiled, working version of the reduction unit on a local computer. It is also assumed that there are Verse servers running at the locations defined as source and destination addresses in the examples. The source server should contain meaningful geometrical data or such data should be sent to it while the reducer is running. The destination server should preferrably be empty in the beginning to avoid possible collisions. The appearance of the command line may vary between operating systems, but the description below should be general enough to understand the usage of the program.
To simply start the reduction unit, the following command can be issued:
$ dynamic
This connects the reduction unit to the Verse server on the local machine at port 4950, reduces the geometry with the default cluster size of one meter, and finally writes the output back to the Verse server on the local machine at port 49999. These are the default parameter values.
Other than the default values can be used:
$ dynamic 2.5 verse.reduced.org:4711 verse.original.com
This connects the reduction unit to the Verse server on verse.original.org at port 4950, which is the default port, reduces the geometry with the cluster size of 2.5 meters, and writes the output to the Verse server on verse.reduced.org at port 4711.
Command-line Options
The command-line options used by the reduction unit are recognized by the order in which they are given. The syntax is:
$ dynamic [cluster_size [destination [source]]]
where the parameters are:
- cluster_size
- Sets the cluster size used in the geometry reduction algorithm in meters. This sets the average distance for two vertices in the model to be clustered together. The actual merging distance varies between zero and 2√2 cluster sizes depending on the cluster grid orientation and alignment. The user can view this as removing the details smaller than the cluster size, although this is not quaranteed. The default value is one meter
- destination
- This is the address of the destination Verse server which can be given as a domain name or as an IP address and can be followed by a colon and a port number. The default address is localhost and port 49999. See the latter example in the previous section.
- source
- This is the address of the source Verse server in the same form as the destination server. The default address is localhost and port 4950.
The Window
The window in the acoustic geometry reduction unit is designed to be a debugging tool and it can be mostly ignored. However, the reduced model can be observed through the window. If the contents of the window is only black, then either there is no data or the model is of wrong scale. However, this does not affect to the output of the reduction unit.
Controls
The view point of the camera can be moved and rotated with help of the mouse and the arrow keys on the keyboard.
Mouse Controls
Holding down the left mouse button allows rotating the camera. Moving the mouse up or down changes the pitch or elevation angle, and moving the mouse left or right changes to heading or azimuth angle. When the left mouse button is up the movements of the mouse do not affect the camera.
Keyboard Controls
The arrow keys on the keyboard control the position of the camera.
- ↑
- Moves the camera forward in the direction where the camera is pointing at.
- ↓
- Moves the camera backward in the opposite direction than where the camera is pointing at.
- ←
- Strafe left or move in the direction defined by the cross product of the up-vector and the direction vector of the camera.
- →
Strafe right or move int the direction defined by the negation of the cross product of the up-vector and the direction vector of the camera.
Limitations
There are some limitations related to the reduction process itself and the application's ability to handle Verse data. The former are due to the requirement that the process should be real-time and the latter are designed limitations since some pieces of data are irrelevant to the acoustics modeling applications.
The major issues are:
- Limited Reduction
- The reduction unit is good at removing details such as rims or small objects where some of the vertices are close to each other. However, it is not good at reducing large planar surfaces consisting of a large number of small polygons. The real-time performance requirement restricts the usage of surface reconstruction methods which usually require analyzing or decomposing larger parts of the model which is more time-consuming. However, typical room models are far from the worst case scenarios, and the amount of reduction is sufficient.
- Per Face Materials Only
- This limitation to the output model is understandable since there is only one object in the output model to improve the reduction rate. Unless the whole model has only one material, per face materials are the only feasable option to represent the material data in the model.
- Acoustic Material Representation
- The materials in the reduced model contain only the acoustic part of the material data since the visual part has no meaning to the acoustics modeling. For visualization purposes, the original data on the source server should be used.
- No Bitmaps, Text, Curves, etc.
- Some features are irrelevent to the acoustics modeling and are thus ignored.