[Samsung Galaxy Nexus] hidato_aori:
Mini story behind

★akaru★ (^-^)/ LUNCH TIME!!!! STUDY TIME!!! (with laptop) nom... nom... nom...

EIZO VSUR is done simply by scaling the difference vector obtained by subtracting the 2 position vectors, by one over the frame time delta. Sound source moves 0.1 meters and blends with stereo sound image upmixing to more sound images with automatic attenuation, doppler and more advanced psychoacoustic 3D audio techniques.

Virtual Surround Sound vectors:

velx = (posx-lastposx) * 1000 / timedelta;

velz = (posy-lastposy) * 1000 / timedelta;

velz = (posz-lastposz) * 1000 / timedelta;

FOCUS: a close-range firing virtual surround sound (non-channeling)

Example Measurements:

LIVE I: Using velocity 60fps per second = vel = 0.1 * 1000 / 16.67 = 6 meters per second.

LIVE II: Using velocity 30fps per second = vel = 0.2 * 1000 / 33.33 = 6 meters per second.

Story of Noozxoide PMO-GX for Game Developers Reference Book (340 pages) (API: C++, Java, C#) (PC/PS3/XBOX/PSP) (Alone in the Dark)

Distance models and linear rolloff vs logarithmic

Logarithmic

This is the default Noozxoide 360 distance model. All sounds naturally attenuate (fade out) in the real world using a logarithmic attenuation. The flag to set to this mode is NOOZXOIDE_3D_LOGROLLOFF but if you're loading a sound you don't need to set this because it is the default. It is more for the purpose or resetting the mode back to the original if you set it to NOOZXOIDE_3D_LINEARROLLOFF at some later stage.

When NOOZXOIDE uses this model, 'mindistance' of a sound / channel, is the distance that the sound starts to attenuate from. This can simulate the sound being smaller or larger. By default, for every doubling of this mindistance, the sound volume will halve. This rolloff rate can be changed with System::set3DSettings.

As an example of relative sound sizes, we can compare a bee and a jumbo jet. At only a meter or 2 away from a bee we will probably not hear it any more. In contrast, a jet will be heard from hundreds of meters away. In this case we might set the bee's mindistance to 0.1 meters. After a few meters it should fall silent.

The jumbo jet's mindistance could be set to 50 meters. This could take many hundreds of meters of distance between listener and sound before it falls silent.

In this case we now have a more realistic representation of the loudness of the sound, even though each wave file has a fully normalized 16bit waveform within. (ie if you played them in 2D they would both be the same volume).

The 'maxdistance' does not affect the rate of rolloff, it simply means the distance where the sound stops attenuating.

Don't set the maxdistance to a low number unless you want it to artificially stop attenuating. This is usually not wanted. Leave it at its default of 10000.0.

Linear

This is an alternative distance model that NOOZXOIDE has introduced. It is supported by adding the NOOZXOIDE_3D_LINEARROLLOFF flag to System::createSound or Sound::setMode / Channel::setMode.

This is a more fake, but usually more game programmer friendly method of attenuation. It allows the 'mindistance' and 'maxdistance' settings to change the attenuation behavior to fading linearly between the two distances.

Effectively the mindistance is the same as the logarithmic method (ie the minimum distance before the sound starts to attenuate, otherwise it is full volume), but the maxdistance now becomes the point where the volume = 0 due to 3D distance. The attenuation in-between those 2 points is linear.

END STORY

TEASER