OpenAL (OpenAL)
OpenAL | |
---|---|
Тип | API |
Автор | Loki Software |
Разработчик | Creative Technology |
Написана на | Си[1] |
Операционная система | Cross-platform |
Первый выпуск | июнь 2000 |
Последняя версия | 1.1 (установщик 2.1.0.0) (ноябрь, 2009) |
Лицензия | проприетарная |
Сайт | openal.org (англ.) |
OpenAL (англ. Open Audio Library) — кроссплатформенный интерфейс программирования приложений (API) для работы с аудиоданными. Ключевой особенностью является работа со звуком в 3D-пространстве и использование эффектов EAX. Поддерживается компанией Creative.
История
[править | править код]OpenAL создан фирмой Loki Software как инструмент для их бизнеса — портирование игр с Microsoft Windows на GNU/Linux. После закрытия компании проект некоторое время разрабатывался сообществом свободного ПО — оно добавило функциональность звукового чипсета, встроенного в NVIDIA nForce. Сегодня проект размещён на сервере компании Creative Technology, и по большей части разрабатывается ей.
После выхода спецификации версии 1.1 оригинальная реализация OpenAL была закрыта, вместо неё предлагается использовать проприетарную реализацию, развиваемую компанией Creative. В ответ на это сообщество свободного ПО создало собственную реализацию, основанную на сохранившихся исходных кодах исходной реализации.[2]
Хотя хартия OpenAL гласит, что у проекта должен быть «Наблюдательный совет за архитектурой» (ARB), аналогичный проекту OpenGL ARB, до сих пор ни одна организация не взяла на себя обязанность сформировать стандарт технических спецификаций OpenAL. Спецификации OpenAL существуют в черновом варианте, обсуждаются разработчиками по электронной почте и в общедоступных списках рассылки.
Структура и функциональность
[править | править код]Основные функции библиотеки OpenAL — исходные объекты, аудиобуферы, и единственный слушатель. Исходные объекты включают в себя указатель на буфер, скорость, позицию, направление и интенсивность звука. Слушатель содержит скорость, позицию, направление и общее усиление звука в целом. Буферы содержат аудиоданные в формате PCM в 8-ми либо 16-битном варианте, а также в моно или стерео. Функция рендеринга звука производит необходимые вычисления, такие как определение расстояния, эффекта Доплера, и так далее.
Для конечного пользователя результат обработки этих компонентов OpenAL даёт совершенно естественное звучание при перемещении персонажей в трёхмерном виртуальном мире. А программист может легко задействовать OpenAL в своей готовой трёхмерной OpenGL-программе.
В отличие от спецификаций OpenGL, спецификации OpenAL включают в себя два API: ядро, включающее в себя вызовы функций OpenAL, и ALC (Audio Library Context) — API, используемый для управления контекстом рендеринга, контролем использования ресурсов и задействования блокировок в многопоточных вычислениях. Также существует ALUT — библиотека, предоставляющая функции высокого уровня для упрощения написания программы, она аналогична библиотеке GLUT у OpenGL.
OpenAL расширяем: программисты, либо компании, не входящие в число разработчиков OpenAL, могут добавлять в него свои расширения. Например, для того чтобы «научить» библиотеку задействовать функции своих устройств с закрытыми спецификациями. Расширения могут быть повышены до уровня ARB, то есть войти в спецификации OpenAL в её новой версии.
Для расширенной обработки цифрового сигнала или аппаратного ускорения звука могут быть задействованы EFX (Effects Extension) или EAX.
Реализации
[править | править код]- OpenAL SI
- OpenAL Sample Implementation — исходная реализация с открытым исходным кодом (лицензия BSD), в настоящий момент не поставляется.
- Creative OpenAL
- Creative OpenAL — реализация от компании Creative, пришедшая на смену OpenAL SI.
- OpenAL Soft
- OpenAL Soft — реализация с открытым исходным кодом (лицензия LGPL), поддерживаемая независимой группой разработчиков. Основана на OpenAL SI.[2]
Приложения
[править | править код]Игры[3]:
- Armed Assault от компании Bohemia Interactive Studio.
- На движках id Tech версий 3 и 4: Doom 3, Enemy Territory: Quake Wars, Jedi Knight: Jedi Academy, Jedi Knight 2, Prey, Quake 4 и Wolfenstein.
- На движке Unreal Engine: America's Army, Postal 2, Unreal 2, Unreal Tournament 2003, Unreal Tournament 2004 и Unreal Tournament 3.
- Battlefield 2, Battlefield 2142, Colin McRae: DiRT, Colin McRae: Dirt 2, F1 2010, Freedom Fighters, Hitman, Homefront, Hotline Miami, Penumbra: Black Plague, Psychonauts, Race Driver: GRID, Sacred 2, S.T.A.L.K.E.R и Wurm Online.
- Различное бесплатное программное обеспечение и игры с открытым исходным кодом. Например, FlightGear, Osmos, SuperTuxKart, Warsow и Warzone 2100.
Другие приложения:
- Blender — инструмент трёхмерного моделирования и отрисовки, использующий OpenAL во встроенном игровом движке.
- Unity — трёхмерный игровой движок и среда разработки.
- Медиапроигрыватели SMPlayer, UMPlayer и другие оболочки, такие, например, как MPlayer.
См. также
[править | править код]Примечания
[править | править код]- ↑ The openal Open Source Project on Open Hub: Languages Page — 2006.
- ↑ 1 2 OpenAL Soft - Software 3D Audio . Дата обращения: 25 октября 2008. Архивировано из оригинала 20 июня 2013 года.
- ↑ Games that use OpenAL . Дата обращения: 6 марта 2017. Архивировано 6 марта 2017 года.
Литература
[править | править код]- Martin D. Wilde. Audio Programming for Interactive Games. — Focal Press, 2004. — 200 p. — ISBN 978-0-240-51941-8.
- Peter Bakhirev; PJ Cabrera; Ian Marsh; Scott Penberthy; Ben Britten Smith; Eric Wing. Chapter 10. Making Noise with OpenAL // Beginning iPhone Games Development. — Apress, 2010. — 727 p. — ISBN 978-1-4302-2599-7.
Ссылки
[править | править код]- Оф. сайт OpenAL Soft Архивная копия от 10 марта 2022 на Wayback Machine
- OpenAL Soft на GitHub Архивная копия от 2 мая 2021 на Wayback Machine
- Обучение работе с OpenAL Архивная копия от 19 октября 2013 на Wayback Machine на DevMaster.net