OpenAL - OpenAL

OpenAL
Logo OpenAL.png
Původní autoři Software Loki
Vývojáři Kreativní technologie
Stabilní uvolnění
1.1 (instalátor 2.1.0.0) / listopad 2009 ; Před 11 lety ( 2009-11 )
Napsáno C
Operační systém 15 operačních systémů
Viz: Podporované platformy
Typ Rozhraní pro programování aplikací
Licence Proprietární od v1.1, LGPL před v1.1, BSD v dřívějších verzích
webová stránka www .openal .org Upravte to na Wikidata

OpenAL ( Open Audio Library ) je multiplatformní rozhraní pro programování zvukových aplikací (API). Je navržen pro efektivní vykreslování vícekanálového trojrozměrného pozičního zvuku. Jeho styl a konvence API se záměrně podobají těm a OpenGL . OpenAL je environmentální 3D zvuková knihovna, která může hře dodat realismus simulací útlumu (degradace zvuku na vzdálenost), dopplerovského efektu (změna frekvence v důsledku pohybu) a hustoty materiálu. OpenAL měl původně být otevřeným standardem a open-source náhradou za proprietární (a obecně navzájem nekompatibilní) 3D audio API, jako je DirectSound a Core Audio , ačkoli v praxi byla do značné míry implementována na různých platformách jako obal kolem zmíněných proprietárních API nebo jako proprietární vidlice specifická pro prodejce. Zatímco referenční implementace se později stala proprietární, jsou k dispozici implementace open source, jako je OpenAL Soft .

Dějiny

OpenAL byl původně vyvinut v roce 2000 Loki Software, aby jim pomohl v jejich podnikání portování her Windows na Linux . Po zániku Loki byl projekt po určitou dobu udržován komunitou svobodného softwaru / open source a implementován na zvukové karty a základní desky NVIDIA nForce. Nyní ho hostuje (a do značné míry vyvíjí) společnost Creative Technology s pokračující podporou od společnosti Apple , Blue Ripple Sound prostřednictvím ovladače Rapture3D OpenAL Driver a jednotlivých vývojářů s otevřeným zdrojovým kódem.

Zatímco charta OpenAL říká, že podle OpenGL ARB bude existovat „Architecture Review Board“ (ARB), žádná taková organizace nebyla nikdy vytvořena a specifikace OpenAL je obecně zpracovávána a projednávána prostřednictvím e -mailu na jejím veřejném seznamu adresátů.

Od 1.1 se implementace Creative stala proprietární, přičemž poslední verze bezplatných licencí jsou stále přístupné prostřednictvím úložiště zdrojového kódu projektu Subversion . Nicméně, OpenAL Soft je široce používán open source alternativa.

Struktura a funkce API

Obecná funkce OpenAL je zakódována ve zdrojových objektech , zvukových vyrovnávacích pamětech a jednom posluchači . Zdrojový objekt obsahuje ukazatel na vyrovnávací paměť, rychlost, polohu a směr zvuku a intenzitu zvuku. Objekt posluchače obsahuje rychlost, polohu a směr posluchače a obecný zisk aplikovaný na veškerý zvuk. Vyrovnávací paměti obsahují zvuková data ve formátu PCM , buď 8- nebo 16bitová , v monofonním nebo stereo formátu. Vykreslovací modul provádí všechny potřebné výpočty, pokud jde o útlum vzdálenosti, Dopplerův efekt atd.

Čistým výsledkem toho všeho pro koncového uživatele je, že ve správně napsané aplikaci OpenAL se zvuky chovají zcela přirozeně, když se uživatel pohybuje v trojrozměrném prostoru virtuálního světa. Z pohledu programátora je k tomu zapotřebí velmi málo další práce ve stávající 3D grafické aplikaci založené na OpenGL.

Na rozdíl od specifikace OpenGL obsahuje specifikace OpenAL dvě podsekce API : jádro sestávající ze skutečných volání funkcí OpenAL a API ALC (Audio Library Context), které se používá ke správě kontextů vykreslování, využití zdrojů a zamykání na více platformách způsob. Existuje také knihovna 'ALUT' (Audio Library Utility Toolkit), která poskytuje funkce vyšší úrovně 'pohodlí' - přesně analogické s ' GLUT ' OpenGL .

Aby bylo možné v budoucnu poskytovat další funkce, OpenAL využívá mechanismus rozšíření. Jednotliví prodejci jsou tak schopni zahrnout svá vlastní rozšíření do distribucí OpenAL, obvykle za účelem odhalení dalších funkcí na jejich proprietárním hardwaru. Rozšíření lze povýšit do stavu ARB (Architecture Review Board), což označuje standardní rozšíření, které bude zachováno z důvodu zpětné kompatibility. Rozšíření ARB mají vyhlídky na přidání do jádra API po určité době.

Pro pokročilé zpracování digitálního signálu a hardwarově akcelerované zvukové efekty lze použít EFX (Effects Extension) nebo environmentální audio rozšíření (EAX).

Omezení

Model jednoho posluchače v OpenAL je přizpůsoben jednomu lidskému uživateli a není vhodný pro umělou inteligenci nebo robotické simulace nebo pro více lidských účastníků jako při společných hudebních představeních. V těchto případech je vyžadován model více posluchačů. OpenAL také nebere v úvahu zpoždění šíření zvuku ( rychlost zvuku se používá pouze pro Dopplerův efekt ). Vzdálenost ke zdroji zvuku se promítá pouze do efektu amplitudy (útlumu) a nikoli do zpoždění. OpenAL proto nelze použít pro výpočet časového rozdílu příjezdu, pokud není tato funkce přidána samostatně.

Aby bylo možné využívat výhody OpenAL v plné rychlosti , je nutná implementace specifická pro dodavatele/hardware a ty jsou zřídka vydávány jako open source. Mnoho podporovaných platforem ve skutečnosti implementuje OpenAL jako obal, který jednoduše překládá volání do nativního a často proprietárního zvukového API. Pokud v systému Windows není detekována implementace specifická pro dodavatele, vrátí se zpět do knihovny wrapper_oal.dll, která překládá OpenAL do DirectSound (obecný software) nebo DirectSound3D (obecný hardware); odstranění posledně uvedeného z Windows Vista dále účinně narušilo generickou hardwarovou akceleraci v moderních verzích Windows.

Podporované platformy

API je k dispozici na následujících platformách a operačních systémech : Android (podporuje OpenSL ES ), AmigaOS 3.xa 4.x, Bada , BlackBerry 10 , BlackBerry PlayBook , BSD , iOS (podporuje Core Audio ), IRIX , Linux (podporuje ALSA , OSS , PortAudio a PulseAudio ), Mac OS 8 , Mac OS 9 a Mac OS X ( Core Audio ), Microsoft Windows (podporuje DirectSound , Windows Multimedia API a Windows Multimedia Device (MMDevice) API), MorphOS , OpenBSD , Solaris , QNX a AROS .

Podporovaná herní zařízení jsou například: GameCube , PlayStation 2 , PlayStation 3 , Xbox , Xbox 360 , Wii a PlayStation Portable .

Aplikace

Hry

O následujících videohrách je známo, že používají OpenAL:

Další aplikace

  • Blender -nástroj pro 3D modelování a vykreslování používá jako vestavěný herní engine OpenAL
  • 3DMark06 - nástroj pro srovnávání hráčů
  • Dolphin (emulátor) - emulátor GameCube a Wii
  • Vanda Engine - používá OpenAL 1.1 k simulaci 2D a 3D zvuků
  • Kroketový projekt
  • Bino - software pro přehrávání videa, který podporuje stereoskopické 3D video a video s více obrazovkami

Implementace

OpenAL SI
Ukázková implementace OpenAL je původní implementace od Loki a v současné době není udržována.
OpenAL Soft
OpenAL Soft je LGPL licencovaná softwarová implementace napříč platformami. Knihovna je míněna jako kompatibilní aktualizace/náhrada zastaralé ukázkové implementace OpenAL a také jako bezplatná alternativa k nyní proprietárnímu OpenAL. OpenAL Soft podporuje mono, stereo, 4kanálový, 5.1, 6.1, 7.1, HRTF, UHJ a B-formátový výstup.
AeonWave-OpenAL
AeonWave-OpenAL je emulační vrstva OpenAL s licencí LGPL, která využívá výhody hardwarové akcelerace, kterou poskytuje bezplatná, ale levná zvuková knihovna AeonWave 4D pro Linux a Windows od Adalin BV . Autor tvrdí, že implementace AeonWave-OpenAL vykresluje 3D zvuk pětkrát (na AMD Athlon 64 X2 ) až sedm (na Intel Atom N270 ) krát rychleji než OpenAL SI nebo OpenAL Soft za stejných podmínek. Použitím knihovny AeonWave tato implementace podporuje HRTF i prostorový prostorový zvuk až pro osm reproduktorů.
Ovladač Rapture3D OpenAL
Ovladač Rapture3D OpenAL je bezplatná , komerční, softwarová implementace pouze pro Windows vytvořená společností Blue Ripple Sound . Knihovna je určena jako vysoce výkonná náhrada za jiné implementace. To představuje:
  • 32bitová zvuková cesta s plovoucí desetinnou čárkou.
  • Vysoce kvalitní převod vzorkovací frekvence (používá se pro různé účely včetně dopplerovského posunu).
  • Vysoce kvalitní efekty a filtry.
  • Směrové zdroje zvuku.
  • Podpora vícekanálových zdrojů zvuku (včetně prostředků kódovaných pomocí Ambisonics ).
  • Jediným omezením počtu zdrojů nebo efektů je výkon procesoru, který dokáže vykreslit stovky zdrojů zvuku a více efektů na relativně starém hardwaru.
  • Autobus Ambisonics (HOA) vyššího řádu běží až na čtvrtém řádu.

Viz také

Reference

externí odkazy