Extensions:Uni-Verse/UVAS
目次
Introduction
The purpose of this document is to provide user's guide for Uni-Verse Acoustic Simulation (UVAS), which is a computer software for room acoustic simulation. The UVAS can be used with other Uni-Verse tools for creating acoustic simulations and interactive spatial audio environments from dynamic 3D geometries.
The UVAS is closely related to the Uni-Verse Sound Renderer. UVAS does the modelling of sound propagation in the given geometry. The instructions how to render the audio environment is sent through Uni-Verse Sound Rendering Protocol (UVSRP) to the Uni-Verse Sound Renderer. The renderer is the back end for a chain of acoustic simulation modules and reproduces the sound for the listener using loudspeakers or headphones.
Installation
The installation procedure is depending on the operating system, but the general requirements and building instruction are given in this section is valid on the Linux platform.
Supported operating systems
UVAS currently only works in Linux. It should be relativly easy to build UVAS on Windows using Cygwin as earlier versions of UVAS has been running on this platform.
Requirements
Some other software libraries are required to build the Acoustic Simulation module. On most operating systems, most of these libraries are shared or dynamic libraries which must be installed at proper locations.
The dependencies are:
- Pthread
- POSIX thread libraries are native in Unix and Linux distributions, but not in Windows. However, they can be found as open source.
- Verse
- Of course, the Verse library is required to build the Acoustic Simulation module. More information can be found at the 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.
- CppUnit
- CppUnit is a unit testing framework for C++. More information and the sources can be found at: the CppUnit homepage.
- TNT
- The Template Numerical Toolkit (TNT) is a collection of interfaces and reference implementations of numerical objects useful for scientific computing in C++. More information and the sources can be found at: the TNT homepage.
- JAMA/C++
- JAMA/C++: a translation of the Java Matrix Library, developed by the Mathworks and NIST, into C++. More information and the sources can be found at: the TNT homepage.
- GPC
- The University of Manchester General Polygon Clipper (GPC) library. More information and the sources can be obtained at: the GPC home page. The files from the GPC distribution is included in the source distribution of UVAS.
- SGIGLU
- Incoperated example code from the SGI GLU implementation. This code is included in the UVAS release.
Building UVAS
The source can be downloaded from: sources.
Unpacking the distribution file:
$ tar xzf uvas_1_0_0_src.tgz
This will create the uvas_1_0_0
directory.
To build UVAS change the working directory to $uvas_1_0_0/src
. Before you start to build UVAS check the paths varables in the Makefile. To start the buld process type:
$ make
Running UVAS
To run UVAS in normal cases a verse server must be attached to the fornt-end using the -v option and to get any audible result a audio renderer must be attached to the back-end using the -u option.
Comand-line syntax
Comand-line syntax is:
$ uvas [options]
The options are:
- -a <integer>
- The number candidates tested for each new partition in the BSP tree.
- -B
- Sets the program to Beam-tracing mode. this is the default. Can not be use together with -P.
- -d
- Show graphics window, plots a visual interactive representation of the scene.
- -e
- Print a trace of events at the back-end in to the standard output
- -l <integer>
- Set the trace level. Value greater that zero cause a trace of the program execution to be printed to the standard output. The higher value the more will be traced. Warning, setting this option can generate a huge amount of data.
- -M
- Filter out all geometry without any acoustic materials attached. (Only materials with names containing “##” are considered as acoustic materials)
- -o <integer>
- Sets the maximum order of reflection in the simulation, default is 2.
- -p <real>
- Maximum length of refection paths, default is 50.
- -P
- Set program to Perceptual simulation mode, can not be used at the same time as -B.
- -q <integer>
- Sets the maximum number of transmissions in a reflection path, default is 4.
- -r <real>
- Set the approximate frame rate of the simulation, in frames per second, default is 30.
- -T <real>
- Set the tolerance for clustering of plans in the BSP tree, default is 0.03.
- -u <ip address[:port]>
- Direct the output to an audio renderer, default is to use no renderer.
- -v <ip address[:port]>
- Verse server to load the simulated world from.
Key Commands
The major use of key commands in UVAS is for the navigation in the visualisation window. N.B. the key commands are in effect only when the graphics window is visible and focused, UVAS must have been started with the -d option.
The navigation is in Quake style.
- W
- forward
- S
- backward
- A
- step left
- D
- step right
Clipping plane
- C
- toggle clipping plane