Эта статья требует дополнительных ссылок для проверки . ( сентябрь 2015 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Автор (ы) оригинала | Программное обеспечение Loki |
---|---|
Разработчики) | Креативные технологии |
Стабильный выпуск | 1.1 (установщик 2.1.0.0) [1] / ноябрь 2009 г . |
Написано в | C |
Операционная система | 15 операционных систем См .: Поддерживаемые платформы |
Тип | Интерфейс прикладного программирования |
Лицензия | Собственность с v1.1, LGPL до v1.1, BSD в ранних версиях [2] |
Веб-сайт | www |
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
Ссылки [ править ]
- ^ "Загрузки PCGamingWiki" . OpenAL . Творческие лаборатории. Архивировано из оригинала 8 декабря 2017 года . Проверено 7 декабря 2017 года .
- ^ "Лицензия OpenAL" . Архивировано из оригинального 30 декабря 2012 года . Проверено 10 ноября 2012 года .
- ^ «Пресс-релиз по поводу OpenAL» (Пресс-релиз).
- ^ https://opensource.apple.com/tarballs/OpenAL/
- ^ http://www.blueripplesound.com/gaming
- ^ Возневски, Майк; Сеттел, Зак; Куперсток, Джереми (2007), Пользовательский рендеринг звука и управляемый звук для распределенных виртуальных сред (PDF) , получено 5 августа 2012 года .
- ^ Игра FPS с открытым исходным кодом Alien Arena 2009, выпущенная # 28412367
- ^ Перечисление с OpenAL в Windows
- ^ OpenAL® и Windows Vista ™
- ^ «OpenAL - Платформы» . Проверено 10 мая 2012 года .
- ^ http://se.aminet.net/dev/lib/openal-soft.readme [ постоянная мертвая ссылка ]
- ^ "ежевика / OpenAL 路 GitHub" . Github.com . Проверено 14 января 2013 года .
- ^ "OpenAL для OpenBSD" .
- ^ "OpenAL / alut / ogg / vorbis [Форум - Разработка (Общие)" . AROS-Exec . Проверено 16 июня 2013 года .
- ^ «Обзор» . 0 AD Информация об игре . Игры Wildfire. Архивировано из оригинального 26 сентября 2013 года . Проверено 5 декабря 2012 года .
- ^ 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 года .[ самостоятельно опубликованный источник? ]
- ^ a b "Форум программного обеспечения SCS" . Архивировано 5 июня 2019 года . Проверено 5 июня 2019 года .
- ^ "Двигатель HPL - Mod DB" . Проверено 20 ноября 2012 года .
- ^ «Устранение неполадок: переустановите OpenAL: Beamdog» . Проверено 29 мая 2014 года .
- ^ "Сайт ioquake3" .
- ^ "Звук синей ряби" . Проверено 23 сентября 2017 года .
- ^ "Звук синей ряби" . Проверено 23 сентября 2017 года .
- ^ "Modulaatio Games" . Архивировано из оригинального 6 -го сентября 2012 года.
- ^ «Совместимые игры OpenAL» . Звук синей ряби .
- ^ "Двигатель Ванды" .
- ^ Тальманн, Флориан; Гаэлли, Маркус (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 .
- ^ [email protected], Мартин Ламберс. «Бино: бесплатный 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.
Рендеринг 32 звуков на Atom-N270 (максимум для OpenAL-Soft) экономит 1 Вт непрерывного энергопотребления согласно powertop.
- ^ «Разработчики» . Blue Ripple Sound Limited. 2009 . Проверено 24 января 2011 года .
Внешние ссылки [ править ]
- Официальный сайт OpenAL
- OpenAL Soft
- AeonWave-OpenAL
- DevMaster.net OpenAL Tutorials (Примечание: эти учебники немного показывают их возраст, например, с помощью устаревших функций, таких как alutLoadWAVFile) [ мертвая ссылка ]
- Расширенный драйвер OpenAL 1.1 Rapture3D
- Пакет OpenAL для C ++