Interested Article - OpenAL

OpenAL ( англ. Open A udio L ibrary ) — кроссплатформенный интерфейс программирования приложений (API) для работы с аудиоданными. Ключевой особенностью является работа со звуком в 3D -пространстве и использование эффектов EAX . Поддерживается компанией Creative .

История

OpenAL создан фирмой Loki Software как инструмент для их бизнеса — портирование игр с Microsoft Windows на GNU/Linux . После закрытия компании проект некоторое время разрабатывался сообществом свободного ПО — оно добавило функциональность звукового чипсета, встроенного в NVIDIA nForce . Сегодня проект размещён на сервере компании Creative Technology , и по большей части разрабатывается ей.

После выхода спецификации версии 1.1 оригинальная реализация OpenAL была закрыта, вместо неё предлагается использовать проприетарную реализацию, развиваемую компанией Creative. В ответ на это сообщество свободного ПО создало собственную реализацию, основанную на сохранившихся исходных кодах исходной реализации.

Хотя хартия 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.

Приложения

Игры :

Другие приложения:

  • Blender — инструмент трёхмерного моделирования и отрисовки, использующий OpenAL во встроенном игровом движке.
  • Unity — трёхмерный игровой движок и среда разработки.
  • Медиапроигрыватели SMPlayer , UMPlayer и другие оболочки, такие, например, как MPlayer .

См. также

Примечания

  1. — 2006.
  2. . Дата обращения: 25 октября 2008. Архивировано из 20 июня 2013 года.
  3. . Дата обращения: 6 марта 2017. 6 марта 2017 года.

Литература

  • Martin D. Wilde. . — 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 .

Ссылки

Источник —

Same as OpenAL