OpenAL

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
OpenAL
[[Файл:OpenAL Logo|220x80px]]
Тип

API

Автор

Loki Software

Разработчик

Creative Technology

Операционная система

Cross-platform

Последняя версия

2.0.7.0 (3 июня, 2009)

Лицензия

LGPL

Сайт

[CreativeLabs.com (недоступная ссылка — историякопия) Проверено 18 октября 2013. connect.creativelabs.com/openal/ CreativeLabs.com] (недоступная ссылка — историякопия) Проверено 18 октября 2013.]

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

История[править | править исходный текст]

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

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

Порты[править | править исходный текст]

Данный API доступен на разных платформах:

Приложения[править | править исходный текст]

Игры:


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

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

Более подробную информацию можно найти на сайте OpenAL.

См. также[править | править исходный текст]

Ссылки[править | править исходный текст]