OtwórzAL - OpenAL

OtwórzAL
OpenAL logo.png
Pierwotny autor (autorzy) Oprogramowanie Loki
Deweloper(zy) Kreatywna technologia
Wersja stabilna
1.1 (instalator 2.1.0.0) / listopad 2009 ; 11 lat temu ( 2009-11 )
Napisane w C
System operacyjny 15 systemów operacyjnych
Zobacz: Obsługiwane platformy
Rodzaj Interfejs aplikacji do programowania
Licencja Zastrzeżony od v1.1, LGPL przed v1.1, BSD we wczesnych wersjach
Strona internetowa www .openal .org Edytuj to na Wikidanych

OpenAL ( Open Audio Library ) to wieloplatformowy interfejs programowania aplikacji audio (API). Jest przeznaczony do wydajnego renderowania wielokanałowego, trójwymiarowego dźwięku pozycyjnego. Styl i konwencje interfejsu API celowo przypominają te z OpenGL . OpenAL to środowiskowa biblioteka audio 3D, która może dodać realizmu do gry poprzez symulację tłumienia (degradacji dźwięku na odległość), efektu Dopplera (zmiany częstotliwości w wyniku ruchu) i gęstości materiału. OpenAL pierwotnie miał być otwartym standardem i zamiennikiem open source dla zastrzeżonych (i ogólnie niekompatybilnych ze sobą) interfejsów API audio 3D, takich jak DirectSound i Core Audio , chociaż w praktyce został w dużej mierze zaimplementowany na różnych platformach jako opakowanie wokół wspomnianych zastrzeżonych interfejsów API lub jako widelec zastrzeżony i specyficzny dla dostawcy. Chociaż implementacja referencyjna stała się później zastrzeżona, dostępne są implementacje open source, takie jak OpenAL Soft .

Historia

OpenAL został pierwotnie opracowany w 2000 roku przez Loki Software, aby pomóc im w przenoszeniu gier Windows na Linuksa . Po upadku Loki projekt był przez pewien czas utrzymywany przez społeczność wolnego oprogramowania / open source i wdrażany na kartach dźwiękowych i płytach głównych NVIDIA nForce. Obecnie jest hostowany (i w dużej mierze rozwijany) przez Creative Technology ze stałym wsparciem Apple , Blue Ripple Sound za pośrednictwem ich Rapture3D OpenAL Driver oraz indywidualnych programistów open-source.

Chociaż statut OpenAL mówi, że powstanie „Architecture Review Board” (ARB) wzorowane na OpenGL ARB, żadna taka organizacja nigdy nie została utworzona, a specyfikacja OpenAL jest ogólnie obsługiwana i omawiana za pośrednictwem poczty elektronicznej na publicznej liście dyskusyjnej.

Od wersji 1.1 implementacja firmy Creative stała się prawnie zastrzeżona, a ostatnie wydania na wolnych licencjach są nadal dostępne za pośrednictwem repozytorium kodu źródłowego Subversion projektu . Jednak OpenAL Soft jest szeroko stosowaną alternatywą open source.

Struktura i funkcjonalność API

Ogólna funkcjonalność OpenAL jest zakodowana w obiektach źródłowych , buforach audio i pojedynczym słuchaczu . Obiekt źródłowy zawiera wskaźnik do bufora, prędkość, położenie i kierunek dźwięku oraz intensywność dźwięku. Obiekt słuchacza zawiera prędkość, pozycję i kierunek słuchacza oraz ogólne wzmocnienie zastosowane do wszystkich dźwięków. Bufory zawierają dane audio w formacie PCM , 8- lub 16-bitowym , w formacie mono lub stereo . Silnik renderujący wykonuje wszystkie niezbędne obliczenia w zakresie tłumienia odległości, efektu Dopplera itp.

Rezultatem tego wszystkiego dla użytkownika końcowego jest to, że we właściwie napisanej aplikacji OpenAL dźwięki zachowują się całkiem naturalnie, gdy użytkownik porusza się w trójwymiarowej przestrzeni wirtualnego świata. Z punktu widzenia programisty, aby to się stało w istniejącej aplikacji graficznej 3D opartej na OpenGL, potrzeba bardzo niewiele dodatkowej pracy.

W przeciwieństwie do specyfikacji OpenGL, specyfikacja OpenAL zawiera dwie podsekcje API : rdzeń składający się z rzeczywistych wywołań funkcji OpenAL oraz API ALC (Audio Library Context), które służy do zarządzania kontekstami renderowania, wykorzystaniem zasobów i blokowaniem na wielu platformach sposób. Istnieje również biblioteka „ALUT” (Audio Library Utility Toolkit), która zapewnia funkcje „wygodne” wyższego poziomu — dokładnie analogiczne do „ GLUT ” OpenGL .

W celu zapewnienia dodatkowej funkcjonalności w przyszłości, OpenAL wykorzystuje mechanizm rozszerzeń. Poszczególni dostawcy mogą w ten sposób dołączać własne rozszerzenia do dystrybucji OpenAL, zwykle w celu udostępnienia dodatkowych funkcji na ich zastrzeżonym sprzęcie. Rozszerzenia mogą być promowane do statusu ARB (Architecture Review Board), co wskazuje na standardowe rozszerzenie, które będzie utrzymywane w celu zapewnienia kompatybilności wstecznej. Rozszerzenia ARB mają szansę zostać dodane do podstawowego interfejsu API po pewnym czasie.

Do zaawansowanego przetwarzania sygnału cyfrowego i akcelerowanych sprzętowo efektów dźwiękowych można użyć rozszerzenia EFX (rozszerzenie efektów) lub rozszerzeń dźwięku środowiskowego (EAX).

Ograniczenia

Model pojedynczego słuchacza w OpenAL jest dostosowany do pojedynczego użytkownika i nie nadaje się do sztucznej inteligencji lub symulacji robotów lub wielu ludzkich uczestników, jak w przypadku wspólnych występów muzycznych. W takich przypadkach wymagany jest model wielu słuchaczy. OpenAL również nie bierze pod uwagę opóźnień propagacji dźwięku ( prędkość dźwięku jest używana tylko w efekcie Dopplera ). Odległość do źródła dźwięku przekłada się jedynie na efekt amplitudy (tłumienie), a nie na opóźnienie. W związku z tym OpenAL nie może być używany do obliczania różnicy czasu przybycia, chyba że ta funkcja zostanie dodana osobno.

Aby w pełni wykorzystać zalety OpenAL, potrzebna jest implementacja specyficzna dla dostawcy/sprzętu, która rzadko jest udostępniana jako open source. Wiele obsługiwanych platform faktycznie implementuje OpenAL jako opakowanie, które po prostu tłumaczy wywołania na natywny i często zastrzeżony interfejs API audio platformy. W systemie Windows, jeśli implementacja specyficzna dla dostawcy nie zostanie wykryta, nastąpi powrót do biblioteki wrap_oal.dll, która tłumaczy OpenAL na DirectSound (ogólne oprogramowanie) lub DirectSound3D (ogólny sprzęt); usunięcie tego ostatniego z systemu Windows Vista skutecznie złamało ogólne przyspieszenie sprzętowe w nowoczesnych wersjach systemu Windows.

Obsługiwane platformy

API jest dostępne na następujących platformach i systemach operacyjnych : Android (obsługuje OpenSL ES ), AmigaOS 3.xi 4.x, Bada , BlackBerry 10 , BlackBerry PlayBook , BSD , iOS (obsługuje Core Audio ), IRIX , Linux (obsługuje ALSA , OSS , PortAudio i PulseAudio ), Mac OS 8 , Mac OS 9 i Mac OS X ( Core Audio ), Microsoft Windows (obsługuje DirectSound , Windows Multimedia API i Windows Multimedia Device (MMDevice) API), MorphOS , OpenBSD , Solaris , QNX i AROS .

Obsługiwane urządzenia do gier to na przykład: GameCube , PlayStation 2 , PlayStation 3 , Xbox , Xbox 360 , Wii i PlayStation Portable .

Aplikacje

Gry

Następujące gry wideo korzystają z OpenAL:

Inne aplikacje

  • Blender – narzędzie do modelowania i renderowania 3D wykorzystuje OpenAL do wbudowanego silnika gry
  • 3DMark06 – narzędzie do testowania graczy
  • Dolphin (emulator)emulator GameCube i Wii
  • Vanda Engine – wykorzystuje OpenAL 1.1 do symulacji dźwięków 2D i 3D
  • Projekt krokietowy
  • Bino — oprogramowanie odtwarzacza wideo obsługujące stereoskopowe wideo 3D i wideo na wielu wyświetlaczach

Realizacje

OtwórzAL SI
Przykładowa implementacja OpenAL jest oryginalną implementacją firmy Loki i nie jest obecnie obsługiwana.
OtwórzAL Soft
OpenAL Soft to wieloplatformowa implementacja oprogramowania na licencji LGPL. Biblioteka ma być kompatybilną aktualizacją/zamiennikiem przestarzałej implementacji przykładowej OpenAL, a także bezpłatną alternatywą dla obecnie zastrzeżonego OpenAL. OpenAL Soft obsługuje wyjścia mono, stereo, 4-kanałowe, 5.1, 6.1, 7.1, HRTF, UHJ i B-Format.
AeonWave-OpenAL
AeonWave-OpenAL jest LGPL licencjonowane OpenAL warstwa emulacji, która korzysta z akceleracji sprzętowej dostarczonych przez non-free , ale niski koszt AeonWave 4D-audio, biblioteka dla Linux i Windows przez Adalin BV . Autor twierdzi, że implementacja AeonWave-OpenAL renderuje dźwięk 3D od pięciu (na AMD Athlon 64 X2 ) do siedmiu (na Intel Atom N270 ) razy szybciej niż OpenAL SI lub OpenAL Soft w tych samych warunkach. Korzystając z biblioteki AeonWave, implementacja ta obsługuje HRTF, a także przestrzenny dźwięk przestrzenny dla maksymalnie ośmiu głośników.
Sterownik Rapture3D OpenAL
Rapture3D OpenAL kierowca jest non-free , handlowych, tylko Windows, wdrażanie oprogramowania przez blue falowanie dźwięku . Biblioteka jest przeznaczona jako wysokowydajny zamiennik dla innych implementacji. Zawiera:
  • 32-bitowa zmiennoprzecinkowa ścieżka audio.
  • Wysokiej jakości konwersja częstotliwości próbkowania (używana do różnych celów, w tym przesunięcia Dopplera).
  • Wysokiej jakości efekty i filtry.
  • Kierunkowe źródła dźwięku.
  • Obsługa wielokanałowych źródeł dźwięku (w tym zasobów zakodowanych przy użyciu Ambisonics ).
  • Jedynym ograniczeniem liczby źródeł lub efektów jest moc procesora, która może renderować setki źródeł dźwięku i wiele efektów na stosunkowo starym sprzęcie.
  • Autobus Ambisonics wyższego rzędu (HOA) działający na poziomie do czwartego rzędu.

Zobacz też

Bibliografia

Zewnętrzne linki