[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