Корисник:Tomkela/песак 5

OpenAL (Open Audio Library) je višeplatformski audio programski interfejs (API). Namenjen je efikasnom obradjivanju trodimenzionalnog prostornog zvuka kroz više kanala. Njegov stil API-ja i konvencije namerno na OpenGL podsećaju. OpenAL je biblioteka za prostorni 3D zvuk, koja može dodati realizam igri simuliranjem slabljenja zvuka (na daljinu), Doplerovog efekta (promena frekvencije kao rezultat kretanja) i gustine materijala.

OpenAL je prvobitno imao cilj biti otvoreni standard i open-source zamena za vlasničke softvere (i uopšte međusobno nespojive) 3D audio API-jeve, poput DirectSounda i Core Audio-a, iako se u praksi uglavnom implementira na raznim platformama kao "omotač" oko spomenutih vlasničkih API-ja ili kao vlasnički i specifičan za određene proizvođače. Iako se referentna implementacija kasnije pretvorila u vlasničku i neodržavanu verziju, postoje otvorene implementacije koje su dostupne kao što je OpenAL Soft.

Početak

уреди

OpenAL je prvobitno razvijen 2000. godine od strane kompanije Loki Software za portovanje Windows igara na Linux.[1] Nakon propasti Loki Software-a, projekat je održavan od strane open source zajednice i implementiran na NVIDIA nForce zvučnim karticama. Creative Technology je bio domaćin projekta sve do 2012. godine.

Od verzije 1.1 (2009), uzorak implementacije od strane Creative-a postao je vlasnički. Međutim, OpenAL Soft je široko korišćena otvorena alternativa koja se i dalje aktivno održava.

Iako u povelji OpenAL-a je bilo planirano formiranje "Architecture Review Board" (ARB) organizacije slične OpenGL ARB-u, ona nikada nije formirana, a specifikacija se uglavnom diskutuje putem e-pošte na javnoj mejling listi.

Originalna lista, OpenAl-devel, koju je vodila kompanija Creative, bila je aktivna od marta 2003. do otprilike avgusta 2012. godine.[2] Ryan C. Gordon, veteran kompanije Loki - koji je nastavio razvoj Simple DirectMedia Layer-a, započeo je novu mailing listu i veb sajt na adresi OpenAL.org , u januaru 2014. godine.[3]

Struktura

уреди

OpenAL koristi objekte izvora, audio bafere i jednog slušaoca. Izvor sadrži podatke o zvuku, kao što su bafer, brzina, pozicija i smer. Slušalac sadrži podatke o slušanju, uključujući brzinu, poziciju i smer slušaoca, kao i opšte pojačanje zvuka. Baferi sadrže audio podatke u PCM formatu, uključujući 8-bitne ili 16-bitne, mono ili stereo formate. Render engine vrši sve potrebne izračune za efekte kao što su slabljenje zvuka sa daljinom, Doplerov efekat, itd.

U pravilno napisanoj OpenAL aplikaciji, zvuci se ponašaju prirodno kako korisnik prolazi kroz trodimenzionalni prostor virtuelnog sveta. OpenAL specifikacija obuhvata jezgro API-ja koje sadrži funkcionalne pozive, kao i ALC (Audio Library Context) API koji se koristi za upravljanje rendering kontekstima, resursima i zaključavanjem na prenosiv način. Tu je i biblioteka "ALUT" (Audio Library Utility Toolkit) koja pruža korisne funkcije, slično kao "GLUT" u OpenGL-u.

OpenAL koristi mehanizam proširenja kako bi omogućio dodatnu funkcionalnost u budućnosti. Proizvođači mogu uključiti svoja sopstvena proširenja u distribucije OpenAL-a, obično kako bi izložili dodatne funkcije na svojem vlasničkom hardveru. Proširenja mogu biti promovisana u ARB (Architecture Review Board) status, što ukazuje na standardno proširenje koje će se održavati radi obrnutu kompatibilnost . Za naprednu obradu signala i hardverski ubrzane zvučne efekte, mogu se koristiti EFX (Effects Extension) ili proširenja za prostorni zvuk (EAX).

Model jednog slušaoca u OpenAL-u je prilagođen jednom ljudskom korisniku i nije pogodan za veštačku inteligenciju, simulacije robota ili više ljudskih učesnika, kao što je to slučaj u kolaborativnim muzičkim izvođenjima.[4] U tim slučajevima je potreban model sa više slušalaca. OpenAL takođe ne uzima u obzir kašnjenje širenja zvuka (brzina zvuka se koristi samo za Doplerov efekat). Rastojanje do izvora zvuka samo se prevodi u efekat amplitude (slabljenje), a ne i kašnjenje. Stoga, OpenAL se ne može koristiti za izračunavanje razlike dolaznog vremena, osim ako ta funkcionalnost nije posebno dodata.[5]

Dostupne platforme

уреди

API je dostupan na sledećim platformama i operativnim sistemima: Android (podržava OpenSL ES), AmigaOS 3.x i 4.x, Bada, BlackBerry 10, BlackBerry PlayBook, BSD, iOS (podržava Core Audio), IRIX, Linux (podržava ALSA, OSS, PortAudio i PulseAudio), Mac OS 8, Mac OS 9 i Mac OS X (Core Audio), Microsoft Windows (podržava DirectSound, Windows Multimedia API i Windows Multimedia Device (MMDevice) API), MorphOS, OpenBSD, Solaris, QNX i AROS.[6]

Podržani gejming uređaji su, na primer: GameCube, PlayStation 2, PlayStation 3, Xbox, Xbox 360, Wii i PlayStation Portable.

Reference

уреди
  1. ^ OpenAL (на језику: енглески), 2023-04-27, Приступљено 2023-05-30 
  2. ^ „Wayback Machine”. web.archive.org. Приступљено 2023-05-30. 
  3. ^ „The openal January 2014 Archive by thread”. openal.org. Приступљено 2023-05-30. 
  4. ^ OpenAL (на језику: енглески), 2023-04-27, Приступљено 2023-05-30 
  5. ^ „Open Source FPS Game Alien Arena 2009 Released - Slashdot”. games.slashdot.org (на језику: енглески). Приступљено 2023-05-30. 
  6. ^ OpenAL (на језику: енглески), 2023-04-27, Приступљено 2023-05-30