OpenAL - OpenAL

OpenAL
OpenAL logo.png
Оригинальный автор (ы)Программное обеспечение Loki
Разработчики)Креативные технологии
Стабильный выпуск
1.1 (установщик 2.1.0.0)[1] / Ноябрь 2009 г.; 11 лет назад (2009-11)
Написано вC
Операционная система15 операционных систем
Видеть: Поддерживаемые платформы
ТипИнтерфейс прикладного программирования
ЛицензияПроприетарный начиная с версии 1.1, LGPL до версии 1.1, BSD в ранних версиях[2]
Интернет сайтwww.openal.org Отредактируйте это в Викиданных

OpenAL (Открыть аудиотеку) это кросс-платформенный аудио интерфейс прикладного программирования (API). Он предназначен для эффективного рендеринга многоканального трехмерного позиционного звука. Его стиль и условные обозначения API намеренно напоминают OpenGL. OpenAL - это трехмерная звуковая библиотека окружающей среды, которая может добавить реализма в игру путем моделирования затухание (ухудшение звука с увеличением расстояния), Эффект Допплера (изменение частоты в результате движения) и плотности материала. OpenAL изначально стремился стать открытый стандарт и Открытый исходный код замена для проприетарный (и, как правило, несовместимы друг с другом) API-интерфейсы 3D-аудио, такие как DirectSound и Core Audio, хотя на практике в основном реализован на различных платформах как обертка вокруг упомянутых проприетарных API или в виде проприетарной вилки и вилки конкретного производителя. В то время как эталонная реализация позже стал проприетарным, существуют реализации с открытым исходным кодом, такие как OpenAL Soft имеется в наличии.

История

OpenAL был первоначально разработан в 2000 году компанией Программное обеспечение Loki чтобы помочь им в их бизнесе перенос Windows игры в Linux.[3] После кончины Локи проект какое-то время поддерживался бесплатно программное обеспечение /сообщество с открытым исходным кодом, и реализовано на NVIDIA Звуковые карты и материнские платы nForce. Сейчас он размещен (и в основном разработан) Креативные технологии при постоянной поддержке со стороны яблоко,[4] Blue Ripple Sound через драйвер Rapture3D OpenAL,[5] и отдельные разработчики с открытым исходным кодом.

Хотя в уставе OpenAL сказано, что будет создан «Совет по анализу архитектуры» (ARB), смоделированный на основе OpenGL ARB, такая организация никогда не создавалась, и спецификация OpenAL обычно обрабатывается и обсуждается по электронной почте в ее общедоступном списке рассылки.

Начиная с версии 1.1, реализация Creative стала проприетарной, а последние выпуски с бесплатными лицензиями по-прежнему доступны через Subversion репозиторий исходного кода. Тем не мение, OpenAL Soft - широко используемая альтернатива с открытым исходным кодом.

Структура и функционал API

Общая функциональность OpenAL закодирована в исходные объекты, аудио буферы и один слушатель. Исходный объект содержит указатель на буфер, скорость, положение и направление звука, а также интенсивность звука. Объект слушателя содержит скорость, положение и направление слушателя, а также общее усиление, применяемое ко всему звуку. Буферы содержат аудиоданные в PCM формат, 8- или 16 бит, в любом монофонический или же стерео формат. Механизм рендеринга выполняет все необходимые вычисления, включая затухание расстояния, Эффект Допплера, так далее.

Конечным результатом всего этого для конечного пользователя является то, что в правильно написанном приложении OpenAL звуки ведут себя вполне естественно, когда пользователь перемещается в трехмерном пространстве виртуального мира. С точки зрения программиста, требуется совсем немного дополнительной работы, чтобы это произошло в существующем трехмерном графическом приложении на основе OpenGL.

В отличие от спецификации OpenGL, спецификация OpenAL включает два подраздела API: ядро, состоящее из фактических вызовов функций OpenAL и API ALC (Audio Library Context), который используется для управления контекстами рендеринга, использованием ресурсов и блокировкой кроссплатформенным способом. Существует также библиотека ALUT (Audio Library Utility Toolkit), которая обеспечивает более высокий уровень «удобных» функций - в точности аналогичных OpenGL.GLUT '.

Для обеспечения дополнительных функций в будущем OpenAL использует механизм расширений. Таким образом, отдельные поставщики могут включать свои собственные расширения в дистрибутивы OpenAL, обычно с целью раскрытия дополнительных функций на своем проприетарном оборудовании. Расширения могут получить статус ARB (Architecture Review Board), что указывает на стандартное расширение, которое будет поддерживаться для обратной совместимости. Расширения ARB могут быть добавлены к основному API через некоторое время.

Для расширенной цифровой обработки сигналов и звуковых эффектов с аппаратным ускорением EFX (Effects Extension) или звуковые расширения окружающей среды (EAX) можно использовать.

Ограничения

В одинокий слушатель Модель в OpenAL адаптирована для одного человека-пользователя и не подходит для искусственного интеллекта, моделирования роботов или нескольких человек-участников, как в совместных музыкальных выступлениях.[6]В этих случаях требуется модель с несколькими слушателями. OpenAL также не принимает во внимание задержки распространения звукаскорость звука используется для Эффект Допплера Только). Расстояние до источника звука выражается только в амплитудном эффекте (затухании), а не в задержке. Следовательно, OpenAL нельзя использовать для разница во времени прибытия расчеты, если эта функция не добавляется отдельно.[7]

Чтобы взять преимущество на полной скорости OpenAL необходима реализация, специфичная для производителя / оборудования, и они редко выпускаются в виде открытого исходного кода. Многие поддерживаемые платформы фактически реализуют OpenAL как обертка который просто переводит вызовы на собственный и часто проприетарный аудио API платформы. В Windows, если конкретная реализация производителя не обнаружена, она вернется к библиотеке оболочки wrap_oal.dll, которая переводит OpenAL в DirectSound (универсальное программное обеспечение) или DirectSound3D (универсальное оборудование); удаление последнего из Виндоус виста onward эффективно сломало общее аппаратное ускорение в современных версиях Windows.[8][9]

Поддерживаемые платформы

API доступен на следующих платформы и Операционные системы:[10] Android (поддерживает OpenSL ES ), AmigaOS 3.x и 4.x,[11] Bada, BlackBerry 10,[12] BlackBerry PlayBook, BSD, iOS (поддерживает Core Audio ), IRIX, Linux (поддерживает ALSA, OSS, ПортАудио и PulseAudio ), Mac OS 8, Mac OS 9 и Mac OS X (Core Audio ), Майкрософт Виндоус (поддерживает DirectSound, Windows Multimedia API и Windows Multimedia Device (MMDevice) API), MorphOS, OpenBSD,[13] Солярис, QNX, и AROS.[14]

Например, поддерживаемые игровые устройства: GameCube, PlayStation 2, PlayStation 3, Xbox, Xbox 360, Wii, и PlayStation портативный.

Приложения

Игры

Известно, что следующие видеоигры используют OpenAL:

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

  • Блендер - Инструмент 3D-моделирования и рендеринга использует OpenAL в качестве встроенного игрового движка.[нужно обновление? ]
  • 3DMark06 - Инструмент тестирования геймера
  • Дельфин (эмулятор) - GameCube и эмулятор Wii
  • Двигатель Vanda[24] - использует OpenAL 1.1 для имитации 2D и 3D звуков
  • Крокет Проект[25]
  • Бино[26] - Программное обеспечение для видеоплеера, поддерживающее стереоскопическое 3D-видео и многоэкранное видео.

Реализации

OpenAL SI
Образец реализации OpenAL является исходной реализацией от Loki и в настоящее время не поддерживается.
OpenAL Soft
OpenAL Soft - это кроссплатформенная программная реализация под лицензией LGPL. Библиотека задумана как совместимое обновление / замена устаревшего образца реализации OpenAL, а также как бесплатная альтернатива уже проприетарному OpenAL. OpenAL Soft поддерживает моно, стерео, 4-канальный, 5.1, 6.1, 7.1 и HRTF выход.[27][28]
AeonWave-OpenAL
AeonWave-OpenAL - это слой эмуляции OpenAL с лицензией LGPL, который использует преимущества аппаратного ускорения, обеспечиваемого несвободный но недорогая 4D-аудио библиотека AeonWave для Linux и Windows от Адалин Б.В.. Автор утверждает, что реализация AeonWave-OpenAL визуализирует трехмерное аудио пять (на AMD Athlon 64 X2 ) до семи (на Intel Atom N270 ) раз быстрее, чем любой OpenAL SI или же OpenAL Soft при тех же условиях.[29] Используя AeonWave библиотека эта реализация поддерживает HRTF, а также пространственный объемный звук для восьми динамиков.
Драйвер Rapture3D OpenAL
Драйвер Rapture3D OpenAL - это несвободный, коммерческая, только для Windows, программная реализация Звук синей ряби. Библиотека предназначена как высокопроизводительная замена для других реализаций. Особенности:[30]
  • 32-битный звуковой тракт с плавающей запятой.
  • Преобразование частоты дискретизации высокого качества (используется для различных целей, включая доплеровский сдвиг).
  • Эффекты и фильтры высокого качества.
  • Направленные источники звука.
  • Поддержка многоканальных источников звука (включая активы, закодированные с использованием Амбисоника ).
  • Единственное ограничение на количество источников или эффектов - это мощность процессора, возможность рендеринга сотен источников звука и множественных эффектов на относительно старом оборудовании.
  • Амбисоника высшего порядка (ТСЖ) автобус работает до четвертого порядка.

Смотрите также

Рекомендации

  1. ^ "Загрузки PCGamingWiki". OpenAL. Creative Labs. Архивировано из оригинал 8 декабря 2017 г.. Получено 7 декабря, 2017.
  2. ^ «Лицензия OpenAL». Архивировано из оригинал 30 декабря 2012 г.. Получено 10 ноября, 2012.
  3. ^ «Пресс-релиз по поводу OpenAL» (Пресс-релиз).
  4. ^ https://opensource.apple.com/tarballs/OpenAL/
  5. ^ http://www.blueripplesound.com/gaming
  6. ^ Возневски, Майк; Сеттел, Зак; Куперсток, Джереми (2007), Пользовательский рендеринг звука и управляемый звук для распределенных виртуальных сред (PDF), получено 5 августа, 2012.
  7. ^ FPS-игра с открытым исходным кодом Alien Arena 2009 выпущена # 28412367
  8. ^ Перечисление с OpenAL в Windows
  9. ^ OpenAL® и Windows Vista ™
  10. ^ «OpenAL - Платформы». Получено 10 мая, 2012.
  11. ^ http://se.aminet.net/dev/lib/openal-soft.readme[постоянная мертвая ссылка ]
  12. ^ "ежевика / OpenAL 路 GitHub". Github.com. Получено 14 января, 2013.
  13. ^ «OpenAL для OpenBSD».
  14. ^ "OpenAL / alut / ogg / vorbis [Форум - Разработка (Общие)". AROS-Exec. Получено 16 июня, 2013.
  15. ^ "Обзор". 0 A.D. Информация об игре. Wildfire Games. Архивировано из оригинал 26 сентября 2013 г.. Получено 5 декабря, 2012.
  16. ^ а б c d е ж грамм час я j k л м п о п q р s т ты v ш Икс у z аа ab «Игры». OpenAL Wiki. Creative Labs. Архивировано из оригинал 10 апреля 2013 г.[самостоятельно опубликованный источник? ]
  17. ^ а б "Форум программного обеспечения СКС". В архиве с оригинала 5 июня 2019 г.. Получено 5 июня, 2019.
  18. ^ "Двигатель HPL - Mod DB". Получено 20 ноября, 2012.
  19. ^ «Устранение неполадок: переустановите OpenAL: Beamdog». Получено 29 мая, 2014.
  20. ^ "сайт ioquake3".
  21. ^ "Звук синей ряби". Получено 23 сентября, 2017.
  22. ^ "Modulaatio Games". Архивировано из оригинал 6 сентября 2012 г.
  23. ^ «Совместимые игры OpenAL». Звук синей ряби.
  24. ^ "Vanda Engine".
  25. ^ Тельман, Флориан; Гаэлли, Маркус (2006). "Jam Tomorrow: совместное создание музыки в крокете с использованием OpenAL". Jam Tomorrow: совместное создание музыки в крокете с использованием OpenAL - публикация конференции IEEE. С. 73–78. CiteSeerX  10.1.1.67.8139. Дои:10.1109 / C5.2006.22. ISBN  978-0-7695-2563-1.
  26. ^ [email protected], Мартин Ламберс. «Бино: бесплатный 3D-видеоплеер - О программе». bino3d.org.
  27. ^ «OpenAL Soft - Программное обеспечение 3D Audio». openal-soft.org. Получено 4 января, 2014.
  28. ^ "Репозиторий OpenAL Soft Git". Получено 26 декабря, 2013.
  29. ^ Хофман, Эрик (9 мая 2012 г.). "[Openal-devel] Объявление: выпущен AeonWave-OpenAL 1.1.7". Архивировано из оригинал 19 января 2013 г.. Получено 9 декабря, 2012. Тесты показали, что AeonWave-OpenAL обрабатывает звук в пять раз быстрее (на процессоре AMD Athlon-64 X2) и до семи раз быстрее (на процессоре Intel Atom-N270), чем OpenAL-Soft и OpenAL-Sample. Рендеринг 32 звуков на Atom-N270 (максимум для OpenAL-Soft) экономит 1 Вт непрерывного энергопотребления в соответствии с powertop.
  30. ^ "Разработчики". Blue Ripple Sound Limited. 2009 г.. Получено 24 января, 2011.

внешняя ссылка