multipart-message nevyn bengtsson's blog

featured articles 🦄, about, archive, tags

Realtime acoustics modeling in games: Prototype "Aurora2D", v1.1

I’m writing my candidate thesis on realtime acoustics modeling in games; figuring out the reverb, echoes and occlusion of sound in a room by doing a physics simulation, specifically image-source model, roughly as described by Jeffrey Borish in his “Extension of the image model to arbitrary polyhedra”. I’ve spent a day or two a week for the past eight weeks or so building a 2D prototype called Aurora2D, before I implement the modeling inside the RMS game engine. Finally, it’s sorta working. I’ve coaxed the RMS sound engine into Aurora2D, so you can actually hear the model in real time. Since it works, I thought I’d publish it here :)

This stuff is pretty cool for (mac) programmers, because it’s a garbage collected Objective-C/C++ hybrid using Core Animation and NSOperationQueue, which means it’s massively multi-threaded. For you, the sources are available at svn://nevyn.nu/school/trunk/realtime_acoustics/Implementation/Aurora2D.

I’m hoping that this will also excite gamers, since most sound effects done in games today are just either baked into the sound file with no accounting for the physical environment in which it is playing whatsoever, or the sound gets some basic DSP effects applied to it, only taking into account as much as the level designer could know at level creation time. However, with today’s computers, we can do so much more. We have multicore CPUs, multicore graphic cards, multicore physics cards in some cases. Why is so little done with audio? Perhaps you can’t, and that’ll be what I find out when I do this in 3D, but I really doubt it.

Anyway. Enough talking. Download Aurora2D v1.1! (Mac Intel 10.5 only)

The interface has evolved for my debugging use only, and is probably confusing for human beings. The above illustration will probably only serve to add to this confusion. Click on the image for a larger version.

Tagged candidate-thesis, rtacoustics