Przenośność na średnim poziomie

Podczas odbywającej się w marcu tego roku w San Jose konferencji producentów gier komputerowych (Game Developer Conference 2000) przedstawiono projekt nowego dźwiękowego środowiska programistycznego (3D Sound API) - OpenAL — które może zrewolucjonizować dotychczasowe zasady "udźwiękawiania" programów komputerowych. Według wspierających to rozwiązanie firm Creative oraz Loki Entertainment OpenAL ma w przyszłości stać się akustycznym odpowiednikiem […]

Podczas odbywającej się w marcu tego roku w San Jose konferencji producentów gier komputerowych (Game Developer Conference 2000) przedstawiono projekt nowego dźwiękowego środowiska programistycznego (3D Sound API) –

OpenAL — które może zrewolucjonizować dotychczasowe zasady „udźwiękawiania” programów komputerowych. Według wspierających to rozwiązanie firm Creative oraz Loki Entertainment OpenAL ma w przyszłości stać się akustycznym odpowiednikiem biblioteki OpenGL, która stanowi powszechnie uznany standard w graficznych zastosowaniach 3D. Wiele z cech proponowanego rozwiązania uzasadnia taką tezę i pozwala wierzyć, że zdobędzie ono popularność oraz ułatwi tworzenie uniwersalnych i efektownych „silników” dźwiękowych dla kolejnej generacji gier komputerowych i innych programów multimedialnych.

Jak bardzo otwarty?

Jednym z najważniejszych założeń „otwartej biblioteki dźwiękowej” jest jej uniwersalność. OpenAL – w odróżnieniu od przeznaczonych dla systemów Windows API (DirectSound3D oraz Aureal A3D) – jest biblioteką międzyplatformową. Co ciekawe, nie chodzi tu bynajmniej tylko o różne systemy operacyjne dla komputerów PC, gdyż nowy standard, oprócz Windows 9x/2000 i Linuksa, obowiązywać ma m.in. również na maszynach Apple’a.

Pod względem zasady działania stanowi on środowisko programistyczne tzw. średniego poziomu (mid-level library) i pełni funkcję pośrednika pomiędzy wykorzystywanym przez użytkownika oprogramowaniem multimedialnym (np. gry komputerowe) a sterownikami niskopoziomowymi opracowywanymi przez producenta procesora dźwiękowego. Podobnie jak OpenGL, dźwiękowy „kuzyn” graficznego standardu jest dość wyspecjalizowany i nie zapewnia realizacji wszystkich, związanych z dźwiękiem zadań. Gwarantuje obsługę wyłącznie interakcyjnego dźwięku przestrzennego – stąd też wśród udostępnianych przez niego funkcji próżno szukać takich, które umożliwią odtwarzanie strumieni komunikatów MIDI czy też sterowanie „odgrywaniem” ścieżek audio z płyt CD. Aby jednak nie utrudniać korzystania z tego typu funkcji kart dźwiękowych, architekturę OpenAL cechuje duża elastyczność – przewidziany jest m.in. znany z OpenGL mechanizm rozszerzeń (extensions) pozwalających na powiększanie funkcjonalności API. Biblioteka udostępnia także mechanizm inteligentnego zarządzania zasobami, nie blokującego nie wykorzystywanych przez nią modułów podsystemu audio.

Profesjonalne zaplecze

W pracach nad OpenAL zwrócono szczególną uwagę na wypełnienie wszystkich założeń profesjonalnych specyfikacji interakcyjnego dźwięku przestrzennego – 3D Audio Rendering and Evaluation Guidelines Level 1 i Level 2 – przygotowanych wspólnie przez producentów sprzętu audio, zrzeszonych w tym celu w grupie 3D Working Group of the Interactive Audio Special Interest Group (notabene powiązanej bezpośrednio ze stowarzyszeniem producentów instrumentów i sprzętu muzycznego – MIDI Manufacturers Association). Konsekwencją zgodności z pierwszym poziomem specyfikacji (I3DL1) jest gwarantowany zakres udostępnianych funkcji (pozycjonowanie dźwięku w przestrzeni) i ich możliwości.

Struktura powiązań logicznych pomiędzy OpenAL a sterownikami niskopoziomowymi przypomina tę znaną z oprogramowania sterującego kart graficznych 3dfx, a dokładniej – dostarczanego z wcześniejszymi układami 3dfx miniklienta OpenGL dla Windows czy też sterownika Mesa w Linuksie (biblioteka średniego poziomu), wykorzystującego API Glide (niskiego poziomu).

O ile bezpośrednia realizacja poszczególnych efektów zależna jest oczywiście od sposobu działania i możliwości konkretnej karty muzycznej, o tyle OpenAL udostępnia prostą i kompletną metodę przekazywania układowi dźwiękowemu wszelkich niezbędnych dla jego poprawnego działania informacji. Ze względu na zgodność z drugą edycją specyfikacji (I3DL2) nowy standard umożliwia również korzystanie ze zdobywających obecnie popularność tzw. rozszerzeń środowiskowych oraz dynamicznej analizy geometrycznej budowy „udźwiękawianej” wirtualnej rzeczywistości. Pomimo niewątpliwie już niemałych możliwości OpenAL jest stale rozwijany przez swoich twórców.

Perspektywy

Wprowadzanie nowego standardu interakcyjnego dźwięku 3D może wydawać się obecnie nieco karkołomne. Szczególnie ze względu na to, że jeden z najaktywniejszych uczestników „ruchu” – firma Creative – całkiem niedawno aktywnie promowała rozszerzenia API DirectSound3D (EAX), wzbogacające możliwości biblioteki Microsoftu o dynamicznie przydzielaną (charakterystyczną dla danej sceny 3D) rewerbację (pogłos). Wbrew pozorom OpenAL ma jednak dużą szansę na sukces, choćby dlatego, że jest standardem – de facto – otwartym i dostępnym dla zainteresowanych bezpłatnie na zasadach licencji GNU (LGPL – Lesser GNU Public License). Wydaje się on również idealną propozycją dla żądnych akustycznych wrażeń użytkowników Linuksa: w przypadku tego systemu prawdopodobnie po raz pierwszy pojawia się profesjonalne dźwiękowe środowisko programistyczne wspierane przez twórców sprzętu audio oraz oprogramowania multimedialnego (Loki Entertainment jest producentem linuksowych wersji popularnych gier, w tym m.in. Civilisation: Call to Power).

Wkrótce spodziewana jest premiera pierwszej korzystającej z OpenAL gry – przygotowywanej właśnie przez Loki Entertainment linuksowej wersji Heavy Gear II. Dalszy rozwój OpenAL może mieć duże znaczenie także i dla użytkowników systemów Windows, choćby ze względu na niepewną sytuację firmy Aureal, uważanej do niedawna za lidera wśród producentów wspierających technologie interakcyjnego dźwięku 3D (A3D 3.0). O ile zastąpienie biblioteki DirectSound3D w przypadku systemów Microsoftu przez OpenAL wydaje się raczej bardzo wątpliwe, to jednak pojawiająca się alternatywa ułatwi z pewnością przenoszenie oprogramowania między różnymi platformami i udostępnianie go szerszemu gronu użytkowników. Losy OpenAL zależą od tego, jakiego wsparcia udzielą mu poszczególni producenci sprzętu i oprogramowania, ale o tym przekonamy się dopiero po pewnym czasie…

Info
Grupy dyskusyjne
Pytania, uwagi i komentarze do artykułu: #
Pytania techniczne: #
Internet
OpenALhttp://www.openal.org/
3D Audio Working Group (3DWG)http://www.iasig.org/pages/wg/3DWG/3dwg.htm
Na dołączonym CD-ROM-ie w dziale Aktualności | Tendencje znajdują się dokumentacja oraz biblioteki OpenAL
0
Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.