1 / 20

Game Programming Gems 7 - Audio -

Game Programming Gems 7 - Audio -. Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 13 AM3: Softwaretechnologie II (Teil 2): Simulation und 3D-Programierung Dozent: Dr. phil., Prof. Manfred Thaller Referent: Jan Moritz Kohl.

cady
Download Presentation

Game Programming Gems 7 - Audio -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Game ProgrammingGems 7- Audio - Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 13 AM3: Softwaretechnologie II (Teil 2): Simulation und 3D-Programierung Dozent: Dr. phil., Prof. Manfred Thaller Referent: Jan Moritz Kohl

  2. Audio Signal Processing USING GPU • Technologien wie SIMD (Single Instruction Multiple Data), Multiple Executionoder multiply-accumulate -> DSP hardware • Chorus & Compression schneller • Filter & Delay langsamer

  3. Ray-Tracing für real-time room-acoustics LeafPlaneIntersect(Ray) { get plane indexforcurrent Ray for (i=1,i<=6,i++) { Intersectwith plane forcurrentleaf Store dataforclosestintersectedrays } } PropagateRay(Ray) { Check ifcurrentLeafcontainsmoreplanes if(currentLeaf == listener.leaf) Intersect Ray withboundingsphere if(intersectionwith plane) Reflectrayanditsabsorption if(intersectionwithportal) Set newleafforray }

  4. MultiStream – Next-Gen Audio (ps3) • Nur Software basiert • Entwickeln eigener Audio Engine kann Jahre dauern! • Ein „stream“ beinhaltet: audiodaten (8 Kanäle), Wiedergabe Frequenz, Lautstärke Parameter/Surround Sound Position, Amplitude envelope, DSP effekte, outputrouting. • Anspruch: Audio in Echtzeit • Hürden: frequencydomainprocessing (unter anderem)

  5. Maximal 512 Kanäle • Beispiel: Auto-Motor: • Motorumdrehungen * acht (jew. Für 1000 RPM Umdrehungen) • Auspuff * acht (zur selben Zeit aufgenommen wie die Motorengeräusche) • Schlittersounds (vier loops, für jedes Rad einen) • Straßen rumble (vier sounds, für jedes rad einen) • Schaltung = 25-30 Kanäle • Vormals zu viel RAM verbrauch

  6. Sample Formats: Float32 PCM 16-bit PCM ADPCM MP3

  7. Tricks beim Handling: Callback function um stream außerhalb der Audio Engine zu laden  dadurch Fehlerprävention und unabhängiges synchronisieren • Laufende streams zuerst updaten • Neu angeforderte streams updaten • Zuletzt die Audiodaten laden Wenn buffergröße nicht ausreichend: sample rate halbieren 48000 samples/48kHz 48000 samples/24kHz Mehrere Versionen einer Datei um DVD read zu erleichtern

  8. Frequencydomainprocessing (FFT – Fast Fourier Transform) • Vocoder und Hall Effekte

  9. FFT braucht 1024 samplesinput um 512 auszugeben 1536-2559 0-1023 512-1535 1024-2047

  10. Surround Sound Für realistischen Sound, hier X,Y,Z koordinaten werden übergeben Player spezifischer Sound meist multi-channel, außerhalb eher mono Syncing Channels bereitet häufig Probleme (Pitch shift) Lösung: voidSync_On(void) voidSync_Off(void) Sync On Audio 1 Audio 2 Sync Off

  11. Listen Carefully, YouProbablywon‘thearthisagain • Töne in der „realen Welt“ beeinflusst von vielen Faktoren • um Wiederholungen bei Sounds zu vermeiden  Echtzeit processing • Spiele nicht linear wie Filme, trotzdem wird Filmen nachgeeifert • In diesem Beispiel: Erstellen von einzigartigen Sounds aus Rohdaten • Hier: Explosionen!!!

  12. „pop“ als Synonym für Granaten, Raketen, detonierende Geschosse oder explodierende Gegenstände Ebenfalls: Besiegen eines Gegners, aufnehmen eines Items oder specialfx wie teleporter, unsichtbar oder unbesiegbar werden.

  13. Explosion in Bestandteile zerlegt: • Initial Zündung/ Anschwellen von Energie • Drop-Off und fade sound (Echo) • Beeinflusste Elemente • Drop-Off für alle beeinflussten Objekte • Größere untergeordnete Effekte (Gesteinsbrocken) • Kleinere untergeordnete Effekte (Kleine Steinchen)

  14. Short sharp metallic impactsound: Stone Objects affectedbyenergy: Small objectsreturningto a stateofrest:

  15. Createdingamesounds:

  16. Tools für Audiodesigner/ File management: • FMOD • Microsoft XNA XACT • 2 wavdateien brauchen ebensoviel Speicherplatz wie die kombinierte Datei • Größere headerfiles, aber managable mit 3rd generation Konsolen • Dynamische Sounds kompensieren größeren Aufwand

  17. Real-Time Audio Effects Applied • Die zwei bekanntesten APIs für Sound: DirectSound & OpenAL • Überblick: • Primary Buffer • The Listener • Sound Sources • Sound Effects

  18. Sound buffers: • Circularbuffer • Rank buffer • Effectsandfilters: • IIR (Infinite impulseresponse) • FIR (Finite impulseresponse) • Compressionand Streaming:

  19. Context-Driven, Layered Mixing • Film hat Spielen noch viel voraus, aber Technologie verfügbar • Kontextbasiertes Mixen von Spiel-“Szenen“

  20. Mixing System (interface) • Mixing Category (sounds werden zugeordnet) • Central Mix (parameter für Kategorien) • Mixing Snapshots (Kalkulation für Central Mix) • Mixing Layers (Pre-Mix, Base, Modifying)

More Related