ОпенАЛ
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2015 г. ) |
![]() | |
Оригинальный автор(ы) | Программное обеспечение Локи |
---|---|
Разработчик(и) | Творческие технологии |
Стабильная версия | 1.1 (установщик 2.1.0.0) [1] / ноябрь 2009 г |
Написано в | С |
Операционная система | 15 операционных систем См.: Поддерживаемые платформы. |
Тип | Интерфейс прикладного программирования |
Лицензия |
|
Веб-сайт | www ![]() |
OpenAL ( Открытая аудиобиблиотека ) — это кроссплатформенный аудиоприложений интерфейс программирования (API). Он предназначен для эффективного рендеринга многоканального трехмерного позиционного звука. Его стиль и соглашения API намеренно напоминают OpenGL . OpenAL — это библиотека окружающего 3D-аудио , которая может добавить реалистичности игре, моделируя затухание (ухудшение звука на расстоянии), эффект Доплера (изменение частоты в результате движения) и плотность материала.
Первоначально OpenAL стремился стать открытым стандартом и с открытым исходным кодом заменой проприетарных (и, как правило, несовместимых друг с другом) API-интерфейсов 3D-аудио, таких как DirectSound и Core Audio , хотя на практике он в основном был реализован на различных платформах как оболочка вокруг указанных проприетарных API. или как проприетарный форк, специфичный для конкретного поставщика. Хотя эталонная реализация позже стала частной и неподдерживаемой, существуют реализации с открытым исходным кодом, такие как OpenAL Soft .
История
[ редактировать ]OpenAL был первоначально разработан в 2000 году компанией Loki Software, чтобы помочь им в портировании игр для Windows на Linux . [3] После закрытия Loki проект какое-то время поддерживался сообществом свободного программного обеспечения и открытого исходного кода и был реализован на NVIDIA звуковых картах и материнских платах nForce. Он размещался (и в значительной степени разрабатывался) компанией Creative Technology примерно до 2012 года.
Начиная с версии 1.1 (2009 г.), пример реализации Creative стал проприетарным. [ нужна ссылка ] проекта Subversion при этом последние выпуски в свободных лицензиях по-прежнему доступны через репозиторий исходного кода . Однако OpenAL Soft является широко используемой альтернативой с открытым исходным кодом и продолжает активно поддерживаться и расширяться.
Хотя в уставе OpenAL говорится, что будет создан «Совет по обзору архитектуры» (ARB), созданный по образцу OpenGL ARB, [ нужна ссылка ] такая организация никогда не была создана, и спецификация OpenAL обычно обрабатывается и обсуждается по электронной почте в общедоступном списке рассылки.
Первоначальный список рассылки openal-devel, организованный Creative, действовал с марта 2003 года по август 2012 года. [4] Райан С. Гордон, ветеран Loki, который продолжил разработку Simple DirectMedia Layer , запустил новый список рассылки и веб-сайт OpenAL.org в январе 2014 года. [5] По состоянию на февраль 2023 года список продолжает использоваться.
Структура и функциональность API
[ редактировать ]Общая функциональность OpenAL закодирована в исходных объектах , аудиобуферах и одном прослушивателе . Исходный объект содержит указатель на буфер, скорость, положение и направление звука, а также интенсивность звука. Объект слушателя содержит скорость, положение и направление слушателя, а также общее усиление, применяемое ко всему звуку. Буферы содержат аудиоданные в формате PCM , 8- или 16-битном , в монофоническом или стереоформате . Механизм рендеринга выполняет все необходимые расчеты по затуханию расстояния, эффекту Доплера и т. д.
Конечным результатом всего этого для конечного пользователя является то, что в правильно написанном приложении OpenAL звуки ведут себя вполне естественно, когда пользователь перемещается по трехмерному пространству виртуального мира. С точки зрения программиста, чтобы это произошло в существующем 3D-графическом приложении на основе OpenGL, требуется очень мало дополнительной работы.
В отличие от спецификации OpenGL, спецификация OpenAL включает в себя два подраздела API : ядро, состоящее из реальных вызовов функций OpenAL, и API ALC (контекст аудиобиблиотеки), который используется для управления контекстами рендеринга, использованием ресурсов и блокировкой на кросс-платформенной платформе. образом. Существует также библиотека «ALUT» (Audio Library Utility Toolkit), которая предоставляет «удобные» функции более высокого уровня — точно аналогичные OpenGL « GLUT ».
Чтобы обеспечить дополнительную функциональность в будущем, OpenAL использует механизм расширения. Таким образом, отдельные поставщики могут включать свои собственные расширения в дистрибутивы OpenAL, обычно с целью предоставления дополнительных функций на своем проприетарном оборудовании. Расширениям можно повысить статус ARB (Совет по обзору архитектуры), что указывает на стандартное расширение, которое будет поддерживаться для обратной совместимости. Расширения 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] Бада , БлэкБерри 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 и API мультимедийных устройств Windows (MMDevice), MorphOS , OpenBSD , [13] Солярис , QNX и AROS . [14]
Поддерживаемые игровые устройства, например: GameCube , PlayStation 2 , PlayStation 3 , Xbox , Xbox 360 , Wii и PlayStation Portable .
Приложения
[ редактировать ]Игры
[ редактировать ]Известно, что следующие видеоигры используют OpenAL:
- 0 г. н. э. [15]
- Альфа-протокол
- Армия Америки: Операции [16]
- Американский симулятор грузовиков [17]
- Амнезия: Темное спуск [18]
- Вооруженное нападение [16]
- Baldur's Gate: расширенное издание [19]
- Поле битвы 2 [16]
- Поле битвы 2142 [16]
- БиоШок [16]
- Бит.Трип [20]
- Колин Макрей: DiRT [16]
- Дум 3 [16]
- Европейский симулятор грузовиков 2 [17]
- ПолетШестерня [16]
- ioquake3 [21]
- Рыцарь-джедай II: Изгой-джедай [16]
- Рыцарь-джедай: Академия джедаев [16]
- Муж0 [16]
- Масс Эффект (видеоигра) [22]
- Майнкрафт (через LWJGL )
- ОпенАрена [16]
- Орбз [16]
- Полутень: Увертюра [16]
- Почтовый 2 [16]
- Добыча [16]
- Психонавты [16]
- Квейк 4 [16]
- Гонщик: Сетка [23]
- Королевство онлайн [16]
- Бег с винтовками [24]
- СТАЛКЕР [16]
- Системный шок 2 [25]
- Темный мод [16]
- Трепетный [16]
- Unreal II: Пробуждение [16]
- Нереальный турнир 2003 [16]
- Нереальный турнир 2004 г. [16]
- Нереальный Турнир 3 [16]
- War§ow [16]
- Червь Онлайн [16]
Другие приложения
[ редактировать ]- Blender — инструмент 3D-моделирования и рендеринга, использующий OpenAL в качестве встроенного игрового движка. [ нужно обновить? ]
- 3DMark06 – инструмент для тестирования геймеров
- Dolphin (эмулятор) – эмулятор GameCube и Wii
- Ванда Двигатель [26] – использует OpenAL 1.1 для имитации 2D и 3D звуков
- Крокет Проект [27]
- Ты [28] - Программное обеспечение видеоплеера с поддержкой стереоскопического 3D-видео и многоэкранного видео.
Реализации
[ редактировать ]- ОпенАЛ СИ
- Пример реализации OpenAL — это исходная реализация от Loki, которая в настоящее время не поддерживается.
- OpenAL Софт
- OpenAL Soft — это кроссплатформенная реализация программного обеспечения, имеющая лицензию LGPL. Библиотека задумана как бесплатное совместимое обновление/замена устаревшего и проприетарного примера реализации OpenAL. OpenAL Soft поддерживает моно, стерео (включая HRTF и UHJ), 4-канальный, 5.1, 6.1, 7.1 и B-формат вывода. Поддерживаются Ambisonic-активы. [29] [30]
- AeonWave-OpenAL
- AeonWave-OpenAL — это уровень эмуляции OpenAL, лицензированный LGPL, который использует преимущества аппаратного ускорения, обеспечиваемого платной, но недорогой 4D-аудиобиблиотекой AeonWave для Linux и Windows, созданной Adalin BV. Автор утверждает, что реализация AeonWave-OpenAL визуализирует 3D звук от пяти (на AMD Athlon 64 X2 ) до семи (на Intel Atom N270 ) раз быстрее, чем OpenAL SI или OpenAL Soft в тех же условиях. [31] Используя библиотеку AeonWave, эта реализация поддерживает HRTF, а также пространственный объемный звук для восьми динамиков.
- Драйвер Rapture3D OpenAL
- Драйвер Rapture3D OpenAL — это несвободная коммерческая программная реализация, предназначенная только для Windows, созданная Blue Ripple Sound . Библиотека задумана как высокопроизводительная замена другим реализациям. Он имеет: [32]
- 32-битный аудиотракт с плавающей запятой.
- Высококачественное преобразование частоты дискретизации (используется для различных целей, включая доплеровский сдвиг).
- Высококачественные эффекты и фильтры.
- Поддержка многоканальных источников звука (включая активы, закодированные с помощью Ambisonics ).
- Единственным ограничением на количество источников или эффектов является мощность процессора: он может отображать сотни источников звука и множество эффектов на относительно старом оборудовании.
- Шина Ambisonics высшего порядка (HOA), работающая до четвертого порядка.
- Apple OpenAL [33]
- Apple поставляет реализацию OpenAL в macOS и iOS. Это очень тонкий слой над функцией 3D-микшера (kAudioUnitSubType_3DMixer) в операционной системе. Эта реализация была первоначально написана Райаном С. Гордоном для систем Altivec Mac OS X. [34]
- МоджоАЛ
- Tiny (однофайловая), полная реализация OpenAL 1.1, созданная на основе SDL2 Райаном С. Гордоном. [35]
См. также
[ редактировать ]- OpenCL
- OpenML
- OpenMAX АЛ
- ФМОД
- Java OpenAL
- иррКланг
- Легкая библиотека Java-игр
- Веб-аудио – определяет API, в некотором смысле похожий на OpenAL.
Ссылки
[ редактировать ]- ^ «OpenAL: кроссплатформенное 3D-аудио» . openal.org .
- ^ «Лицензия OpenAL» . Архивировано из оригинала 30 декабря 2012 года . Проверено 10 ноября 2012 г.
- ^ «Пресс-релиз по поводу OpenAL» (Пресс-релиз). Архивировано из оригинала 06 марта 2016 г. Проверено 18 июля 2011 г.
- ^ «Запрос префикса Wayback Machine: архив openal-devel» . Проверено 25 апреля 2023 г.
- ^ «Открытый архив за январь 2014 г. по теме» . openal.org .
- ^ Возневски, Майк; Сеттел, Зак; Куперсток, Джереми (2007). «Индивидуальная обработка звука и управляемый звук для распределенных виртуальных сред» (PDF) . Материалы Международной конференции по слуховым дисплеям (ICAD) . Проверено 5 августа 2012 г.
- ^ Шутер от первого лица с открытым исходным кодом Alien Arena 2009, выпуск № 28412367
- ^ Перечисление с помощью OpenAL в Windows
- ^ OpenAL® и Windows Vista™
- ^ «ОпенАЛ – Платформы» . Проверено 10 мая 2012 г.
- ^ «Архивная копия» . se.aminet.net . Архивировано из оригинала 16 марта 2018 года . Проверено 6 июня 2022 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «blackberry/OpenAL 路 GitHub» . Гитхаб.com . Проверено 14 января 2013 г.
- ^ «OpenAL для OpenBSD» . Архивировано из оригинала 18 марта 2012 г. Проверено 18 июля 2011 г.
- ^ «OpenAL/alut/ogg/vorbis [Форум – Разработка (Общее)» . AROS-Exec. Архивировано из оригинала 26 мая 2013 года . Проверено 16 июня 2013 г.
- ^ «Обзор» . 0 Информация об игре AD . Игры с лесным пожаром. Архивировано из оригинала 26 сентября 2013 года . Проверено 5 декабря 2012 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м н тот п д р с т в v В х и С аа аб «Игры» . OpenAL.org . [ самостоятельно опубликованный источник? ]
- ↑ Перейти обратно: Перейти обратно: а б «Форум программного обеспечения СКС» . Архивировано из оригинала 5 июня 2019 года . Проверено 5 июня 2019 г.
- ^ «HPL Engine – База данных модов» . Проверено 20 ноября 2012 г.
- ^ «Устранение неполадок: переустановите OpenAL: Beamdog» . Проверено 29 мая 2014 г.
- ^ «Bit.Trip Runner — PCGamingWiki» . Проверено 8 октября 2022 г.
- ^ «Сайт ioquake3» .
- ^ «Звук синей ряби» . Проверено 23 сентября 2017 г.
- ^ «Звук синей ряби» . Проверено 23 сентября 2017 г.
- ^ «Игры Модуляции» . Архивировано из оригинала 6 сентября 2012 года.
- ^ «Совместимые игры OpenAL» . Звук синей пульсации .
- ^ «Двигатель Ванда» .
- ^ Тельманн, Флориан; Гаэлли, Маркус (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 . S2CID 5577203 .
- ^ Ламберс, Мартин. «Bino: бесплатный 3D-видеоплеер — О программе» . bino3d.org .
- ^ «OpenAL Soft – Программное обеспечение 3D Audio» . openal-soft.org . Проверено 4 января 2014 г.
- ^ «Репозиторий OpenAL Soft Git» . Проверено 26 декабря 2013 г.
- ^ Хофман, Эрик (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. По данным Powertop, рендеринг 32 звуков на Atom-N270 (максимум для OpenAL-Soft) экономит 1 Вт непрерывного энергопотребления.
- ^ «Разработчики» . Blue Ripple Sound Limited. 2009 . Проверено 24 января 2011 г.
- ^ «Обозреватель источников» .
- ^ «Реализация OpenAL для MacOS X» . icculus.org .
- ^ «МоджоАЛ» . icculus.org .
Внешние ссылки
[ редактировать ]Реализации:
Ресурсы для разработчиков:
- Учебные пособия DevMaster.net OpenAL (Примечание: эти руководства немного устаревают, например, благодаря использованию устаревших функций, таких как alutLoadWAVFile)
- Репозиторий расширений OpenAL (поддерживается Raulshc с 2023 г.; с таблицей поддерживаемых расширений для каждой реализации)
- Пакет OpenAL в Conan, менеджере пакетов C++.