Table of Contents
3D positioning is the act of panning a source (with any channel configuration) into a bus (with any channel configuration) based on the relative positions and orientations of the emitter and listener objects in game. These objects' positions are set by the game via the Wwise sound engine API. Spread and Focus distance-based properties play a part in the panning method along with game-driven positions and orientations. The 3D positioning algorithm in Wwise was designed to allow proper morphing between a point source and an enveloping oriented multi-channel ambience using Spread.
Here is a simplified description of the 3D positioning algorithm:
Virtual sources are laid down around the listener.
Groups of virtual sources, corresponding to each input channel, are concentrated according to Focus (standard configurations only).
Virtual sources are rotated according to the orientation of the emitter relative to that of the listener (for 3D Spatialization set to Position + Orientation only).
Virtual sources are further contracted in the direction of the emitter position, relative to the listener, according to Spread.
Each virtual source is panned onto the output configuration's channels and power-normalized.
More details on Spread and Focus may be found within the Defining the Attenuation curves for Various Object Properties page.
The channels of standard multi-channel sources are assigned to groups of virtual sources by splitting the plane in equal parts. Height channels in sources are not supported and are dropped.
Wwise natively supports standard and ambisonic channel configurations. The main difference between the two is the panning math involved in step 5 (above), because both types represent spatial audio differently. Also, the layout of virtual sources is different and, because it solely exists to work around the non-uniform leakage of discrete input channels into discrete output channels, Focus is only applied to standard configurations. However, the behavior of virtual sources with Spread and relative emitter-listener rotation is identical, regardless of the configuration types.
You can pan sources with standard configuration into ambisonic busses ("encode to ambisonics"), and vice-versa ("decode from ambisonics").
The examples in the following pages illustrate various facets of the algorithm presented above: