Игры с поддержкой eax. Environmental Audio Extensions (EAX) - что это такое? Звуковые карты Creative поддерживающие технологию

11.04.2019
Windows XP
Тут схема звуковой подсистемы примерно следующая:

В данном случае через интерфейс DirectSound ПО имело прямой доступ к аппаратным ресурсам звуковой карты - микширование, преобразование частоты дискретизации, различные эффекты (включая 3D позиционирование) - в общем, всё, что было необходимо, как для музыки/фильмов, так и для игр.
Конечно, были свои проблемы, в частности с микшером Windows (неточная регулировка громкости, принудительная некачественная передискретизация всего и вся до 48 кГц), но они вполне легко обходились с помощью Kernel Streaming (тот самый поток, идущий мимо kmixer), а иногда даже с помощью хороших драйверов (у Creative например таковые появись только в линейке X-Fi. На аудиокартах Audigy микшер ведет себя не вполне адекватно, но, при желании, справиться с этим не сложно).

Vista, Seven
И вот, жили наши энтузиасты-звукари, горя не знали, но тут подоспела новая ОС от Microsoft, которая конечно же обязана была содержать кардинальные изменения (и не так уж важно, в какую сторону).
Таким образом, в рамках новой концепции абстракции от оборудования , Windows Vista, кроме всего прочего, получила полностью переработанную подсистему ввода/вывода звука. И конечно же, переработали её не самым лучшим образом.
Вот, какой вид она приняла в этот раз:


API - Application Programming Interface
APO - Audio Processing Object
CPT - Cross Process Transport
KST - Kernel Streaming Transport

Теперь поясню. Суть такова: все программы, заточенные под вывод на DirectSound и ничего не знающие о новом интерфейсе, подключаются к WASAPI в общем режиме (WASAPI Shared), далее происходит следующее:
Составляющие WASAPI (используя только ресурсы центрального процессора), выполняют все нужные (и не очень) преобразования:

  1. Приведение звуковых потоков от разных приложений к одному виду (указанному в настройках Windows) - т.е. к одному количеству каналов, частоте дискретизации, глубине квантования.
  2. Микширование потоков.
Плюс к этому надо добавить возможность наложения в процессе обработки программных эффектов (алгоритмы которых заложены в драйверах звуковой карты). Например, для звуковых карт Creative X-Fi есть убогая эмуляция эффекта CMSS-3D.
Качество всех этих обработчиков, само собой, не самое высокое.
Далее всё это отправляется через Kernel Transport на звуковую карту.
Теперь давайте попытаемся объективно оценить преимущества и недостатки новой системы:

Базовые возможности обработки для звуковых карт не умеющих обрабатывать звук «своими силами»
+ поддержка на входе практически любого формата аудио - многоканальное аудио с частотой дискретизации до 192 кГц и глубиной квантования до 32-bit float
+ повышенная стабильность (спорное утверждение, в принципе)

Принудительный ресемплинг сомнительного качества
- микширование каналов без эффектов окружения (или же они очень примитивны)
- сужение динамического диапазона (особенно в режиме 16 бит)
- отсутствие доступа к аппаратному DSP, т.е. потеря всего его функционала, включая эффекты EAX в играх (в т.ч. и на картах, где EAX эмулировался программно - так как в WASAPI такого понятия даже нет нет)
- щелчки, хрипы и прочие последствия связанные с использованием ресурсов ЦП.

Как видно, больше всего не повезло компьютерным меломанам-аудиофилам (надеюсь, никто не обидится) и геймерам.
Люди же, не особо интересующиеся тем, что происходит со звуком на пути к звуковой карте - возможно даже получат определенное улучшение (хотя, опять же, им скорее всего всё равно - лишь бы работало)
А теперь, о том как преодолеть большинство из вышеперечисленных проблем, ибо, к великому несчастью, с выходом так любимой многими Windows 7, Microsoft никакой революции в плане звука нам не устроила.

Меломанам: точный вывод звука

1. Как я писал выше, большинство приложений для вывода звука в Windows 7 (хотят они того, или нет) используют режим WASAPI Shared. Но есть и другой режим - WASAPI Exclusive. Если руководствоваться блок-схемой, то в этом режиме отбрасывается всё, что лежит между Application Programming Interface и Kernel Streaming Transport - грубо говоря, звук идет непосредственно от приложения через интерфейс WASAPI на звуковую карту.
Но надо сделать замечание : так как в этом режиме отключен микшер WASAPI, а к микшеру звуковой карты доступа всё равно нет (ибо нет DirectSound), при использовании приложением эксклюзивного режима, воспроизведение любого другого источника через WASAPI становится невозможным.
Но, так или иначе, мы получаем по-битовый вывод аудио на звуковую карту.

2. Есть и другой способ. Если ваша звуковая карта имеет родной драйвер ASIO - вам крупно повезло. ASIO функционирует совершенно отдельно от WASAPI, так что, при прослушивании музыки системные звуки не будут отключаться - потоки ASIO и WASAPI будут микшироваться самой звуковой картой.
Вывод: если ваш драйвер ASIO не вызывает сомнений, используйте его.
Да, чуть не забыл - ASIO4ALL использовать нежелательно - как и Kernel Streaming, в этой ОС он работает очень нестабильно (судя по всему, из-за того, что другие звуки, идущие через WASAPI, периодически блокируют Kernel Transport).

Теперь непосредственно к делу .

Конечно же, для прослушивания музыки я рекомендую foobar2000 с плагином ASIO Output или WASAPI output support - ни за что другое ручаться я не могу. Подробная настройка вывода звука через foobar2000 описана .

Любителей AIMP я разочарую - WASAPI Exclusive не предполагается даже в AIMP3 beta (только Shared), а ASIO в нем пока что сильно хромает (не умеет выставлять правильное количество каналов вывода, что приводит к нехорошим результатам).

Пользователям Winamp могу предложить плагины ASIO output Plugin или даже такое: OpenAL Output - кстати, еще один способ обхода WASAPI (видно из блоксхемы).

Для кинолюбителей: о видеоплеерах

C видеоплеерами ситуация практически аналогичная. Нам необходимо вывести звук на карту в первозданном виде. Особенно это важно, если вы хотите выполнить преобразование многоканального звука в стерео с использованием аппаратных эффектов вроде CMSS-3D в Creative X-Fi (объемное звучание в наушниках или стерео колонках). Для этого звук должен поступить на звуковую карту в многоканальном виде. Но вот беда: WASAPI в общем режиме преобразовывает каналы до кол-ва указанного в настройках Windows. Но даже если вы укажите там, скажем, 5.1, - этот параметр синхронизируется с настройками драйвера звуковой карты, и DSP не будет преобразовывать звук - так как сигнал на входе соответствует по кол-ву каналов настройкам. Т.е. тут принцип таков: в настройках драйвера звуковой карты должна стоять реальная конфигурация подключенного устройства воспроизведения (наушники, АС), а звук на карту должен поступать не измененным.
И так, тут нам опять понадобится WASAPI Exclusive. Я бы посоветовал использовать в связке с DirectShow фильтром ReClock (только для 32-битного MPC), который, кроме всего прочего, умеет выводить звук на WASAPI Exclusive.

Геймерам: трехмерное позиционирование, EAX

Да, введение новой звуковой подсистемы, несомненно, вызвало негодование у многих геймеров, в т.ч. у счастливых обладателей высокотехнологичных звуковых карт от Creative.
И так, для тех, кто, может быть, еще не в курсе: выход найден - OpenAL. Эта библиотека имеет доступ ко всему, что касается аппаратных эффектов трехмерного позиционирования источников звука и т.н. Environmental Audio Extension - вплоть до версии 5.0.
Кроме того, что продвинутые разработчики таких игр, как например S.T.A.L.K.E.R: Call of Pripyat построили движки своих игр на OpenAL, для остальных игр, рассчитанных на DirectSound, было разработано две программы, преобразующих вызовы DirectSound в OpenAL:

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

Именно о трехмерном звуке, движках, производителях мы поговорим в данной обзорной статье.

3D-звук подразумевает расположение источников звука вокруг слушателя.

3D-звук можно разделить на две составные части. Во-первых, это атмосфера (музыка, эффекты общего плана, реверберация - тип помещения, окружение). Во-вторых, позиционирование, чтобы игрок мог определить, где расположен источник звука, а также, в идеале, его высоту и размеры.

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

Для усиления ощущения при восприятии звука слушателем применяются различные технологии. Именно их качественное воплощение заставляет окружающий игрока мир не просто источать яркие краски, но и превращает его в действительно трёхмерное пространство.

На сегодняшний день существует целый ряд различных звуковых API . Мы поговорим о тех, которые либо до сих пор используются, либо представляют историческую ценность.

Актуальные звуковые API

OpenAL (Open Audio Library)

Этот API использует эффекты EAX. Данный интерфейс задействован в движках id Tech 3 и 4 (DOOM 3, Enemy Territory: Quake Wars, Prey, Quake 4, Wolfenstein), некоторых играх, основанных на Unreal Engine 3, а также в ряде множества других проектов (Battlefield 2, S.T.A.L.K.E.R., F.E.A.R., FarCry, Time Shift и прочие).


Интересно, что компания Creative позволила использовать свою запатентованную технологию обработки теней студии id Software только в обмен на поддержку OpenAL в DOOM 3

OpenAL развивался исключительно программистами Creative. Полноценная реализация наиболее значимых функций и возможностей OpenAL существует только для карт Creative под Windows. Для прочих карт и ОС реализация очень упрощенная, базовая. Всё потому, что это требует наличие аппаратной поддержки, а аппаратный процессор есть только у карт Creative.

Таким образом, если игра использует OpenAL, то звучание на интегрированном звуке на звуковой карте Creative будет разительно отличаться. Разумеется, в пользу последнего. Если же у звуковой карты Creative нет аппаратного процессора, то там используется программная эмуляция до EAX 4.0, не доступная картам других производителей. Хотя данную технологию эмуляции можно лицензировать за деньги даже для интегрированного звука. В то же время EAX 5.0 без аппаратной поддержки не существует. Развитие OpenAL остановилось в 2005 году.

DirectSound

Программный интерфейс, являющийся частью DirectX. Самый старый и распространенный API. Данный API позволяет имеет слабую и ресурсоемкую программную реализацию 3D-звука, которую в играх никто не использует, но зато позволяет задействовать аппаратную реализацию имеющихся эффектов. Таким образом, звучание разных DirectSound звуковых карт отличается.

Интересно, что «аппаратные» вызовы у многих карт реализованы программно. Таким образом, интегрированный звук часто имеет «аппаратный» 3D-звук, реализованный в драйверах. Эта реализация по качеству и возможностям сильно отличается от настоящей аппаратной.

C выходом Windows Vista и значительными изменениями в её архитектуре DirectSound лишился поддержки 3D-звука. Тут возникла одна проблема: многие игры, вышедшие до релиза новой операционной системы, остались без звуковых эффектов. В 2007 году компания Creative разработала технологию Creative ALchemy для X-Fi и Audigy, перехватывающую вызовы DirectSound и транслирующие их в аналогичные команды OpenAL. Благодаря этому старые игры имеют поддержку 3D-звука и EAX в операционных системах Windows Vista и Windows 7. Кроме того компания ASUS предлагает Xonar GX2.5, также позволяющий эмулировать DirectSound в несовременных проектах. Эмуляция ASUS предсказуемо уступает из-за отсутствия аппаратных возможностей в картах этого производителя, кроме того, менее стабильно работает.


В свое время покупатели Windows Vista были сильно озадачены отсутствием 3D-звука в играх. Одна из многих причин, почему хардкорные игроки не спешили переходить на новую тогда операционную систему

Кроме звуковых API существуют ещё и звуковые движки . Это примерно как графические движки, которые отвечают за внешний вид игр. Они представляют собой высокоуровневые функции, сильно упрощающие жизнь программистам. На низком уровне звуковые движки используют базовые функции DirectSound или какого-то другого API по выводу звука.

Наиболее популярные звуковые движки

FMOD

Ещё семь лет назад FMOD считался «молодым и перспективным», а сейчас активно набирает обороты. Одной из особенностей является мультиплаформерность (поддержка Xbox 360, Playstation 3 и Nintendo Wii) и возможность работать с различными форматами на разных платформах. Уже вышло немало проектов использующих FMOD, в том числе такие хиты как World of Warcraft, Bioshock 1 и 2, Starcraft 2: Wings of Liberty, Mafia 2 и прочие. Также заявлены Crysis 2, Deus Ex: Human Revolution, The Witcher 2: Assassins of Kings.

MilesSS

MilesSS - безусловно, самый именитый из существующих сегодня звуковых движков. На официальном сайте заявлена поддержка в 5000 играх. Однако во внушительном списке не так уж много проектов последних нескольких лет, хотя там присутствуют Call of Duty: Modern Warfare и Call of Duty: World at War. Данный движок использовали и Painkiller, и Gothiс, и многие другие популярнейшие игры. Кроме того, Valve использует MSS библиотеку версии 6.6a в движке Source (Half-Life 2, Portal, Team Fortress 2, Left for Dead 1 и 2). Последняя версия MilesSS датируется октябрём 2008 года.

EAX (Environmental Audio Extensions)

Наконец, остановимся на системе EAX (Environmental Audio Extensions). Сейчас разработчикам доступна EAX 5.0, поддерживающая многие возможности. В частности, именно эта система есть в самом распространённом на сегодняшний день движке Unreal Engine 3. Помимо этого EAX разных версий можно встретить во множестве игр. Грамотное использование потенциала этой технологии позволяет создавать потрясающие звуковые эффекты.

Именно EAX оказал значительное влияние на развитие звуковых карт, способствовал внедрению многих эффектов для создания неповторимой атмосферы. Знатоки помнят, что одной из ключевых особенностей теперь уже культового проекта Thief была не только уникальная игровая механика, но и потрясающий звук. Именно звуковое сопровождение позволяло позиционировать каждый шорох, грамотно оценивать ситуацию, с головой погружаться в мир воришки Гаррета. По меркам того времени это стало настоящим прорывом. Thief: The Dark Project стал одной из первых игр, показавших, что у 3D-звука и технологии EAX есть будущее.


Благодаря технологичному звуку Thief обладал потрясающей атмосферой и был одним их главных поводов покупки звуковых карт Creative

Спецификации разных версий EAX стоит рассмотреть отдельно.

EAX 1.0

  • Аппаратная поддержка 8 одновременно звучащих каналов.
  • Аппаратная поддержка 32 индивидуальных каналов.
  • Аппаратный DSP Rendering.
  • Поддерживает изменение места в игре реверберации и отражений.
  • Имеет большое количество пресетов.
  • Позволяет (ограниченно) изменять реверберацию окружения.
  • Позволяет автоматически изменять интенсивность реверберации, в зависимости от положения источника звука относительно слушателя
  • Sound Blaster Live!
  • Unreal
  • Unreal Tournament
  • Thief: The Dark Project

EAX 2.0

Функции по отношению к предыдущей версии

  • Обновлена реверберационная модель.
  • Добавлены эффекты звуковых преград (Obstructions) и поглощений (Occlusions).
  • Отдельное управление начальными отражениями и поздними реверберациями. Непрерывный контроль размеров помещений. Улучшенная дистанционная модель для автоматического управления реверберациями и начальными отражениями, основанными на местоположении источника звука относительно слушателя.
  • Возможность учитывать звуковые свойства воздуха (поглощение звука).
  • Теперь для использования эффектов Environmental Audio не требуется описание геометрии помещения.

Звуковые карты Creative поддерживающие технологию

  • Sound Blaster Live! 5.1

Примеры игр, поддерживавших технологию

  • Thief 2: The Metal Age
  • Half-life 2

EAX Advanced HD 3.0

Функции по отношению к предыдущей версии

  • Аппаратная поддержка 64 индивидуальных каналов.
  • Контроль за ранними реверберациями и отражениями для каждого источника звука.
  • Динамический переход между окружающими моделями.
  • Улучшенная дистанционная модель для автоматического управления реверберацией и начальными отражениями в зависимости от положения источников звука относительно слушателя.
  • Расчёты Ray-Tracing (отражение лучей) для получения параметров отражения для каждого источника звука.
  • Отдельные отражения для дальних эхо.
  • Улучшенное дистанционное представление, призванное заменить статические реверберационные модели.

Звуковые карты Creative поддерживающие технологию

  • Sound Blaster Audigy

Примеры игр, поддерживавших технологию

  • Star Wars: Knights of The old Republic 2 – The Sith Lords
  • Tom Clancy’s Splinter Cell
  • Unreal Tournament 2003

EAX Advanced HD 4.0

Функции по отношению к предыдущей версии

  • Аппаратные эффекты реального времени.
  • Множество одновременных окружений.
  • Flange (Флэнжер).
  • Echo (Эхо).
  • Distortion (Дисторшн).
  • Эффект кольцевой модуляции.

Звуковые карты Creative поддерживающие технологию

  • Sound Blaster Audigy 2
  • Sound Blaster X-Fi Extreme Audio

Примеры игр, поддерживавших технологию

  • F.E.A.R.
  • GTA: San Andreas
  • Medieval 2: Total War
  • Thief 3: Deadly Shadows

EAX Advanced HD 5.0

Функции по отношению к предыдущей версии

  • Аппаратная поддержка 128 индивидуальных каналов по 4 эффекта на каждый канал.
  • EAX Voice (обработка входящего сигнала микрофона).
  • EAX PurePath (повышение точности позиционирования виртуальных источников звука).
  • Environment FlexiFX (4 слота для эффектов на каждый канал).
  • EAX MacroFX (реалистичные эффекты позиционирования на близком расстоянии).
  • Environment Occlusion (эффект создаёт впечатление, что источник звука находится в другом месте, за стеной)

Звуковые карты Creative поддерживающие технологию

  • Все звуковые карты серии Sound Вlaster X-Fi кроме X-Fi Extreme Audio

Примеры игр, поддерживавших технологию

  • Bioshock
  • Battlefield 2
  • DOOM 3

Вывод из представленного выше материала напрашивается сам собой, а именно: кроссплатформерность и простота в использовании являются необходимыми условиями для успеха. Всё-таки в нынешней ситуации, когда все издатели (кроме Microsoft, Sony и Nintendo) предпочитают выпускать свои игры сразу на трёх (минимум на двух) платформах одновременно, возможность с лёгкостью применить функции и на PC, и на консолях выходит на первый план. Набравший популярность FMOD тому ярчайшие доказательство.

Производители

Creative

Разумеется, когда заходит разговор о звуковых картах игровой направленности, многим на ум сразу приходит именно компания Creative . За почти три десятка лет своего существования производитель неоднократно преподносил любителям звука приятные сюрпризы, хотя и ценовая политика компании вызывала неоднозначную реакцию. Сейчас в ассортименте компании достаточно продуктов серии X-Fi с привычным PCI Express интерфейсом и с USB, от бюджетной ценовой категории до карт премиум класса.

Auzentech

Корейская компания Auzentech выпускает игровые звуковые карты на чипе Creative X-Fi. Эти продукты обладают интересными характеристиками и подходят и для аудиофилов и для игр, но, к сожалению, у нас про эту компанию мало кто знает и данную продукцию не так-то просто найти в магазинах.

ASUS

Не так давно на рынке звуковых карт появился ещё один игрок, которого трудно не заметить. Речь идет о компании ASUS , имя которой ассоциировалось с материнскими платами, видеокартами, ноутбуками, оптическими приводами.

Эти звуковые карты разрабатывает и производит дружественная тайваньская компания C-Media. ASUS выступает только OEM-заказчиком и спонсором разработки. С этим связана зачастую нестабильная работа карт ASUS и скромные возможности, что нетипично для других продуктов этого производителя.

В данный момент есть несколько серий звуковых карт все под общим названием Xonar. Каждая серия позиционируется под различные нужды: одна ориентирована на игры, другая - на просмотр кино, третья - на прослушивание музыки. В интересующей нас игровой линейке достаточно моделей с весьма заманчивыми особенностями. Однако карты ASUS не предлагают каких-то преимуществ в играх перед интегрированным звуком. Подводит программная реализация многих функций, к тому же не самая новая.

Называть всех производителей мы не будем. Причин тому предостаточно: и отсутствие должной информации от компаний, и проблемы с доставкой в Россию, и ориентация на узкий круг профессионалов, а не на широкие массы потребителей. Для игроков они не представляют особого интереса.

Сейчас производители предлагают широкий спектр самых разных звуковых карт, поддерживающих современные эффекты. Благодаря доступности и достаточно демократичной ценовой политике вопрос приобретения отдельной звуковой карты стоит не столь остро. К примеру, стоимость «игровой» звуковой карты X-Fi Xtreme Gamer с настоящим аппаратным звуковым процессором X-Fi составляет $80, что не так много по сравнению с «игровыми» видеокартами, процессорами и другими комплектующими.

Система пространственной обработки звука Environmental Audio eXtensions™ (EAX) используется многими разработчиками игр для создания естественного объемного звука с учетом специфики того помещения или пространства, где развиваются события игры и где находятся источники звуков. EAX можно представить как набор спецификаций, определяющих модели и алгоритмы для создания звуковых эффектов окружающего пространства или помещения, основанных на реверберации (Environmental Audio означает пространственный звук).

Под понятием «реверберация» (от ср.-век. лат. reverberatio - отражение) понимают послезвучание, сохраняющееся после выключения источника звука и обусловленное неодновременным приходом в данную точку отраженных или рассеянных звуковых волн. Реверберация оказывает значительное влияние на слышимость речи и музыки в помещении.

EAX также включает в себя набор функций API, позволяющих программисту воспользоваться аппаратной поддержкой EAX. На момент подготовки этой статьи уже появилась четвертая версия EAX, которая доступна на сайте Creative Labs в разделе для разработчиков .

EAX API является расширением базовой системы создания объемного звука DirectSound3D. Во время работы EAX приложения процесс обработки звука разделяется: DirectSound3D управляет местоположением, скоростью движения в 3D пространстве источников звука и слушателя, а EAX вносит в звук такие изменения, которые характеризуют окружающее источник звука пространство.

Поддержка системы EAX обеспечивается на аппаратном уровне встроенными аудиопроцессорами звуковых плат (звуковыми акселераторами). Разумеется, что в первую очередь такая поддержка реализована на платах Creative.В основу EAX положена технология E-mu Environmental Modeling, поддерживаемая аудиопроцессором EMU10K1, установленном на серии звуковых карт SBLive! В моделях EAX учитывается тип звукоизлучателей: наушники, стерео- и квадросистема. Аудиоакселератор EMU10K1 раскладывает любой звуковой поток на множество каналов, а потом на каждый канал в реальном времени накладывает реверберации. Благодаря чему создаются новые звуки, более близкие к их естественному звучанию в реальном пространстве.

так как человеческое ухо слышит не только звук, исходящий непосредственно от источника, но воспринимает и вторичные (и более поздние) звуковые колебания, которые определяются расстоянием до источника, а также параметрами реверберации, то именно дистанцию и реверберацию можно считать основными характеристиками пространства или помещения.

Изначально предполагалось, что EAX не будет использовать геометрическую модель сцены, то есть источники звука могли быть не связаными с графическими объектами. Главное было создать звуковую атмосферу игровой сцены, то есть воздействовать на эмоциональное состояние игрока подобно тому, как в кинофильме звуковое сопровождение всегда подчеркивает остроту переживаний, акцентируясь на самом важном и пренебрегая незначительными звуковыми подробностями. Руководствуясь этим подходом, создатели EAX в качестве основы выбрали статическую модель звуковой среды, а не ее геометрические параметры. В статической модели автоматически рассчитываются эффекты реверберации и отражения относительно слушателя с учетом размеров помещения, направления звука и других параметров, которые программист может устанавливать для каждого источника звука. Расчет статической модели требует меньших вычислительных ресурсов, чем моделей, основанных на геометрическом подходе. EAX использует подготовленные заранее звуковые модели, которые представляют собой набор числовых значений параметров помещения или пространства. Параметры эти характеризуют не расположение предметов в помещении, как это бывает в геометрической модели, а поведение звуковых волн в таком помещении или пространстве, то есть задержки распространения, степень затухания, звукопоглощение и звукоотражение на разных звуковых частотах. Если по сюжету игры необходимо сменить длинный коридор на большой ангар, то достаточно сменить одну статическую модель (модель коридора) на другую (модель ангара). Модели различных помещений (их числовые значения) представлены в EAX в виде пресетов (предустановок). Такой подход обеспечивает более простое программирование 3D звука в игре, позволяет уменьшить объем вычислений при моделировании звуковой панорамы. Получаемый звук обладает весьма реалистичным звучанием. С другой стороны, статичность метода может служить причиной того, что выбранный пресет в процессе игры может перестать соответствовать графическому (геометрическому) представлению сцены. Например, в геометрической модели, если, например, рухнули стены помещения, то звук изменится в силу самой модели, а не принудительно, исходя из каких-то иных флагов или признаков. В случае статической модели звук будет оставаться таким же, как и до обрушения стен, пока не будет выбран другой пресет.

EAX 1.0 Поддерживает изменение места реверберации и отражений; имеет большое количество пресетов; позволяет (с некоторыми ограничениями) изменять реверберационные параметры помещения; автоматически менять интенсивность реверберации, в зависимости от положения источника звука. EAX 1.0 строит звуковую сцену на основе заранее созданных пресетов, учитывая дистанцию между источниками звука и слушателем.

В EAX 2.0 Обновлена реверберационная модель; добавлены эффекты звуковых преград (Occlusions) и препятствий (Obstructions); реализовано отдельное управление ранними и поздними отражениями; возможен продолжительный контроль размеров помещений; учитываются акустические свойства воздуха (поглощение звука). Теперь для использования эффектов Environmental Audio не требуется описание геометрии помещения. EAX 2.0 построен на возможностях первой версии и создает еще более реалистичные эффекты.

EAX 3.0 позволяет осуществить контроль за началом реверберации и ранними отражениями для каждого источника звука; реализует динамический переход между моделями пространства; содержит улучшенную дистанционную модель для автоматического управления реверберацией и начальными отражениями в зависимости от положения источников звука относительно слушателя. В этой спецификации уже происходит некоторый отход от статической модели и в ее состав включены методы, свойственные для геометрических моделей: Расчеты Ray-Tracing (отражение лучей) для получения параметров отражения для каждого источника звука. Кроме того, реализованы отдельные отражения для дальних эхо. Улучшенное дистанционное представление, призванное заменить статические реверберационные модели. EAX 3.0 совмещает вторую версию с новыми возможностями. Более высокий уровень реализма достигается благодаря поддержки местных отражений, изолированных отражений, продолжительных переходов между звуковыми сценами и др.

Средства FMOD для работы с EAX

Популярная среди многих разработчиков (особенно среди энтузиастов, создающих некоммерческое программное обеспечение) библиотека функций работы со звуком FMOD (разработчик Firelight Technologies Pty) предоставляет ряд возможностей для работы с системой EAX. О них далее и пойдет речь.

Для того чтобы получить определенное представление о библиотеке FMOD, рекомендуется прочитать статью Использование FMOD в звуковых играх , в которой рассказано об основных принципах работы с этой библиотекой, а также изложена последовательность действий (вызовов функций API FMOD) для создания источников объемного звука и расчета звуковой панорамы.

На данный момент (речь идет о версии FMOD 3.74) библиотека поддерживает EAX 2.0 и 3.0 (однако, предполагается, что спецификации EAX совместимы "снизу вверх", то есть настройки для EAX 2.0 будут корректно поддерживаться звуковыми картами, реализующими EAX 3.0 и т.д.).

Проверка наличия аппаратной поддержки EAX

Прежде чем использовать EAX в целях создания реалистичной звуковой панорамы, необходимо определить, есть ли такая поддержка у звуковой карты. Для этой цели в библиотеке FMOD предназначена функция FSOUND_GetDriverCaps(). В качестве параметра эта функция получает целое число, указывающее номер звуковоспроизводящего устройства в системе. Нулевое значение соответствует устройству принятому по умолчанию. На компьютерах с одной звуковой картой устройство по умолчанию и есть эта звуковая карта. В качестве второго параметра функция получает указатель на целочисленную переменную, то есть на адрес в памяти, по которому будет записано целое число, представляющее собой набор битовых полей. Эти битовые поля указывают, какие режимы работы поддерживает звуковая карта. При удачном выполнении функция возвращает TRUE, при ошибке - FALSE.

В файле fmod.h определены три константы: FSOUND_CAPS_HARDWARE, FSOUND_CAPS_EAX2, FSOUND_CAPS_EAX3, которые задают битовые поля, свидетельствующие о поддержке аппаратного 3D звука, EAX 2.0 и EAX 3.0 соответственно.

/* Пример анализа возможностей звуковой карты */ /* для win32 */ ... UINT caps = 0; UINT device_id = 0; //устройство по умолчанию char msg_buf ; //буфер для сообщения FSOUND_GetDriverCaps(device_id, &caps); msg_buf = 0; if (!caps) sprintf(msg_buf, "Нет аппаратной поддержки 3D звука и EAX.\r\n"); if (caps & FSOUND_CAPS_HARDWARE) strcat(msg_buf, "* Поддержка 3D звука\r\n"); if (caps & FSOUND_CAPS_EAX2) strcat(msg_buf, "* Поддержка EAX 2 \r\n"); if (caps & FSOUND_CAPS_EAX3) strcat(msg_buf, "* Поддержка EAX 3 \r\n"); // Вывод сообщения MessageBox (NULL, msg_buf, "Информация", MB_OK); ...

Функция FSOUND_GetDriverCaps () должна вызываться до вызова функции FSOUND_Init () или после вызова функции FSOUND_Close ();

Структуры FSOUND_REVERB_PROPERTIES и FSOUND_REVERB_CHANNELPROPERTIES

С точки зрения программиста спецификацию EAX можно представить как структуру, описывающую реверберационные параметры помещения (пространства). Таких параметров может быть более двух десятков.

Структура FSOUND_REVERB_PROPERTIES содержит параметры, общие для всех существующих источников звука. Структура FSOUND_REVERB_CHANNELPROPERTIES характеризует отдельно взятый источник (канал). Ниже представлены списки членов этих структур: сначала для FSOUND_REVERB_PROPERTIES, а затем FSOUND_REVERB_CHANNELPROPERTIES. Подробное рассмотрение физического смысла указанных параметров выходит за рамки статьи. По всем вопросам следует обращаться к документации по EAX.

/* FSOUND_REVERB_PROPERTIES */ / Числа отражают диапазон значений и значение, установленное по умолчанию. */ /* Целые числа, как правило, представляют децибелы, */ /* вещественные числа представляют линейную зависимость. */ unsigned int Environment /* 0 , 25 , 0 , sets all listener properties (WIN32/PS2 only) */ float EnvSize /* 1.0 , 100.0 , 7.5 , Размер помещения (пространства) в метрах(WIN32 only) */ float EnvDiffusion /* 0.0 , 1.0 , 1.0 , Проницаемость (диффузность) пространства(WIN32/XBOX) */ int Room /* -10000, 0 , -1000 , Уровень выраженности эффекта комнаты (на средних частотах) (WIN32/XBOX/PS2) */ int RoomHF /* -10000, 0 , -100 , Относительный уровень выраженности эффекта комнаты на высоких частотах(WIN32/XBOX) */ int RoomLF /* -10000, 0 , 0 , Относительный уровень выраженности эффекта комнаты на низких частотах(WIN32 only) */ float DecayTime /* 0.1 , 20.0 , 1.49 , Время затухания реверберации на средних частотах(WIN32/XBOX) */ float DecayHFRatio /* 0.1 , 2.0 , 0.83 , high-frequency to mid-frequency decay time ratio (WIN32/XBOX) */ float DecayLFRatio /* 0.1 , 2.0 , 1.0 , low-frequency to mid-frequency decay time ratio (WIN32 only) */ int Reflections /* -10000, 1000 , -2602 , Уровень раннего отражения относительно эффекта комнаты(WIN32/XBOX) */ float ReflectionsDelay /* 0.0 , 0.3 , 0.007 , Время задержки начальной реверберации(WIN32/XBOX) */ float ReflectionsPan /* , , Панорамный вектор раннего отражения (WIN32 only) */ int Reverb /* -10000, 2000 , 200 , Уровень позднего отражения относительно эффекта комнаты (WIN32/XBOX) */ float ReverbDelay /* 0.0 , 0.1 , 0.011 , Время задержки позднего отражения относительно начальной реверберации (WIN32/XBOX) */ float ReverbPan /* , , Панорамный вектор позднего отражения (WIN32 only) */ float EchoTime /* .075 , 0.25 , 0.25 , echo time (WIN32/PS2 only. PS2 = Время запаздывания для эхо/DELAY modes only) */ float EchoDepth /* 0.0 , 1.0 , 0.0 , Глубина эха (WIN32/PS2 only. PS2 = Feedback level for ECHO mode only) */ float ModulationTime /* 0.04 , 4.0 , 0.25 , Время (период) модуляции(WIN32 only) */ float ModulationDepth /* 0.0 , 1.0 , 0.0 , Глубина модуляции(WIN32 only) */ float AirAbsorptionHF /* -100 , 0.0 , -5.0 , Изменение уровня на единицу длины (поглощение) на высоких частотах(WIN32 only) */ float HFReference /* 1000.0, 20000 , 5000.0 , reference high frequency (hz) (WIN32/XBOX) */ float LFReference /* 20.0 , 1000.0, 250.0 , reference low frequency (hz) (WIN32 only) */ float RoomRolloffFactor /* 0.0 , 10.0 , 0.0 , Подобно FSOUND_3D_SetRolloffFactor но для эффекта комнаты(WIN32/XBOX) */ float Diffusion /* 0.0 , 100.0 , 100.0 , Value that controls the echo density in the late reverberation decay. (XBOX only) */ float Density /* 0.0 , 100.0 , 100.0 , Value that controls the modal density in the late reverberation decay (XBOX only) */ unsigned int Flags /* FSOUND_REVERB_FLAGS - Модифицирует поведение вышеуказанных членов структуры (WIN32/PS2 only) */ /* FSOUND_REVERB_CHANNELPROPERTIES */ int Direct /* -10000, 1000, 0, direct path level (at low and mid frequencies) (WIN32/XBOX) */ int DirectHF /* -10000, 0, 0, relative direct path level at high frequencies (WIN32/XBOX) */ int Room /* -10000, 1000, 0, Уровень выраженности эффекта комнаты (на низких и средних частотах) (WIN32/XBOX/PS2) */ int RoomHF /* -10000, 0, 0, Относительный уровень эффекта комнаты на высоких частотах(WIN32/XBOX) */ int Obstruction /* -10000, 0, 0, Основное управление обструкцией (attenuation at high frequencies) (WIN32/XBOX) */ float ObstructionLFRatio /* 0.0, 1.0, 0.0, Уровень обструкции на низких частотах re. main control (WIN32/XBOX) */ int Occlusion /* -10000, 0, 0, main Управление окклюзией (attenuation at high frequencies) (WIN32/XBOX) */ float OcclusionLFRatio /* 0.0, 1.0, 0.25, occlusion low-frequency level re. main control (WIN32/XBOX) */ float OcclusionRoomRatio /* 0.0, 10.0, 1.5, relative occlusion control for room effect (WIN32) */ float OcclusionDirectRatio /* 0.0, 10.0, 1.0, relative occlusion control for direct path (WIN32) */ int Exclusion /* -10000, 0, 0, main exlusion control (attenuation at high frequencies) (WIN32) */ float ExclusionLFRatio /* 0.0, 1.0, 1.0, exclusion low-frequency level re. main control (WIN32) */ int OutsideVolumeHF /* -10000, 0, 0, outside sound cone level at high frequencies (WIN32) */ float DopplerFactor /* 0.0, 10.0, 0.0, like DS3D flDopplerFactor but per source (WIN32) */ float RolloffFactor /* 0.0, 10.0, 0.0, like DS3D flRolloffFactor but per source (WIN32) */ float RoomRolloffFactor /* 0.0, 10.0, 0.0, like DS3D flRolloffFactor but for room effect (WIN32/XBOX) */ float AirAbsorptionFactor /* 0.0, 10.0, 1.0, multiplies AirAbsorptionHF member of FSOUND_REVERB_PROPERTIES (WIN32) */ int Flags /* FSOUND_REVERB_CHANNELFLAGS - modifies the behavior of properties (WIN32) */

Пресеты

Как уже говорилось, фирма Creative Labs предоставляет наборы числовых значений для членов, входящих в указанные структуры. Эти числовые значения присутствуют в библиотеке FMOD как предустановки (пресеты). Благодаря пресетам отпадает необходимость самостоятельно проводить физические эксперименты по определению параметров того или иного помещения, а также звукопоглощения и звукоотражения материала, из которого сложены стены. Пресеты составлены только для структуры FSOUND_REVERB_PROPERTIES. Числовые параметры пресетов можно посмотреть в файле fmod.h, в котором они объявлены посредством инструкции #define. В силу этого пресеты можно использовать только для инициализации структур при их объявлении, например:

FSOUND_REVERB_PROPERTIES prop = FSOUND_PRESET_AUDITORIUM;

Вот список пресетов, используемых при работе с DirectSound3D в системе Windows:

  • FSOUND_PRESET_OFF - обработка реверберации отключена
  • FSOUND_PRESET_GENERIC - параметры по умолчанию
  • FSOUND_PRESET_PADDEDCELL - "келья (палата), обитая материалом"
  • FSOUND_PRESET_ROOM - "комната"
  • FSOUND_PRESET_BATHROOM - "ванная комната"
  • FSOUND_PRESET_LIVINGROOM - "жилая комната"
  • FSOUND_PRESET_STONEROOM - "комната с каменными стенами"
  • FSOUND_PRESET_AUDITORIUM - "аудитория"
  • FSOUND_PRESET_CONCERTHALL - "концертный зал"
  • FSOUND_PRESET_CAVE - "пещера"
  • FSOUND_PRESET_ARENA - "арена"
  • FSOUND_PRESET_HANGAR "ангар"
  • FSOUND_PRESET_CARPETTEDHALLWAY - "коридор (прихожая), выложенный коврами"
  • FSOUND_PRESET_HALLWAY - "коридор" ("прихожая")
  • FSOUND_PRESET_STONECORRIDOR - "коридор с каменными стенами и полом"
  • FSOUND_PRESET_ALLEY -"аллея"
  • FSOUND_PRESET_FOREST - "лес"
  • FSOUND_PRESET_CITY - "город"
  • FSOUND_PRESET_MOUNTAINS - "скалы"
  • FSOUND_PRESET_QUARRY - "карьер"
  • FSOUND_PRESET_PLAIN - "степь"
  • FSOUND_PRESET_PARKINGLOT - "автостоянка"
  • FSOUND_PRESET_SEWERPIPE - "канализационная труба"
  • FSOUND_PRESET_UNDERWATER - "под водой"
  • FSOUND_PRESET_DRUGGED - "заторможенный"
  • FSOUND_PRESET_DIZZY - "головокружительный"
  • FSOUND_PRESET_PSYCHOTIC - "психотический"

Установка и чтение пространственных параметров

Для назначения определенных пространственных параметров источнику объемного звука в библиотеке FMOD предназначены функции FSOUND_Reverb_SetProperties () и FSOUND_Reverb_SetChannelProperties (). Для получения установленных параметров, служат обратные функции FSOUND_Reverb_GetProperties () и FSOUND_Reverb_GetChannelProperties (). Установку параметров реверберации можно выполнять и во время воспроизведения звука. Для того чтобы новые параметры вступили в силу, необходимо вызвать функцию FSOUND_Update().

Функции FSOUND_Reverb_SetProperties () и FSOUND_Reverb_GetProperties () предназначены для установки и получения общих параметров окружающего пространства соответственно. Обе функции получают один единственный параметр - указатель на структуру FSOUND_REVERB_PROPERTIES , соответствующую спецификации EAX. В случае FSOUND_Reverb_SetProperties () этот указатель должен адресовать уже инициализированную структуру, заполненную необходимыми числовыми значениями. В случае FSOUND_Reverb_GetProperties () указатель адресует область памяти, предназначенную для сохранения числовых значений. При успешном завершении функции возвращают TRUE, в противном случае - FALSE.

/* Пример установки параметров реверберации */ FSOUND_REVERB_PROPERTIES props = FSOUND_PRESET_STONEROOM; if (!FSOUND_Reverb_SetProperties (&props)) { /* обработка ошибки */ ... }; FSOUND_Update(); ...

Отдельному источнику звука (каналу) можно назначить параметры реверберационной модели (в том числе и такие, как обструкция и окклюзия) посредством функции FSOUND_Reverb_SetChannelProperties (), а прочитать их с помощью FSOUND_Reverb_GetChannelProperties (). Эти функции получают два параметра. Первый, как и для всех функций FMOD, работающих с каналами, это номер канала, через который идет воспроизведение звука. Второй параметр - это указатель на структуру FSOUND_REVERB_CHANNELPROPERTIES. При вызове FSOUND_Reverb_SetChannelProperties() он должен адресовать уже инициализированную структуру, а при вызове FSOUND_Reverb_GetChannelProperties () - свободное место в памяти, достаточное для сохранения полученных значений. Для функции FSOUND_Reverb_SetChannelProperties () bбиблиотека FMOD не располагает пресетами, поэтому выбор числовых значений для тех или иных членов структуры FSOUND_REVERB_CHANNELPROPERTIES ложится на плечи программиста.

/* Пример установки параметров реверберации */ /* для отдельного источника звука */ ... int channel; // номер канала FSOUND_SAMPLE *samp = NULL; // указатель на звуковой буфер // инициализация структуры необходимыми значениями FSOUND_REVERB_CHANNELPROPERTIES channel_props = {... }; // загрузка звуковых данных samp = FSOUND_Sample_Load (FSOUND_FREE, "motor.wav", FSOUND_HW3D | FSOUND_LOOP_NORMAL, 0, 0); // открытие канала воспроизведения channel = FSOUND_PlaySound(FSOUND_FREE, samp); // установка параметров реверберации if (!FSOUND_Reverb_SetChannelProperties (channel, &channel_props)) { /* обработка ошибки */ ... }; FSOUND_Update(); ...

Пример программы

В качестве примера работы с функциями FMOD и системой EAX предлагается программа на языке программирования Си (ANSI C), создающая приложение Windows в форме диалогового окна, в котором можно выбрать из списка один из пресетов и прослушать, как изменится звучание источника объемного звука. При запуске приложения выводится диалог для выбора звукового файла. Кроме того, приложение позволяет просмотреть параметры звуковой карты: наличие аппаратной поддержки для 3D звука и EAX (разумеется, что эффекты пространственного звучания будут иметь место только, если звуковая карта поддерживает EAX). Программа написана и откомпилирована при помощи пакета lccwin32, однако программисту, использующему иную среду разработки, не составит труда адаптировать исходный код для своих нужд. Следует учесть, что в состав FMOD входят несколько библиотек (.lib), каждая из которых предназначена для своего компилятора.

  • fmodbc.lib - для Borland C Builder
  • fmodlcc.lib - для lccwin32
  • fmodvc.lib - для Microsoft Visual C/C++
  • fmodwc.lib - для Watcom C++

В предлагаемом примере используются функции Win32 API и библиотеки FMOD. Для работы программы вы должны установить у себя на компьютере библиотеку fmod или поместить в папку с исполняемым файлом (eaxdemo.exe) файл библиотеки fmod.dll.

  • Не забудьте разархивировать файлы.

Заинтересовался вопросом: актуальна ли поддержка технологий аппаратной обработки звука, типа EAX? Есть ли смысл апгрейдить свою Creative X-Fi с разъемом PCI на нечто более современное? Или с появлением Windows Vista, лишенной поддержки аппаратного ускорения DirectSound/DirectSound3D можно забыть про покупку дорогих звуковых карт? Погуглил EAX 5.0, с удивлением узнал, что эта технология записана в устаревшие самим разработчиком: "cогласно спецификации OpenAL 1.1 компании Creative, EAX должен считаться устаревшим. Новые разработки должны использовать интерфейс OpenAL EFX". Погуглил игры с поддержкой OpenAL и увидел весьма скорбный список (http://connect.creativelabs.com/alchemy/Lists/Games/AllItems.aspx):
Americas Army,
ARMA (но не ARMA2, где обработка звука полностью софтовая, силами самой игры),
Battlefield 2,
Battlefield 2142,
Bioshock,
Brian Lara"s International Cricket 2007,
Call of Juarez,
Cold War,
Colin McRae Rally DiRT,
Doom3,
El Matador,
Gears of War,
GRID,
Mage Knight Apocalypse,
Mass Effect,
Prey,
Quake 4,
Red Orchestra: Ost Front,
S.T.A.L.K.E.R,
Serious Sam 2,
Spaceforce II: Rogue Universe,
Star Wars Republic Commando,
Star Wars Jedi Knight: Jedi Academy,
Star Wars Jedi Knight II: Jedi Outcast,
The Regiment,
Tom Clancy"s Ghost Recon: Advanced Warfighter,
Trackmania Nations Forever,
Unreal Tournament 2003,
Unreal Tournament 2004,
Unreal Tournament 3,
Vanguard: Saga of Heroes.
Большинство вышеперечисленных игр очень старые, например Quake 4 вышел в 2005 году, а Doom 3 - в 2004. Игры, в которые кто-то станет играть сегодня, можно пересчитать по пальцам одной руки. Покупать дорогую звуковую карту ради них нет смысла. Получается, что игр, поддерживающих OpenAL и гарантированно работающих в Windows 7 на сегодняшний день очень мало, а те, что использовали DirectSound3D (более 80% игр) запускаются с аппаратной поддержкой звука как бог пошлёт - через программные костыли третьих разработчиков, которые не всегда работают. Причем у всех костыли свои: у Creative - ALchemy, перехватывающая обращения игры к DirectSound3D и конвертирующая их в свой OpenAL. У Realtek есть аналогичная технология 3D SoundBack, у C-Media - Xear3D EX и т.д.
Очевидно, что ни DirectSound3D, ни OpenAL в будущих играх поддерживаться не будут. Благодаря Microsoft, разработчики сделали 2 шага назад и вернулись в 1995 год, когда не существовало стандартов аппаратной обработки звучания и эта работа ложилась на процессор. DirectSound3D, EAX и OpenAL отправлены в мусорное ведро, а покупателю теперь выгоднее потратить деньги на хороший ЦАП, усилитель и высокоомные наушники, чем покупать дорогую звуковую карту, которая даст лишь ЦАП среднего качества.

EAX (E nvironmental A udio E xtensions) — технология, разработанная студией Creative Labs. Обладает функциями создания звуковых эффектов окружающей среды. Применяется совместно со студийными звуковыми картами Sound Blaster и Creative NOMAD/Creative Zen. В настоящее время технология EAX имеет версию 5.0, она была представлена в линейке звуковых карт X-Fi, в августе 2005 года.

Технология

Системы аудиопозиционирования имеют возможность управлять местоположением источников звука и слушателя в 3D-пространстве. К примеру, в играх применяется эффект DirectSound3D, который служит для создания отдельных источников звука для каждого объекта в игре. Так, различные звуки (к примеру, выстрелы или шаги) могут звучать в разных местах 3D-мира. Эти звуки, так же как и слушатель, могут перемещаться в пространстве.

Технология EAX улучшает эффект DirectSound3D путем создания виртуального окружающего аудио-мира. EAX эмулирует реверберации и отражения, направляющиеся со всех сторон от слушателя. Данный эффект создает впечатление, что вокруг слушателя существует реальный мир со своими параметрами. Звук описывает все: размеры помещения, свойства стен и прочие тонкости и детали. Разработчики игр могут создавать различные акустические эффекты для различных помещений. Так, пользователь, играющий в EAX-игру, слышит разницу в звуке при переходе, скажем, из помещения в тоннель.

Плюс ко всему, вместе с созданием окружающих эффектов, EAX может изменять параметры и различных источников звука. Если изменяется место расположения источника звука относительно слушателя, изменяются и параметры реверберации.

Технология EAX применена во многих известных современных компьютерных играх (Half-life, Counter-Strike, Grand Theft Auto IV, S.T.A.L.K.E.R., Doom 3). Данные игры поддерживают EAX версии 4.0 и 5.0, если на ПК установлено аудиоустройство с драйвером, поддерживающим OpenAL.

В зависимости от версии EAX, растет и число одновременной аппаратной обработки голосов: чем выше версия, тем это число больше. Так, EAX 1.0 поддерживает до 8 одновременных потоков каналов, а EAX 5.0 - уже 128 потоков + до 4 различных эффектов для каждого.

Версии

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

EAX 1.0 применялась в звуковых картах Sound Blaster Live!.

  • Поддержка 8 одновременно звучащих каналов.
  • Поддержка 32 индивидуальных каналов.
  • Аппаратный DSP Rendering.
  • Поддержка изменений мест в игре, а также эффекта реверберации и отражения.
  • Большое количество пресетов.
  • Возможность изменения реверберации окружения с ограниченным функционалом.
  • Возможность автоматического изменения интенсивности реверберации, в зависимости от положения источника звука.

Звуковая сцена в версии EAX 1.0 создается на основе заранее созданных пресетов. В них учитывается дистанция между источниками звука и слушателем. EAX 1.0 обладает огромным набором пресетов. Кроме того, реализована возможность изменения параметров поздней реверберации, а также автоматического изменения уровня, в зависимости от расстояния, за счет чего достигается улучшенное восприятие расстояния до источника.

Версия EAX 2.0 во многом повторяет первую, и более того, построена на ее основе. Имеет возможность создавать еще более реалистичные эффекты, благодаря внедрению поддержки преграждения и отражения звука. Кроме того, реализована улучшенная технология определения направления звука. А также:

  • Реверберационная модель получила обновление.
  • Добавлены эффекты звуковых преград и поглощений.
  • Раздельное управление начальными отражениями и поздними реверберациями. Непрерывный контроль размеров помещений. Модернизированная дистанционная модель для автоматического управления реверберациями и начальными отражениями. За основу в этой модели взято местоположение источника звука относительно слушателя.
  • Учет звуковых свойств воздуха, возможность поглощения звука.
  • Для использования эффектов Environmental Audio не нужно описание геометрии помещения.

Версия EAX 3.0, по сути, является расширенной второй. В ней реализован новый уровень реальности, которого удалось достичь благодаря поддержке местных и изолированных отражений. Также реализован "бесшовный" переход между звуковыми сценами.

  • Поддержка 64 индивидуальных каналов.
  • Контроль ранних ревербераций и отражений в каждом источнике звука.
  • Динамический переход между окружающими моделями.
  • Модифицированная дистанционная модель для автоматического управления реверберацией и начальными отражениями, в зависимости от положения источников звука относительно слушателя.
  • Расчеты Ray-Tracing для достижения параметров отражения лучей для каждого источника звука.
  • Отдельные отражения для дальних эхо.
  • Модифицированное дистанционное представление, заменяющее статическую реверберационную модель.

Технология EAX 4.0 реализована в звуковых картах Sound Blaster Audigy 2.

  • Эффекты реального времени.
  • Большое количество одновременных окружений.
  • Эффект флэнжер.
  • Эффект эхо.
  • Эффект дисторшн.
  • Эффект кольцевой модуляции.

Версия EAX 5.0 представлена в аудиокартах Sound Blaster X-Fi и ASUS ROG Xonar Phoebus.

  • Поддержка 128 индивидуальных каналов + 4 эффекта на каждый.
  • Функция EAX Voice. Возможность обработки входящего сигнала микрофона.
  • Функция EAX PurePath. Увеличение точности определения виртуальных источников звука.
  • Функция Environment FlexiFX (4 слота для эффектов на каждый канал).
  • Функция EAX MacroFX дает реалистичные эффекты на близком расстоянии.
  • Функция Environment Occlusion создает впечатление нахождения объекта за стеной.

Что в будущем?

Спецификация OpenAL 1.1 от компании Creative диктует динамику развития технологии EAX. Согласно этой спецификации, технология считается устаревшей. Новые разработки будут применять интерфейс OpenAL EFX. Он более глубоко интегрирован в среду OpenAL.

Эмуляция EAX

Студия Creative также выпустила специальные драйвера, позволяющие эмулировать технологию EAX. Они применяются в компьютерах, оснащенных встроенной звуковой картой.