Interested Article - OpenAL
- 2020-05-14
- 1
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.
Приложения
Игры :
- 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 и .
- Различное бесплатное программное обеспечение и игры с открытым исходным кодом. Например, FlightGear , Osmos , SuperTuxKart , Warsow и Warzone 2100 .
Другие приложения:
- Blender — инструмент трёхмерного моделирования и отрисовки, использующий OpenAL во встроенном игровом движке.
- Unity — трёхмерный игровой движок и среда разработки.
- Медиапроигрыватели SMPlayer , UMPlayer и другие оболочки, такие, например, как MPlayer .
См. также
Примечания
- — 2006.
- ↑ . Дата обращения: 25 октября 2008. Архивировано из 20 июня 2013 года.
- . Дата обращения: 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 .
Ссылки
- от 10 марта 2022 на Wayback Machine
- от 2 мая 2021 на Wayback Machine
- от 19 октября 2013 на Wayback Machine на DevMaster.net
- 2020-05-14
- 1