240 likes | 404 Views
Waveguide-based Room Acoustics using Graphics Hardware. Niklas Röber, Martin Spindler, Maic Masuch University of Magdeburg. Outline. Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion. Motivation Waveguide meshes and sampling lattices
E N D
Waveguide-based Room Acoustics using Graphics Hardware Niklas Röber, Martin Spindler, Maic Masuch University of Magdeburg
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
Research Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Games Research Group – University of Magdeburg • Tools and techniques for future games • Non-photorealistic rendering and cinematography • Interactive digital storytelling and authoring techniques • Audiogames • 3D virtual auditory environments • Audiogames and augmented audio reality • Interactive audiobooks • Sound rendering and synthesis (3D, room acoustics)
Motivation Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Audiogames and auditory displays • Non-realistic audio environment • High quality 3D sound and room acoustic simulations • Similarities between sound and light propagation • Sophisticated and fast algorithms to render visual scenes • Powerful graphics hardware • AMD 64 (~8GFlops) vs. nvidia 7900GTX (~250GFlops) • Very fast for parallelizable problems • Various GPGPU applications
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
3D rectilinear waveguide node Waveguide meshes Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Time domain finite difference models • Bi-linear delay lines arranged in a mesh like structure • Scattering junctions are of equal impedance • Sum of inputs = sum of outputs • Pressure equal at crossings • Modeling of boundary conditions • Limitations • Direction dependent dispersion error • Finite mesh resolution / sampling frequency
Optimal Sampling Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Hexagonal lattices have a higher packing density • More optimal sampling • Spherically band limited signals • Unit length increases to • less samples in 3D • 8 neighbors with 4 axes of propagation and 4 delay lines per node • Used in compression, scientific visualization and image processing
BCC Waveguide Mesh Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Update frequency with unit length • One BCC unit cell consist of 2 nodes and 8 delay lines • Frequency dispersion with max. error 4.7%, compared to 7.3% (3D CC) (Campos and Howard 2005) • Sampling efficiency
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
GPU-based Implementation Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Implementation based on 3D textures, fragment shaders and framebuffer-objects (fbo) • Two 32-bit float textures (RGB) • Waveguide data (t-1, t) (R and B channel) • Geometry, material and boundary conditions (G channel) • Shader computes / samples texture using screen aligned slicing planes
Waveguide Shader Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion 1 uniform float layer; 2 uniform vec3 stepX, stepY, stepZ; 3 uniform sampler3D tex; 4 vec3 pos = vec3(gl_TexCoord[0].xy, layer); 5 6 vec4 center = texture3D(tex, pos); 7 vec4 left = texture3D(tex, pos − stepX); 8 vec4 right = texture3D(tex, pos + stepX); 9 vec4 up = texture3D(tex, pos + stepY); 10 vec4 down = texture3D(tex, pos − stepY); 11 vec4 front = texture3D(tex, pos + stepZ); 12 vec4 back = texture3D(tex, pos − stepZ); 13 14 float ampl = left.r + right.r + up.r + down.r; 15 ampl += front.r + back.r; 16 ampl = ampl * 0.3333 − center.b; 17 gl_FragColor = vec4(ampl, center.g, center.r, 1.0); Waveguide fragment shader (Cartesian Lattice)
BCC Implementation Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • BCC lattice decomposed into two CC textures • Base grid (R and G), offset grid (B and A) for t-1 and t • One additional 3D texture (geometry, boundary conditions) • BCC fragment shader • Indexing adjusted for two textures • Two nodes computed in one step • Overall less computations
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
Results and Discussion Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Benchmarks 2D, 3D CC and 3D BCC • Software (CPU) and Hardware (GPU) • Comparison CC and BCC lattices • Examples: • Wavefield synthesis • Impulse responses (3D CC, 3D BCC)
Benchmarks 2D Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • AMD 64 4000+ single core PC with 1 GB main memory • nvidia GeForce 7800GT with PCIe interface
Benchmarks 3D Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion cp = withglCopyTexSubImage3D ncp = withoutglCopyTexSubImage3D
Rectilinear vs. Hexagonal Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion CC BCC
Wavefield Synthesis Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • 21 sound sources • Sine wave pulse • Anechoic walls (top, bottom, right) • Phase-rev.reflection (left, middle obstacle)
CC CC BCC BCC Impulse Responses Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion Original sound (The Notwist) Low-pass filtered 3D CC room acoustics 3D BCC room acoustics
Outline Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Motivation • Waveguide meshes and sampling lattices • GPU-based implementation • Results and discussion • Summary and future work
Summary Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • Novel and fast technique for wave propagation using waveguide meshes • Exploiting powerful graphics hardware with build-in visualization • Up to 15–20 times faster • Additional improvements through hexagonal sampling • Open questions / problems: • CC vs. BCC (quality) • Missing 3D fbo extension
Future Work Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion • GPU accelerated ray-acoustic simulations • Global illumination (phonon mapping, spherical harmonics, BRDF) • Raytracing (particles, raycasting) • Combination of GPU-based wave- and ray-acoustics • Evaluation of physics hardware (Ageia’s PPU) • Mass-spring system • Particles, raycasting
Thank you for your attention! Outline – Motivation – Waveguides and Sampling – GPU Implementation – Results – Conclusion More Information: games.cs.uni-magdeburg.de/acoustics niklas@isg.cs.uni-magdeburg.de