Смекни!
smekni.com

Технологии 3D-звука (стр. 2 из 3)

A3D 2.0 -- расширение стандарта A3D. Основной особенностью A3D 2.0 стала технология Wavetracing, которая позволяет существенно повысить реалистичность звуковой картины.

В реальном мире мы слышим не только "прямые" звуки но и звуки претерпевшие отражения или прошедшие сквозь препятствия. Причем то, как звуки будут отражаться, искажаться при прохождении через препятствия и поглощаться зависит не только от геометрии окружающей среды, но и, например, от материала из которого изготовлены стены (напрашивается аналогия с полигонами и текстурами в трехмерной графике). Расчет Wavetracing происходит в реальном времени. То есть если изменилась геометрия окружающего пространства (игрок забежал за колонну или открылась дверь в другую комнату) -- тут же изменятся условия распространения звука. Естественно, что такой подход к расчету звуковой картины предъявляет очень большие требования к вычислительным ресурсам как звукового процессора так и CPU. Поэтому при включении A3D 2.0 количество FPS (кадров в секунду) падает довольно-таки существенно. При этом падение FPS намного больше, чем при использовании, скажем DirectSound3D+EAX (о сравнительных характеристиках разных API мы поговорим дальше). Однако стоит послушать как звучит A3D 2.0 в Unreal, Unreal Tournament или HalfLife, и вы сразу поймете, что FPS потрачены не зря!

Технологию A3D 2.0 поддерживают только карты на чипсете Aureal Vortex 2 (AU8830). Перечислюнаиболеепопулярныеизних: Diamond Monster Sound MX300, Turtle Beach Montego II, Aureal SQ2200, Aureal SQ2500 (Super Quad Digital) и OEM карты Aureal Vortex 2. Нужно отметить, что Aureal SQ2500 основана на модифицированном варианте Vortex 2 и поэтому демонстрирует наилучшую производительность среди перечисленных звуковых карт.

EAX

Название EAX (Environmental Audio Extensions) говорит само за себя -- это расширение DirectSound3D, позволяющее учитывать особенности окружающей среды. Напомню, что DirectSound3D формирует звуковую картину на основе координат и скоростей источников звука относительно слушателя, однако при этом совершенно не учитывается свойства помещения, в котором происходит действие. Однако очевидно, что один и тот же источник звука, помещенный в просторную пещеру, маленькую комнату или длинный коридор, будет звучать по-разному. Поэтому, после того как DirectSound3D сформировал звуковую картину, подключается EAX и "раскрашивает" эту картину, исходя из свойств той или иной звуковой среды. В EAX 1.0 свойства звуковой среды описываются, как совокупность эффектов реверберации, характерных для того или иного помещения. В EAX 2.0 кроме ревербераций учитываются также окклюзии и обструкции. Остановимся подробнее на этих эффектах. Реверберации применяются для моделирования эффектов, основанных на отражении звуков (эхо и т.п.). Для расчета ревербераций используются не только свойства помещения но и направление движения источника звука и расстояние до него. Так, например, для удаляющихся и приближающихся источников звука реверберация будут звучать по-разному. Окклюзии (occlusions -- звуки, проходящие через препятствия) используются для источников звука расположенных за пределами помещения, в котором находится слушатель. При расчете окклюзий учитывается толщина стен и материал из которого они сделаны. Обструкции (obstructions -- звуки задерживаемые препятствием) используются для описания взаимодействия звука со звуконепроницаемыми препятствиями (например, дифракция звука на толстой колонне).

Нужно сказать, что EAX (в отличие от A3D) не рассчитывает эффекты в реальном времени, а использует готовые установки -- пресеты (presets). Обычно для каждого помещения задается свой пресет (хотя иногда, для достижения большей реалистичности звука в разных частях одного и того же помещения используются разные пресеты). Само собой разумеется, такой подход к реализации трехмерного звука имеет свои преимущества и недостатки. К преимуществам следует отнести очень небольшое (по сравнению с A3D 2.0) потребление вычислительных ресурсов CPU и звукового процессора, а также красивые спецэффекты, которые нельзя получить при помощи A3D. Основной недостаток готовых пресетов -- их статичность. Представьте себе зал с колоннами. Пусть слушатель находится по одну сторону колонн и передвигается параллельно им, а источник звука находится по другую сторону. При расчете такой сцены с использованием A3D 2.0 звук будет постоянно меняться, в зависимости от того, закрывается ли источник колонной или нет. При использовании EAX в этом случае звуковая картина будет менее реалистична -- звук будет меняться, но при этом будет учитываться только изменение расстояния и направления на источник. Также, в процессе игры может меняться геометрия пространства (обрушиваться стены или взрываться ящики), и при этом естественно будут меняться аккустические свойства помещения. При расчете звуковой картины в реальном времени эти изменения будут учитываться автоматически, а вот в случае EAX такие изменения либо не учитываются вообще, либо вводятся дополнительные пресеты (но ведь учесть все потенциальные игровые ситуации часто невозможно!). Некоторые шаги по устранению этих недостатков уже сделаны в недавно появившемся EAX 3.0. Будем надеяться, что Creative не остановится на достигнутом и будет дальше совершенствовать свою технологию.

Стандарт EAX является "родным" для карт Creative SB Live!, и именно на этих картах наилучшим образом поддерживаются все версии EAX. Практически все карты с 3D-акселерацией поддерживают EAX 1.0. Полноценную поддержку более поздних версий EAX пока имеет только Live!. Правда, для некоторых чипсетов "заточенных" под Sensaura (Yamaha 744, ESS Canyon3D) существуют бета-версии EAX 2.0. Aureal также обещала реализовать поддержку EAX 2.0 в следующих версиях драйверов под Vortex2 (правда, учитывая ситуацию с Aureal эти драйвера вряд-ли выйдут). Нужно сказать, что реализация EAX на неродных картах пока далека от идеала (читай: от звучания на Live! :-)) и сильно зависит от конкретной карты и игры, где используется EAX.

Sensaura3D

Еще одной фирмой, занимающейся разработками в области трехмерного звука является Sensaura. Однако, в отличии от Aureal или Creative, она не производит собственных чипсетов или карт, а только лицензирует свои техологии сторонним производителям (Yamaha, ESS и др.). Нужно сказать, что пока технологии Sensaura не завоевали такую популярность, как DirectSound3D+EAX или A3D. Однако, если учитывать, что за последние пол года вышло сразу несколько новых чипсетов с поддержкой Sensaura3D, то можно предположить, что у этой технологии неплохие перспективы.

Итак, что же умеет Sensaura? Прежде всего необходимо отметить, что Sensaura3D совместима с DirectSound3D EAX 1.0, EAX 2.0, A3D 1.0 и понимает команды этих API. Таким образом, на картах с технологией Sensaura можно наслаждаться 3D-звуком не только в играх для данного API (игр с поддержкой Sensaura еще очень немного) но и в играх с поддержкой ранних версий EAX и A3D (а таковых сейчас подавляющее большинство). Хотя в этом случае нельзя гарантировать, что звук в таких играх будет таким же как для родных для EAX или A3D карт. Но, конечно же основные достоинства технологий Sensaura заключаются не в поддержке других интерфейсов, а в собственных разработках этой фирмы. Рассмотрим некоторые из них.

Технология MacroFX используется для наиболее реалистичного позиционирования звука. Как и в DirectSound3D, в Sensaura3D окружающее пространство разбивается на зоны. Однако в отличие от DirectSound3D, MacroFX предусматривает разбиение на большее количество зон. Обратите внимание на зоны 3,4,5 на рисунке, которые не имеют аналогов в DirectSound3D. Наличие зон 3 и 4 позволяет моделировать такие эффекты как шепот в ухо или свист пуль, пролетающих в непосредственной близости от головы. Интересна также зона 5, которая предназначена для моделирования источников звуков, находящихся в голове (для того, чтобы придумать применение этой зоне разработчикам игр придется поднапрячь фантазию :-)).

Технология ZoomFX предназначена для моделирования звука от крупных объектов, вроде проезжающего рядом поезда. Напомню, что в подавляющем большинстве API все источники звука представляются как точечные. Насколько я знаю, аналогичная ZoomFX технология есть только в A3D 3.0.

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

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

Разработка под названием Digital Ear позволяет настроить параметры трехмерного звука под конкретного слушателя. При этом учитываются размеры головы, размеры ушей, глубина и тип ушной раковины.

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

Звуковые чипсеты, поддерживающие Sensaura очень сильно сотличаются по своим характеристикам, поэтому нельзя сказать что при использовании Sensaura звук будет одинаковым на всех картах. Более того, те возможности Sensaura, которые на одних картах реализованы аппаратно, на других будут реализовываться при помощи CPU. Как яркий пример диаметрально разных по цене и возможностям чипсетов под Sensaura можно привести Maestro и Canyon3D (оба чипсета производства ESS). Если первый может аппаратно ускорять только 5 потоков трехмерного звука то второй -- 32 и к тому же обладает огромным количеством разных "наворотов". Именно на этом чипсете и построена новая карта от Diamond Multimedia -- Monster Sound MX400. Благодаря отличному соотношению цена/качество заслуженной популярностью пользуются карты на чипсете Yamaha 724 (Genius SoundMaker 128XG, Yamaha WaveForce 192D, и многочисленные ОЕМ карты одноименные чипсету). Сейчас на смену этому чипсету пришел новый -- Yamaha 744 (карты на нем уже есть в Киеве, например AOpen 744Pro).