[Openal-devel] Distance units

Alexandre Mah Alexandre at OzEmail.com.au
Fri Mar 18 14:50:17 PST 2005


On 19/03/2005, at 1:44 AM, pclare at sensaura.creative.com wrote:

> Distance units are needed though for basic 3D rendering.  A person's 
> head
> is 15cm diameter not some arbitrary distance units in diameter.  We 
> need to
> know that information to accurately render sources that are in close
> proximity to the head.  In Sensaura's MultiDrive (HRTF over multiple
> speakers) we also chose to use the absolute distance.  Again, this is 
> for
> basic 3D audio rendering.

If HRTF did make it into the core (which would probably be a nice thing 
at some point), I imagine it would work in a way similar to textures in 
OpenGL.  The programmer would provide and load the HRTF data into 
OpenAL and determine how it would be mapped to OpenAL's 3D space (just 
like an OpenGL programmer provides the textures to OpenGL and 
determines how it gets mapped to a polygon).

This mechanism would be very general and powerful, as it could use any 
HRTF data, and it would have complete freedom from units.  It would 
have the ability to do near-field effects (like MacroFX) if the 
programmer had near-field data, using the same simple HRTF mechanism.  
It would have the ability to handle multiple sets of HRTF data and 
switch between them.  You would even be able to dynamically create or 
modify HRTF data.  For example, in a game, if you suffer damage on the 
left side of your head, you could simulate the damage by altering or 
impairing your hearing on that side of the head (either by dynamically 
altering the HRTF data, or switching to a different pre-made HRTF 
dataset).

There could be different interpolation modes, similar to nearest 
neighbour, linear filtering, bilinear filtering, or trilinear 
filtering, which you could select.

An OpenAL distribution would of course have the option to distribute 
some free HRTF data (or multiple HRTF datasets even) for the 
programmer's convenience, but these datasets wouldn't be part of 
OpenAL.

This HRTF mechanism would have no built-in sense of absolute distance.  
Any sense of absolute distance would be part of whatever data the 
programmer provides to the HRTF mechanism.




More information about the Openal-devel mailing list