130 likes | 153 Views
Computation of room acoustics using programable video hardware. Marcin Jędrzejewski Krzysztof Marasek. Presentation plan. Acoustics computational methods Graphical Processing Unit ( GPU ) – programming model Used acoustic model Used algorithms and data structures Implementation on GPU
E N D
Computation of room acoustics using programable video hardware Marcin Jędrzejewski Krzysztof Marasek
Presentation plan • Acoustics computational methods • Graphical Processing Unit ( GPU ) – programming model • Used acoustic model • Used algorithms and data structures • Implementation on GPU • Results • Conclusions and further work • Demo movie
Room acoustics - Image sources • Computationally ineffective • Geometrical methods - Beam tracing • Not very scaleable • Ray tracing • Point sound source • Receiver aproximated by sphere • Each position change requires recomputation Echogram:
Room representation • 3D geometry • Walls are made of polygons • Each wall contains information on its absorption coeficient • Scene contains also positions of sound source and receiver
GPU – programming model • Streaming processor - the same program is executed parallely but with different data on input. Each program produces output data. • Programs that are executed are also known as kernels or Pixel Shaders • HLSL as programming language, very similar to C++ • Input and output data is stored in a form of textures which are blocks of memory stored on video card
Program execution • Data (like rays) are loaded to input texture • Quad (rectangle composed of two triangles) is rendered, for each processed texel, pixel shader is executed • HLSL program can read from many different textures but can write up to 16 floating point values (using MRT) • Many passes of this algorithm
Acoustics model • One frequency band is used for material absorption • High number of reflections (~15 - 25) • No diffraction, refraction, diffusion – purely specular model
Space division algorithms used • Constructive Solid Geometry (CSG) : to remove all illegal geometry • Binary Space Partitioning (BSP) : to partition space into convex subspaces • Portal calculation – to find ways between subspaces • Further subspaces division required for efficient GPU implementation
Execution flow 3 Precomputation phase Real time 5 Multipass rendering Auralization 1 2 4 Data structures computation Loading textures: state data and data structures Building echogram • CSG, BSP, Portals, ... • Generation of rays on sphere surface, uploading textures to video card • Propagation of rays through portals and reflecting them from walls • Retrieving video memory with computed rays and building echogram • Using echogram to generate spatial sound
Results • Almost 100 mln ray - triangle intersections checks per second • Computation of above 16000 rays with 10 reflections in two room enviroment takes ~30ms
Conclusions and further work • Real-time computation of echogram with the use of ray tracing algorithm • CPU can execute other code parallely when GPU is computing ray reflections • Making use of NVIDIA Geforce 6800 or ATI X800 cards • Making use of PCI-Express architecture (even 16ms speed up possible) • Mapping cone or pyramid tracing algorithms for early reflections and using raytracing for late reverberation • Better optimizations with model 3 of PS and VS