Integration von OpenAL in eine OpenGL-Anwendung: Streaming von ogg- und wav-Dateien (Download)

Im zweiten OpenAl-Programmbeispiel dreht sich alles um das Thema Streaming. Audio-Dateien (wahlweise im ogg- bzw. wav-Format) werden in unabhängigen Threads schrittweise eingelesen und abgespielt. Zum Einsatz kommt diese Technik bei der Ausgabe von Sprache sowie der Hintergrundmusik.

Im heutigen Programmbeispiel befassen wir uns mit der Integration von OpenAL in eine OpenGL-Anwendung. Im Fokus steht dabei zunächst der Einsatz von 3D-Soundquellen in Kombination mit EAX (bzw. EFX) Effekten.

Als Ausgangspunkt für das heutige Tutorial dient wiederum das OpenGL-Programmbeispiel 28 (thread-basierte Kollisionsberechnungen zwischen Asteroiden). Kommt es zu einer Kollision, dann wird an der betreffenden Stelle eine 3D-Soundquelle positioniert und ein Soundeffekt abgespielt. Entsprechend der Voreinstellungen (siehe Datei SoundAndMusicSettings.txt Verzeichnis Bin) wird ein Soundeffekt mit einem zusätzlichen EFX-Effekt kombiniert. Untermalt wird das Ganze nun jedoch mit zusätzlicher Hintergrundmusik.

Hinweis:
Für die Ausführung dieses Programmbeispiels muss der Treiber Ihrer Grafikkarte die OpenGL Version 3.3 unterstützen. Zudem müssen Sie auf Ihrem Rechner die OpenAL-Bibliotheken (oalinst) installiert haben:
http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx

Visual C++ 2010: DemoWithOpenGL2010_Tut40