From d66c492229c37a7e30d147cc7a54b1cc0a2d9c77 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Wed, 17 Mar 2021 12:33:37 -0700 Subject: [PATCH] add docs about 3D audio --- content/Audio/_index.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/content/Audio/_index.md b/content/Audio/_index.md index 8428594..0d42f00 100644 --- a/content/Audio/_index.md +++ b/content/Audio/_index.md @@ -46,3 +46,25 @@ jumpSoundEffectInstance.Pitch = -0.25f; jumpSoundEffectInstance.Pan = -0.5f; jumpSoundEffectInstance.Play(); ``` + +### 3D Audio + +MoonWorks has support for 3-dimensional audio. +To use it, you must create an AudioListener, and any sounds that are emitted in 3-dimensional space should use an AudioEmitter. +Emitters and listeners use position, orientation, and velocity to determine audio playback. +Then you can call `Apply3D` on a sound effect instance and provide the emitter and listener. + +```cs +var audioEmitter = new AudioEmitter(AudioDevice); +var audioListener = new AudioListener(AudioDevice); + +audioEmitter.Position = thingPosition; +audioEmitter.Forward = thingForward; +audioEmitter.Up = thingUp; + +audioListener.Position = cameraPosition; +audioListener.Forward = cameraForward; +audioListener.Up = cameraUp; + +thingSound.Apply3D(audioListener, audioEmitter); +```