OpenAL
aus Wikipedia, der freien Enzyklopädie
OpenAL (Open Audio Library) ist eine plattformunabhängige 3D-Audio-API, die hauptsächlich zur Spieleentwicklung geschaffen wurde, aber auch in verschiedensten Audioanwendungen Verwendung findet.
Mit OpenAL lassen sich Soundeffekte wie Raumklang und Dopplereffekt erstellen und einbinden, auch Hardwarebeschleunigung wird unterstützt.
OpenAL unterliegt in weiten Teilen der LGPL und liegt aktuell in der Version 1.1 vor.
Die OpenAL-API kann und soll als Ergänzung zur Grafik-API OpenGL gesehen werden, daher wurde bei der Entwicklung besonders auf Angleichung von Aufbau, Programmierstil und Namenskonventionen geachtet. Zudem ist OpenAL ebenfalls in der Sprache C geschrieben.
Durch die kombinierte Nutzung der beiden Bibliotheken ist eine hohe Portierbarkeit gewährleistet. Ebenso wie bei OpenGL gibt es OpenAL-Implementierungen für zahlreiche Plattformen und Programmiersprachen.
OpenAL ist als direkter Konkurrent zu Microsofts DirectSound (Bestandteil von DirectX) anzusehen. Dank der guten Portierbarkeit hat OpenAL dennoch bis heute eine recht weite Verbreitung gefunden, so gibt es bereits zahlreiche Programme, Spiele und Engines, die OpenAL nutzen.
Inhaltsverzeichnis |
[Bearbeiten] Entstehung und weitere Entwicklung
Die ursprüngliche Idee zu OpenAL entstand 1998 bei Loki Software. Loki Software beschäftigte sich zu dieser Zeit hauptsächlich mit der Portierung von Windows-Spielen nach Linux, da lag der Gedanke nahe eine Audio-API korrespondierend zu der Grafik-API OpenGL zu entwickeln. Da die ersten Versuche nur wenig hervorbrachten, kam man 1999 mit Creative Labs ins Gespräch, um gemeinsam eine standardisierte, plattformunabhängige Audio-API zu entwickeln. Aus dieser Zusammenarbeit entstand im Jahr 2000 die OpenAL 1.0 Spezifikation.
Die ersten Bibliotheken wurden noch im selben Jahr für Linux, Windows, Mac OS 8/9 und BeOS herausgegeben, ein Jahr später veröffentlichte Creative Labs die erste Bibliothek mit Unterstützung der Hardware-Beschleunigung des Soundblaster Live. Diese arbeitete jedoch nur auf Mac OS 8/9 und Windows. Seither wird beständig an der OpenAL-Bibliothek weitergearbeitet, Unterstützung für weitere Plattformen und Audio-Hardware wurde hinzugefügt.
Die zukünftige Entwicklung des OpenAL-Projekts soll ähnlich ablaufen wie im OpenGL-Projekt: Die Hardwarehersteller schreiben Erweiterungen (Extensions) zu OpenAL, welche auch die neuesten Merkmale ihrer Audiogeräte unterstützen. Diese werden durch ein Architecture Review Board (ARB) geprüft, erst zu standardisierten Erweiterungen umgewandelt und später eventuell in den Funktionsumfang von OpenAL aufgenommen.
[Bearbeiten] Unterstützte Plattformen
Die hier gelisteten Plattformen werden voll von der OpenAL 1.0 Implementierung unterstützt, weitere sind in Arbeit.
Plattform | Gerät | Lizenz |
---|---|---|
Mac OS 8/9 | Sound Manager | LGPL |
Mac OS X | Core Audio | LGPL |
Linux | OSS | LGPL |
ALSA | LGPL | |
BSD | Nativ | LGPL |
Solaris | Nativ | LGPL |
IRIX | Nativ | LGPL |
Windows | MMSystem | LGPL |
DirectSound / DirectSound3D | LGPL | |
NVIDIA nForce | LGPL | |
Creative Audigy/X-Fi | Creative Labs | |
Xbox | Nativ | Creative Labs |
Xbox 360 | Nativ | Creative Labs |
[Bearbeiten] Unterstützte Programmiersprachen
OpenAL selbst ist in C programmiert, es existieren Implementierungen / Bindings für verschiedene Programmiersprachen:
Sprache | Name | Plattformen |
---|---|---|
.NET | Tao Framework | Windows, Linux |
Ada | OpenALada | Windows |
C++ | OpenAL++ | Windows, Linux |
Ch | Ch OpenAL Package | Windows, Linux, Mac OS |
Delphi | Delphi OpenAL | Windows, Linux |
Java | JoAL | Windows, Linux, Mac OS |
Java | LWJGL | Windows, Linux, Mac OS |
Macromedia Director | OpenAL Xtra | Windows, Mac OS |
PHP | openal | Windows, Linux, FreeBSD, Mac OS |
Python | pyopenal | Linux, FreeBSD |
[Bearbeiten] Anwendungen, die OpenAL nutzen
[Bearbeiten] Spiele
Eine ganze Reihe Spiele, sowohl kommerzielle als auch freie, wurden bereits mit Hilfe der OpenAL-Bibliothek entwickelt.
Hier eine Auswahl der bekanntesten:
- America's Army: Operations
- Armed Assault
- Battlefield 2
- Call of Juarez
- Cold War
- Doom 3
- Hitman 2
- Jedi Knight 2, Jedi Knight: Jedi Academy
- Postal 2
- Prey
- Unreal 2
- Unreal Tournament 2003/2004
- Quake 4
[Bearbeiten] Bibliotheken / Engines
OpenAL hat inzwischen den Weg in zahlreiche Bibliotheken und Engines gefunden. Eine kleine Auswahl zeigt folgende Liste:
- Lightweight Java Game Library (LWJGL)
- Unreal Engine
- Torque Game Engine
- Classical Moon Game Development Kit
[Bearbeiten] Siehe auch
[Bearbeiten] Weblinks
- OpenAL.org (englisch)
- Tutorial Programming 3D Sound With OpenAL von Dan Ricard (englisch)
- Tutorial A Guide To Starting With OpenAL von Lee Winder (englisch)