Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

OpenAL был первоначально разработан в 2000 году компанией Loki Software, чтобы помочь им в их бизнесе по портированию игр для Windows на Linux . [3] После кончины Loki проект некоторое время поддерживался сообществом свободного программного обеспечения / открытого исходного кода и реализовывался на звуковых картах и ​​материнских платах NVIDIA nForce. Сейчас он размещен (и в основном разработан) компанией Creative Technology при постоянной поддержке Apple , [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 (контекст аудиобиблиотеки), который используется для управления контекстами рендеринга, использованием ресурсов и блокировкой на кросс-платформе. манера. Существует также библиотека 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 (универсальное оборудование); удаление последнего из Windows Vista и далее фактически нарушило общее аппаратное ускорение в современных версиях 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 , PortAudio и PulseAudio ), Mac OS 8 , Mac OS 9 и Mac OS X( Core Audio ), Microsoft Windows (поддерживает DirectSound , Windows Multimedia API и Windows Multimedia Device (MMDevice) API), MorphOS , OpenBSD , [13] Solaris , QNX и AROS . [14]

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

Приложения [ править ]

Игры [ править ]

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

  • 0 г. н.э. [15]
  • Альфа-протокол
  • Армия Америки: операции [16]
  • Американский симулятор грузовиков [17]
  • Амнезия: Темное происхождение [18]
  • Вооруженное нападение [16]
  • Baldur's Gate: Enhanced Edition [19]
  • Поле битвы 2 [16]
  • Поле битвы 2142 [16]
  • BioShock [16]
  • Колин МакРэй: DiRT [16]
  • Гибель 3 [16]
  • Euro Truck Simulator 2 [17]
  • FlightGear [16]
  • ioquake3 [20]
  • Jedi Knight II: Jedi Outcast [16]
  • Рыцарь-джедай: Академия джедаев [16]
  • Mari0 [16]
  • Mass Effect (видеоигра) [21]
  • OpenArena [16]
  • Орбз [16]
  • Полутень: Увертюра [16]
  • Почтовый 2 [16]
  • Добыча [16]
  • Психонавты [16]
  • Землетрясение 4 [16]
  • Гонщик: Грид [22]
  • Regnum Online [16]
  • Бег с винтовками [23]
  • СТАЛКЕР [16]
  • Системный шок 2 [24]
  • Темный мод [16]
  • Дрожь [16]
  • Unreal II: Пробуждение [16]
  • Unreal Tournament 2003 [16]
  • Unreal Tournament 2004 [16]
  • Нереальный турнир 3 [16]
  • War§ow [16]
  • Wurm Online [16]

Другие приложения [ править ]

  • Blender - инструмент 3D-моделирования и рендеринга использует OpenAL в качестве встроенного игрового движка [ требуется обновление? ]
  • 3DMark06 - инструмент для тестирования производительности геймеров
  • Dolphin (эмулятор) - GameCube и эмулятор Wii
  • Vanda Engine [25] - использует OpenAL 1.1 для имитации двухмерных и трехмерных звуков.
  • Крокетный проект [26]
  • Bino [27] - программное обеспечение для видеоплеера, поддерживающее стереоскопическое 3D-видео и многоэкранное видео.

Реализации [ править ]

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

См. Также [ править ]

  • OpenCL
  • OpenML
  • OpenMAX AL
  • FMOD
  • Java OpenAL
  • irrKlang
  • Легкая библиотека игр Java

Ссылки [ править ]

  1. ^ "Загрузки PCGamingWiki" . OpenAL . Творческие лаборатории. Архивировано из оригинала 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 AD Информация об игре . Игры Wildfire. Архивировано из оригинального 26 сентября 2013 года . Проверено 5 декабря 2012 года .
  16. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab "Игры" . OpenAL Wiki . Творческие лаборатории. Архивировано из оригинального 10 апреля 2013 года .[ самостоятельно опубликованный источник? ]
  17. ^ a b "Форум программного обеспечения SCS" . Архивировано 5 июня 2019 года . Проверено 5 июня 2019 года .
  18. ^ "Двигатель HPL - Mod DB" . Проверено 20 ноября 2012 года .
  19. ^ «Устранение неполадок: переустановите OpenAL: Beamdog» . Проверено 29 мая 2014 года .
  20. ^ "Сайт ioquake3" .
  21. ^ "Звук синей ряби" . Проверено 23 сентября 2017 года .
  22. ^ "Звук синей ряби" . Проверено 23 сентября 2017 года .
  23. ^ "Modulaatio Games" . Архивировано из оригинального 6 -го сентября 2012 года.
  24. ^ «Совместимые игры OpenAL» . Звук синей ряби .
  25. ^ "Двигатель Ванды" .
  26. ^ Тальманн, Флориан; Гаэлли, Маркус (2006). "Jam Tomorrow: совместное создание музыки в крокете с использованием OpenAL". Jam Tomorrow: совместное создание музыки в крокете с использованием OpenAL - публикация конференции IEEE . С. 73–78. CiteSeerX 10.1.1.67.8139 . DOI : 10.1109 / C5.2006.22 . ISBN  978-0-7695-2563-1. S2CID  5577203 .
  27. ^ [email protected], Мартин Ламберс. «Бино: бесплатный 3D видеоплеер - О программе» . bino3d.org .
  28. ^ "OpenAL Soft - программное обеспечение 3D Audio" . openal-soft.org . Проверено 4 января 2014 года .
  29. ^ "Репозиторий OpenAL Soft Git" . Проверено 26 декабря 2013 года .
  30. ^ Хофман, Эрик (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.
  31. ^ «Разработчики» . Blue Ripple Sound Limited. 2009 . Проверено 24 января 2011 года .

Внешние ссылки [ править ]

  • Официальный сайт OpenAL
  • OpenAL Soft
  • AeonWave-OpenAL
  • DevMaster.net OpenAL Tutorials (Примечание: эти учебники немного показывают их возраст, например, с помощью устаревших функций, таких как alutLoadWAVFile) [ мертвая ссылка ]
  • Расширенный драйвер OpenAL 1.1 Rapture3D
  • Пакет OpenAL для C ++