Как нарисовать текстуры. Творческий подход в рисовании текстур

11.04.2019

Environmental Audio (дословно окружающий звук)- это новый стандарт звука, разработанный фирмой Creative Labs, создающий эффекты окружающей среды реального мира на компьютере. Environmental Audio сегодня ужк много больше простого surround -звука и 3D моделирования. Это и настоящее моделирование окружающей среды с помощью мощных эффектов с учётом размеров комнаты, её звуковых особенностей, реверберации, эхо и многих других эффектов, создающих ощущение реального аудио мира.

Как работает Environmental Audio

Эффекты окружающей среды моделируются при помощи технологии E-mu Environmental Modeling, поддерживаемой аудиопроцессором EMU10K1, установленного на серии звуковых карт SBLive! Технология Environmental Audio разработана с учётом работы на наушниках, двух или четырёх колонках. Чип EMU10K1 раскладывает любой звуковой поток на множество каналов, где накладывает эффекты в реальном времени. За счёт этого создаются уже новые звуки, такие, как они должны быть в природе. На стадии обработки звука кроме его пололжения в пространстве должны быть учтены, как минимум, два фактора: размер помещения и реверберация, так как человеческое ухо слышит не просто оригинальный звук, а звук с учётом дистанции, местоположения и громкости. Стандарт Environmental Audio обрабатывает все эти условия для получения высококачественного реального звука.

Environmental Audio использует координаты X, Y, Z, а также реверберацию и отражения звука. Эти координаты используются при базовой подготовки каналов аудио источника и эффектов "окраски" звуковой сцены. Основная мощность аудиопроцессора расходуется на обработку каждого звукового источника по всем каналам и на добаление эффектов в реальном времени. Как уже говорилось, для создания ощущения реального звука нужно учитывать как минимум 3 фактора: расстояние до источника звука, размер звукового помещения и реверберацию.

Environmental Audio Extensions (EAX)

Это API, разработанный фирмой Creative Labs для достижения реальных звуковых эффектов в компьютерных играх. EAX- это расширение API DirectSound3D от фирмы Microsoft На 18 Октября 1999 года единственной звуковой картой, поддерживающей этот стандарт является Sound Blaster Live! (в разных модификациях). На сегодня Creative выпустила три версии этого стандарта..

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

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

Что касается программирования, то здесь EAX предоставляет следующие возможности.

    - Выбор среди большого числа "пресетов" для моделирования эффектов окружающей среды.
    - Возможность изменять параметры пресетов окружающей среды для каждого источника в отдельности.
    - Автоматическое изменение критических параметров, применяемых к позиции. Когда источник звука движется по отношению к слушателю, EAX автоматически изменяет параметры отражения звука и реверберации для создания более реальных звуковых эффектов при движении источника звука через 3D звуковой мир.
Occlusions и Obstructions

Эффект occlusions создаёт впечатление, что источник звука находится в другой комнате, в другом месте, за стеной. Это свойство позволяет изменять параметры передачи звуковой характеристики для получения эффекта различных материалов стен и их толщину. Например, программа может использовать это свойство для создания звука, идущего из-за двери, или из-за стены.

Эффект obstructions позволяет эмулировать звуковые препятствия, создавая ощущение, что источник звука находится в той же комнате, но за препятствием. Например, можно сделать так, что звук будет идти из-за большого камня, находящегося в той же пещере, что и слушатель.

Геометрическое моделирование и EAX

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

EAX для разработчиков

EAX не требует того, чтобы источники звука привязывались к графическому представлению об окружающей среде. Но при желании разработчик, который хочет создать звуковые эффекты "повышенной реальности", которые максимально близки к графическому представлению о сцене может использовать дополнительное управление ранними отражениями, преломлениями и поглощениями. При создании своих эффектов EAX использует статические модели среды, а не её геометрические параметры. Эти модели автоматически рассчитывают реверберации и отражения относительно слушателя с учётом размеров помещения, направления звука и других параметров, которые программист может добавлять, для каждого источника звука. Поэтому EAX намного проще других стандартов, так как он не требует описания геометрической среды сцены, а использует подготовленные заранее модели. Игра может менять звуковые модели при переходе от одного места к другому для создания реальных эффектов. Я хочу рассмотреть это подробней. Допустим, у вас есть сцена в игре ввиде каменной пещеры. Есть два способа получить высокореалистичные эффекты. Первый из них- рассчитать геометрическую модель и использовать её как аудио маску для сцены, причём новые технологии будут позволять делать это в реальном времени. Второй способ- взять готовый пресет и, при необходимости, изменить его для получения более качественных эффектов. Разумеется, первый способ даст больший реализм, чем второй, но и потратит ресурсов в несколько раз больше. А если учитывать лень программистов, то в этом случае EAX наиболее благоприятный вариант.

Различия между EAX 1.0, 2.0 и 3.0

EAX 1.0

    - Поддерживает изменение места в игре реверберации и отражений.
    - Имеет большое количество пресетов.
    - Позволяет (ограниченно) изменять реверберацию окружения.
    - Позволяет автоматически изменять интенсивность реверберации, в зависимости от положения источника звука относительно слушателя.
EAX 1.0 строит звуковую сцену на основе заранее созданных пресетов, учитывая дистанцию между источниками звука и слушателем. Соответственно, EAX 1.0 предоставляет большой набор пресетов "на каждый случай жизни". Также имеется возможность изменять параметры поздней реверберации (дэмпинг, уровень) и автоматическое изменение уровня в зависимости от расстояния. Благодаря этому происходит улучшенное восприятие расстояния до источника.

EAX 2.0

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

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

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

в августе 2005 года .

Там же описание версий https://ru.wikipedia.org/wiki/Environmental_Audio_Extensions

Ниже таблица компьютерных игр, звуковые движки которых используют технологию звуковых эффектов окружающей среды Environmental Audio eXtensions.

Из данного списка игр могу выделить: Aliens versus Predator, The Lord of the Rings: The Battle for Middle-earth II, Bioshock , Call of Duty 2, The Chronicles of Riddick: Escape from Butcher Bay , Diablo 2, Doom 3 (patch 1.3 added EAX 4 support ), F.E.A.R. (EAX 4), Far Cry, Grand Theft Auto 3, Grand Theft Auto: Vice City, Grand Theft Auto: San Andreas, Grand Theft Auto 4, S.T.A.L.K.E.R. все части(EAX works through OpenAL. Do not use ALchemy.), Half-Life 2 , Driver, Driver: Parallel Lines , Hitman 2: Silent Assassin, Hitman: Blood Money, Max Payne 2 , Tom Clancy"s Splinter Cell, Unreal, Unreal Tournament 2003 & 2004, Warcraft III, Stubbs the Zombie, The Matrix: Path of Neo (google it: EAX option in INI. Use ALchemy ), Prey , Quake 4 (EAX 4, EAX 5 via OpenAL), Outcast , Condemned (EAX 2.0, EAX Advanced HD), Mafia, Need for speed 3 и High Stakes, S.W.A.T 4 (For EAX, requires use of Creative Alchemy. Also, you must edit Swat4.ini and set the following parameters to true: UseEAX and Use3DSound).

Нативная поддержка EAX в карточках реализована только в Windows XP, поскольку аппаратное ускорение DirectSound и DirectSound3D больше не поддерживается в Windows Vista , поэтому для этой ОС и старше приходится прибегать к помощи сторонней утилиты Creative ALchemy .

Скачать Creative ALchemy с оф. сайта:

Подробнее об утилите:


Что такое ALchemy?
Это утилита, выполняющая две взаимоисключающие функции:
1. API-транслятор из вызовов DirectSound3D (DS3D) в вызовы OpenAL.
2. программный движок 3D-звука, понимающий вызовы DS3D.

Зачем это?
Дело в том, что компания Microsoft серьезно переделала аудио-стэк в OS Windows Vista. Сделано это не без причины, многое менять давно было пора. Однако, при этой переработке пострадала часть старых API, которые теперь лишь эмулируются новым WASAPI. Для конечного пользователя наиболее заметной потерей является невозможность программ, использующих DS3D, напрямую «общаться» с аудиодрайвером. Что в свою очередь лишает пользователя таких приложений 3D-звука и поддержки любых версий EAX. Очевидно, что наибольшую проблему это представляет для карт Creative. Поэтому и был выпущен ALchemy.

Эти особенности Vista относятся только к DS3D?
Да. Приложения, использующие API не от MS, не затронуты. Т.е. игры с OpenAL продолжают работать как и в предыдущих версиях Windows.

А что насчет Windows Seven?
Что касается DS3D, то Seven ничем не отличается от Vista.

Какие требования предъявляет ALchemy?
ALchemy работает только с картами Creative Audigy/X-Fi. Никаких других ограничений не существует.

Как это работает?
В папку приложения подкладывается библитека dsound.dll и файл конфигурации dsound.ini (это можно сделать вручную или через графическую оболочку). Т.к. в первую очередь приложения ищут файлы dll в своей папке, а только потом заглядывают в папки операционной системы, то этот dsound.dll (являющийся непосредственно самим ALchemy) имеет приоритет над «настоящим» dsound.dll от Microsoft. Таким образом любые обращения приложений к DS3D обрабатываются ALchemy, а не встроенными в Windows механизмами.

Как это влияет на скорость работы?
В большинстве случаев скорость соответствует варианту «Windows XP без ALchemy». На картах с APU/Audio Processing Unit (т.е. всех старших моделях Audigy/X-Fi) ALchemy практически не нагружает процессор, т.к. не выполняет никаких вычислений, а просто транслирует команды. В редких случаях возможно даже незначительное ускорение, вызванное большей оптимизированностью драйвера под OpenAL. В случае отсутствия APU или работы X-Fi не в игровом режиме ALchemy задействует встроенный в него программный движок 3D-звука. Этот программный движок имеет те же возможности, алгоритмы и звучание, что и встроенный в драйвер X-Fi XtremeAudio.

Получается, что при использовании ALchemy карты X-Fi имеет смысл переводить в игровой режим только ради скорости?
Вовсе нет. Программные алгоритмы XtremeAudio заметно уступают в качестве звука алгоритмам, выполняемым на APU.

Надо ли это применять ко всем моим играм или только тем, что имеют EAX?
На мой взгляд ALchemy следует применять ко всем играм, использующим DS3D. Встроенное в Vista софтверное микширование имеет весьма низкое качество в сравнении с тем, что выдают любые карты Creative. Кроме того, без ALchemy зачастую даже не работает правильный многоканальный звук, уж не говоря про позиционирование в наушниках или на стереопаре.

А как определить использует ли игра OpenAL сама и без Alchemy?
Простейший и самый действенный метод — просто ввести в поиск Google "<название игры> OpenAL". Также можно проверить наличие файла OpenAL32.dll в папке с игрой (не обязательно, но как правило этот файл присутствует).

Руководство к действию
Обычно ALchemy уже поставляется на диске в комплекте с картой. Также его можно скачать по этой ссылке . После инсталляции и запуска графической оболочки можно наблюдать следующую картину:

Если повезло, то все установленные игры будут перечисленны в списке слева. В таком случае надо просто выбрать нужную и нажать на кнопку ">>". Однако, графическая оболочка умеет искать весьма ограниченное число игр. Поэтому в большинстве случаев игры придется добавлять вручную. Для этого нажимаем на «Add» и видим уже другой экран:

Его нам и предстоит заполнить.
«Game Title» — название игры, сюда можно вписать все, что угодно.
Переключатель «Use Registry Path»/«Use Game Path» выбирает тип поиска месторасположения игры, по реестру (тогда надо вписать ключ реестра, в котором указан путь к игре) или просто полному пути к папке. Я рекомендую использовать более простой способ — без возни с реестром просто вписать путь к игре. Для этого отыскиваем папку с игрой в проводнике (проще всего это делается через пункт «Открыть место хранения файла» в контекстном меню ярлыка), выделяем путь к ней вверху окна проводника

и копируем его в буфер обмена, затем вставляем в окно ALchemy.
Галочка «Install into Sub Folder» позволяет задать расположение exe-файла игры внутри папки этой игры. Например, у 32-разрядной версии Crysis exe-файл лежит в подпапке Bin32 (и поэтому в поле под этой галочкой надо вписать Bin32). А вот у Fallout 3 exe-файл лежит прямо в главной папке игры (поэтому галочку вообще не надо ставить). Еще более сложный (зато почти единичный) пример: у CnC3 настоящий exe-файл лежит в подпапке RetailExe\<версия установленного патча> и вообще имеет расширение dat вместо exe.
Галочка «Install into both Root and Sub Folders» позволяет установить ALchemy сразу в две папки — основную и указанную выше подпапку. Нужно это для тех редких игр, у которых несколько exe (например, один для настройки, а другой — собственно игра) и лежат они в разных местах.
Остальные параметры («Buffers», «Duration», «Maximum Voice Count», «Disable DirectMusic») как правило следует оставлять как есть. Хотя с некоторыми играми buffers и duration требуют подстройки для решения проблем. Подробнее см. далее.
Настроив все, нужно нажать «OK», выбрать только что добавленную игру и нажать на ">>".

Как понять, что все работает
1. На слух .
2. По активировавшимся опциям в игре (если они есть).
3. По файлу dsoundlog.txt, который создается в папке игры (если игра установлена в подпапку «Program Files», то при включенном UAC он обычно попадает в папку C:\Users[Пользователи]\<имя пользователя>\AppData\Local\VirtualStore\ <реальный путь к папке игры>). В случае работы в режиме транcлятора и задействования APU в нем должна присутствовать строка «Using Native OpenAL Renderer». А в случае использования встроенного программного движка «Using Creative Software 3D Library». В любом случае там не должно быть всяких «error» или «fail».

Если что-то не работает

Теперь игра вылетает.
Обычно вызвано включенным UAC и игрой, установленной в папку, в которую без доступа администратора писать нельзя (например в Program Files, куда по-умолчанию ставятся почти все игры). Лично я UAC отключать не советую даже самым «опытным пользователям». Решение проблемы без отключения UAC следующее. Надо один раз запустить игру с администраторским доступом (выбрав соответствующий пункт в контекстном меню ее ярлыка). Затем надо отыскать файл dsoundlog.txt в папке игры, открыть его свойства, перейти на закладку «Безопасность» и нажать «Изменить». Откроется окно


В нем надо выбрать «Пользователи», поставить галочку «Полный доступ» в столбце «Разрешить» и нажать «OK».

Все пути прописаны верно, но почему-то не работает или звук заикается/с очень сильным эхо/пропадает/и т.п.
Скорее всего необходима подстройка duration и buffers. Для этого требуется выбрать игру в ALchemy и нажать «Edit». Необходимо снижать значение duration с шагом 5 до исчезновения ошибки. Если при этом заикания сменились на отсутствие всякого эффекта от ALchemy или звука вообще, то необходимо увеличивать buffers с шагом 1. При каждом изменении параметров достаточно просто закрывать окно, вызванное кнопкой «Edit», с помощью кнопки OK. Последовательно нажимать "<<" и ">>" для переприменения ALchemy не обязательно. В большинстве случаев можно найти уже подобранные другими пользователями настройки .

Все равно ничего не помогает
На данный момент ALchemy существует только в 32-разрядной версии. Он может работать в 64-разрядной версии Windows, но только на 32-разрядных версиях приложений. Также он не работает с играми, написанными для XAudio2. Для них используются другие механизмы 3D-позиционирования и эффектов.

Я применил ALchemy на Everest или другой диагностической программе, а там в разделе DirectSound видно только поддержку EAX 4.0, в то время как моя карта должна поддерживать 5.0.
Не стоит волноваться, это нормально. Так уж вышло, что не существует ни одной игры с поддержкой EAX 5.0 под DS3D, все они используют OpenAL. А с учетом нынешнего положения дел с DS3D шансы на выход какой-то новой игры с использованием EAX 5.0 через DS3D близки к нулю. Поэтому разработчики ALchemy решили сэкономить силы и не встраивать поддержку EAX 5.0 в него.

В догонку видео по настройке:

И еще одна наглядная статья по поводу аппаратной vs хардварной обработки звука на аудиокартах Creative:

В последнее время в Creative успели существенно нарастить сферу применения софтовой версии X-Fi. То, что началось с одной-единственной карты, XtremeAudio, сейчас используется и с гарнитурами и с внешними USB-устройствами и даже устанавливается на встроенные кодеки под названием X-Fi MB. Последний вариант чаще всего встречается на топовых платах Gigabyte или в виде отдельной платки Supreme FX X-Fi в комплекте с материнскими платами ASUS.

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

Почему я все это пишу? Да потому что есть нормальные аппаратные X-Fi со своим аудиопроцессором и в Creative их до сих пор не забыли, время от времени обновляя линейку. Проблема же состоит в том, что большинство пользователей твердо уверены, что разница между программной и аппаратной реализацией только в загрузке процессора, которая их давно не беспокоит. Некоторые попродвинутей знают, что программная реализация ограничена EAX 4, тогда как аппаратная имеет и пятую версию, но не считают это важным под предлогом того, что игр с EAX 5 весьма мало (в чем они правы).

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

Кто-то может возразить, что топовые современные CPU в 4-6 раз мощнее X-Fi. Но это подсчитано на примитивных операциях сложения, в то время как в обработке звука используются довольно специфичные алгоритмы, которые в рамках узкоспециализированной архитектуры оптимизируются гораздо проще, чем на x86. Достаточно вспомнить, что в 2002-2003 годах топовые процессоры были мощнее аудиопроцессора Audigy (предшественник X-Fi представленный в топовой линейке Creative тех времен) в 15-20 раз. И даже в таких условиях Audigy легко опережал по качеству игрового звука любые программные решения.

На этом я заканчиваю слегка затянувшуюся вводную часть и перехожу к наглядной демонстрации. Методика простая. Все настройки звуковых устройств стоят по умолчанию. Звук писался со входа What U Hear, на нем присутствует сигнал в том виде, в каком он попадает на ЦАП. Таким образом, в роликах не отражена разница в уровне преобразователей, вся присутствующая разница в звуке обязана своим существованием исключительно разнице в обработке звука программной и аппаратной версий X-Fi. Выбраны две наиболее показательные игры. Показательные не потому, что разница там по какой-то причине слышна сильнее, а по используемым самой игрой возможностям. Очень важно не отключать HD-видео, а смотреть в максимальном качестве, т.к. битрейт картинки и звука связаны.

Doom 3 в программном и аппаратном исполнении. Игра использует наспех прикрученный патчем EAX 4 (а по реально задействованным фичам скорее EAX 2.5). За что и была выбрана, ее нельзя обвинить в заточке под аппаратный Creative или наличии поддержки недоступных в программной реализации функций. Здесь в программной реализации в первую очередь заметны существенные искажения звука на высоких частотах, а также явная завышенность уровня, неестественность и вообще низкое качество имитации изменения звука в зависимости от помещений (это как раз и есть EAX). Кстати, на всех программных картах любых производителей именно верхние частоты начиная уже с 5 кГц страдают сильнее всего. Вызвано это тем, что чем ближе звук к максимуму текущей опорной частоты (при частоте 44 кГц максимумом является 22, т.е. в 2 раза меньше), тем сложнее его обработать качественно, т.к. нужно все больше и больше наращивать степень интерполяции, потребность в вычислительных ресурсах растет в геометрической прогрессии. Аппаратный X-Fi из-за заложенных в его архитектуру особенностей может позволить себе не только высокие степени, но и работу в игровом режиме с постоянной опорной частотой в 96 кГц для всех 128 потоков. И если вдруг кто-то из гордых пользователей встроенного звука решил сейчас проверить эту старинную игру у себя, то могу сразу подтвердить впечатления. Да, на чистом встроенном звуке без надстроек из-за отсутствия попыток изобразить какие-то эффекты звук в итоге заметно лучше, чем на программном X-Fi. выложена запись этого же фрагмента игры с использованием встроенного аудиодвижка, который используется игрой на встроенном звуке. Ситуация повторяется часто, встроенные кодеки существенно лидируют среди других программных карт по качеству звука в играх, какие бы чудесные технологии не рекламировались на разноцветных коробках. Вернее, чем больше обещают, тем худшего звука следует ожидать. В этом плане хороши профессиональные звуковые интерфейсы, которые никаких игровых эффектов просто не поддерживают. Ну и аппаратные X-Fi, способные их воспроизводить, не вызывая отвращения.

Oblivion в программном и аппаратном исполнении. Эта игра вообще не подозревает о существовании каких-то там непонятных EAX и потому еще более показательна. Очевидно (или может быть «ухослышно»?), что разница имеется и здесь. В программной версии персонажи буквально шепелявят, а удары зачарованным мечом и магией попросту перегружают микшер и звучат неразборчиво, хотя и более басовито, чем на аппаратной версии. Излишняя басовитость, кстати, это еще одна характерная черта любых программных звуковых карт любых производителей. Она исходит напрямую от искажений на высоких частотах. Стремясь сделать их менее заметными производители попросту снижают уровень самого сигнала, «заваливая верха». Аппаратный X-Fi позволяет легко поднять уровень баса или снизить верх без последствий, если кому-то так больше нравится. Чего нельзя сказать о возможности избавиться от неразборчивости верха на программной карте.

О суррогатах от Creative. «Встроенные» X-Fi, XtremeAudio и прочие поделки в играх

Эта запись является продолжением «О суррогатах от Creative. „Встроенные“ X-Fi, XtremeAudio и прочие поделки в играх» . В предыдущий раз были рассмотрены основные тенденции в качестве звучания программных решений по обработке игрового звука. Почему и как они в своей основной массе звучат. Тогда сравнение было прямым, аппаратные Creative против своих программных «сородичей».

Сегодня я закрываю небольшой пробел в той записи. Связан тот пробел с отсутствием примеров записей с достаточно популярной линейки звуковых карт ASUS Xonar.
Как и в прошлый раз записано все через What U Hear (для Xonar через аналогичный по назначению Stereo Mix), что исключает влияние различий аналогового тракта карт, вся разница обусловлена только чипом и используемыми алгоритмами обработки. Обе карты переведы в игровой режим, на Xonar включен GX, на X-Fi при необходимости применяется Alchemy . Битрейт картинки и звука в записях связаны, поэтому HD-режим отключать не следует.

Первой игрой снова становится Doom 3 с его наспех подкрученным EAX 4. Запись с аппаратного X-Fi не переделывалась, на всякий случай продублирую ссылку на нее , а заодно и версию с программного X-Fi . А вот так это звучит на Xonar. Здесь необходимо сделать несколько комментариев. Вцелом, качество звука заметно уступает аппаратному X-Fi и даже встроенному аудиодвижку игры , но чуть комфортнее, чем у программного X-Fi. В действительности программный X-Fi обрабатывает звук чуть качественнее Xonar, но в данном случае на Xonar полностью отсутствуют реверберации EAX, т.е. он производит чуть меньше насилия над звуком. Связано это с тем, что Xonar поддерживает лишь EAX 2, плюс сообщает играм о наличии у него поддержки EAX 5. При этом вызовы к EAX 5 он обрезает до возможностей EAX 2, а о EAX 3 и 4 на этой карте забыли (напоминиаю, что Doom 3 использует EAX 4). Ситуация не изменяется уже несколько лет и уже врядли когда-либо будет исправлена. Тем не менее, игра работает в режиме OpenAL и вся обработка переложена на карту, нет только ревербераций EAX, но о несущественности EAX для игрового звука уже было написано .

Второй игрой стал Fallout 3. Игра на обновленной версии движка Oblivion, использованного в предыдущем тестировании. В Fallout 3 куда больше экшена, а потому и услышать отличия проще. Как и в Oblivion, здесь вообще не используется никакой EAX. Запись для Xonar от аппаратного X-Fi отличается главным образом низким качеством верхних и средних частот, сильным провалом верхних частот (вплоть до того, что это уже симулятор сильно простуженного персонажа с заложенными ушами) и непонятно откуда взявшимися реверберациями в местах, где их быть не должно. Откуда берется большинство этих проблем было подробно рассмотрено в предыдущий раз.

В моей три звковые от Creative коллекции: Creative Audigy SE sb0570 (EAX3_software, ASIO нет) чипсет CA0106-DAT LF, Sound Blaster Audigy Rx sb1550 (EAX4_hardware, ASIO 2.0 ) чипсет (E-MU) CA10300-IAT LF*, Creative X-Fi Titanium sb0880 (EAX5_hardware, ASIO 2.0 ) чипсет CA20K2-2AG-HF.

*(E-MU) CA10300-IAT LF ле гендарный чипсет, который был установлен в Sound Blaster Audigy 4 sb 0610 (2004), он же вернулся в новом Sound Blaster Audigy Rx (2013).



Еще важный момент! Относительно новые модели Sound Blaster Z (70sb150000001) и Sound Blaster ZX (70sb150600001) не используют EAX эффекты в полной мере на аппаратном уровне. Участник форумов Creative пишет следующее:

«X-fi was the last sound card with full featured hardware acclerated 3D sound. After that is got downhill with hardware 3D sound. The newer cards have an outstanding sound quality (better than most X-fi cards) but lack the advanced hardware acceleration. Please note that hardware accelerated 3D sound is used less and less nowadays which is really a shame.»

Причем речь идет именно о программной обработке эффектов EAX, а не эмуляции, как скажем в какой-нибудь звуковой карте от ASUS. Хороший пост

Энциклопедичный YouTube

    1 / 3

    ✪ The Environmental Crisis: Al Gore on Ecology, Economic Opportunities & Education (1992)

    ✪ GOING GREEN! (Earth Day song for kids about the 3 R"s- Reduce, Reuse, and Recycle!

    ✪ Audio Sources & Listeners - Unity Official Tutorials

    Субтитры

Технология

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

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

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

EAX используется во многих популярных компьютерных играх, в том числе Half-life , Counter-Strike , Grand Theft Auto San Andreas , Grand Theft Auto IV , S.T.A.L.K.E.R. , Doom 3 и многих других. Эти игры поддерживают EAX версий 4.0 и 5.0, если на компьютере установлено аудиоустройство, драйвер которого поддерживает OpenAL . Поскольку аппаратное ускорение DirectSound и DirectSound3D больше не поддерживается в Windows Vista , технология OpenAL , очевидно, наберёт популярность среди разработчиков, которые хотели бы использовать EAX в своих играх.

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

Версии EAX

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

EAX 1.0

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

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

EAX 1.0 строит звуковую сцену на основе заранее созданных пресетов, учитывая дистанцию между источниками звука и слушателем. Соответственно, EAX 1.0 предоставляет большой набор пресетов «на все случаи жизни». Также имеется возможность изменять параметры поздней реверберации (дэмпинг, уровень) и автоматическое изменение уровня в зависимости от расстояния. Благодаря этому происходит улучшенное восприятие расстояния до источника.

EAX 2.0

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

EAX 2.0 построен на возможностях первой версии и создаёт ещё более реалистичные эффекты за счёт поддержки преграждения и отражения звука, а также на улучшенной технологии определения направления звука.

EAX 3.0

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

EAX 3.0 совмещает вторую версию с более мощными возможностями. Новый уровень реализма достигается за счёт поддержки местных отражений, изолированных отражений, «бесшовных» переходов между звуковыми сценами и другими особенностями.

EAX 4.0

EAX 4.0 представлен в звуковых картах Sound Blaster Audigy 2 .

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

EAX 5.0

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 для компьютеров со встроенной звуковой картой.

Различия заключаются в комплекте поставки программного обеспечения. Sound Blaster Audigy ADVANCED MB включает Creative Audio Center, Creative MediaSource 5 Проигрыватель/Органайзер, Creative WaveStudio 7, Creative ALchemy; Sound Blaster X-Fi MB включает «Консоль развлечений» (англ. Entertainment Console ), Creative Karaoke Player, Creative MediaSource 5 Player/Organizer, Creative WaveStudio 7, Creative Audio Console, Creative ALchemy.

Также известен как Sound Blaster Audigy ADVANCED MB , он похож на Audigy 2 SE, а программное обеспечение поддерживает EAX 3.0, который поддерживает 64-канальные программные таблицы волн с DirectSound ускорением, но без аппаратного ускорения синтеза таблицы волн. ЦАП оценен как 95дБ по отношению сигнал/шум.

Он доступен как встроенная опция для ноутбуков Dell Inspiron , Studio and XPS.

Последняя версия драйверов поддерживает EAX 4.0.

Sound Blaster X-Fi MB

Возможности:

  • Поддержка EAX 4.0 и OpenAL
  • Кристаллизатор
  • CMSS-3D
  • Графический эквалайзер
  • Creative ALchemy (только Windows Vista , дает возможность использовать EAX в Vista)
  • Console Launcher (Entertainment Mode)
  • Audio Console
  • Karaoke Player
  • Creative WaveStudio
  • Creative MediaSource

В отличие от своего предшественника, Audigy Advanced MB , X-Fi MB не включает в себя программный синтезатор SoundFont. Другое отличие состоит в том, что она имеет возможность участвовать в 30-дневном испытательном режиме.

Система пространственной обработки звука 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.

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

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

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

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, что не так много по сравнению с «игровыми» видеокартами, процессорами и другими комплектующими.



Похожие статьи
 
Категории