Цифровой звук

Правда об A3D


Паршивого качества ЦАП карты Diamond Monster Sound MX 300 (ее то я и пробовал осенью 1998) не позволил мне судить об A3D с максимальной достоверностью. Кроме того, вышла новая версия этого популярного алгоритма позиционирования источников звука в играх. Сегодня я расскажу вам об A3D все. Забегая вперед скажу, что выводы, сделанные мною еще осенью, в главном совершенно верны. Однако новые эффекты оказались настолько забавными, что теперь мне хочется не ругать это детище Aureal, а, напротив, ласково пожурить. В сентябре 1999 г. вышла версия 2.25 этого популярного программного интерфейса для разработчиков игр и драйверы версии 2.09 для всех, оснащенных процессором AU8830, карт. Эти-то драйверы и библиотечки я и использовал. Действие A3D покоится на двух быках (для китов третьего не нашлось) - изменении высоты тона звукового сигнала в зависимости от скорости относительно его источника и расстояния до него (т.н. эффект Допплера), плюс на нескольких эффектах реверберации (эха) для ряда типов помещений. Действительно, налицо попытка, пусть иногда и довольно неуклюжая, рассчета скоростей распространения звуковых волн в соответствии с законами физики, над уточнением которых так долго трудился профессор Нобору Томинари, правом на ряд патентов которого обладает, в том числе, и Aureal.

Особенно ярко проявляется этот эффект в демо - программах "A3D Bee" и "A3D Player" с загруженным звуком этой самой "Bee". Вы все знаете, что в зависимости от скорости и положения мухи относительно вашей башки меняется тональность ее жужжания. Этим еще славятся комары. Но всех переплюнули пчелы от Aureal - настолько перегнули палку создатели этого эффекта его "пчеловоды" - выведены самые жужжастые пчелы в мире. Впечатление таково, что пчелы сии носятся со скоростью реактивного истребителя.

Другой очень яркой программой, на основе которой можно судить об A3D в общем и целом, является игра "Half Life". Я открыл удивительный феномен. В Direct 3D - версии игры вы получаете массу удовольствий от похождений по узким помещениям.
Каждый ваш шаг сопровождается отзвуками шагов, сопровождаемыми обер и унтер - тонами, прекрасно уравновешенными по уровню с громкими звуками стрельбы и грохота падающих предметов, которые, как это ни удивительно, не маскируют тихие звуки. В Open GL - версии вы не имеете ничего из вышесказанного. Разница столь очевидна, что ее нельзя игнорировать. Однако точного обьяснения по этому поводу я дать пока не могу, а пока вот вам гипотеза. Дело в том, что действие алгоритма A3D в подобных играх действительно напрямую связано с текстурами, однако A3D-драйвер сам по себе не может определять типы текстур. Существует несколько типовых текстурок, накладываемых в Direct 3D - играх на поверхности полигональных моделей предметов и стены. В большинстве таких игр на одну поверхность, по крайней мере стены, накладывается одна текстурка. A3D-драйверу сообщается - какая текстурка в данный момент активна, то есть находится на экране. Далее происходит следующее. В "Half Life" и ряде других таких игр звуки выстрелов и шагов в разных помещениях итак описаны разными записями. То есть чтобы "включить" звук "выстрела в трубе" не нужен ревербератор - достаточно команды "играть файл "звук в трубе"". Этим драйвер A3D и занимается, а в AU8830 есть маленький кэш, в который такие команды складываются. Повернулись вы к трубе, пальнули - играют "стрельба в трубе". Повернулись в другую сторону - играют "просто стрельба". Данный тип "ревербератора", конечно же, совершенно не учитывает размеры помещения, а лишь его тип и зависит от того - сколько разных звуков одного и того же предмета создали разработчики игрушек. Теперь задайте себе вопрос - в какую версию "Half Life" вы играете? В Open GL, я угадал? Так вот, в OGL - версии сложные текстуры, то есть на одну поверхность - стену их напяливают две или три. При этом текстуры напяливаются по ходу действия - в результате стрельбы на стенах оказывается кровища разных цветов, и предсказать - какие текстуры окажутся на стене, невозможно в принципе.


Поэтому в OGL - версии игры A3D в полной мере не работает из-за того, что драйвер просто не получает ряда необходимых для полных рассчетов инструкций! Играйте в D3D - вариант, неэстетично - зато звук гораздо интереснее. Ну, а в D3D - версии Фримен носится как те самые мухи и со скоростью курьерского поезда. Ненатурально, но очень интересно, а, главное, весело. Делаются попытки исправления недостатков аудиодизайна уровней "Half Life" путем приглушения звуков, принадлежащих находящимся на уровне удаленным предметам. Однако едва ли не чаще приглушаются не те звуки, а принадлежащие предметам, что расположены совсем рядом, так что в сравнении с обычной здешняя звуковая обстановка выглядит совершенно безумной.

В то же время очевиден явный прогресс в развитии алгоритмов A3D. Хорошей демонстрацией этого является все та же "Half Life". Например, очень богатое совершенно естественными призвуками, обер и унтертонами, звучание наблюдается в шахте, где установлена космическая ракета-носитель. Причем все эти компоненты реверберации находятся в поразительной гармонии друг с другом - слабые звуки практически не подавляют тихие. Очень естественная модель звучания наблюдается и в гидрологической лаборатории, где проживают голодные акулы. Особенно интересен тот факт, что исключительно точно моделируется свист пуль, рикошетящих от различных поверхностей. Изменение тона свиста пуль в точности соответствует материалу поверхности и положению стрелка. Но не в OGL - версии, увы. В целом сегодня качество звучания в игре "Half Life" сравнимо с таковым при просмотре хорошего фильма в хорошем кинотеатре, оснащенном системой DTS, то есть явно лучше Dolby Digital. Все это возможно лишь при использовании драйверов A3D.dll и A3D.vxd версии 2.09, появившейся в сентябре 1999 г., т. е. почти через год после выхода игра стала звучать так, как могла бы звучать с самого начала, если бы работники Aureal более упорно трудились над драйверами. То, что A3D дает предпосылки для большего реализма в играх по сравнению с EAX - это правда, что вытекает из самих принципов его работы сегодня.


В A3D, наконец включены функции реверберации более высокого уровня, чем в EAX, и только теперь можно говорить о его явном превосходстве. В самом деле, ЕАХ обеспечивает всего лишь наличие эха различной интенсивности в разных помещениях, совершенно статичного относительно пространственного расположения фигуры героя, которого "водит" игрок. Я могу включить кнопку "Hall" или "Stadium" на своем процессоре и добится того же самого, не прибегая к покупке поддерживающей ЕАХ звуковой карты. Главным же недостатком ЕАХ является полное отсутствие алгоритмов взаимной регулировки уровней тихих и громких звуков, а A3D 2.09 делает это и, в половине случаев, очень успешно.

Теперь о самом главном - о четырех колонках. Имея дерьмовый звук с выхода карты на четырех пластиковых колонках величиной с пивную кружку и оснащенных широкополосными динамиками, украденными с помойки на фабрике карманных радиоприемников (а именно такими комплектами пользуются некоторые журналисты из бумажных журналов) вы получите такие же ощущения от A3D, что и при использовании лишь одной колонки. И, напротив, имея цифровой выход с высококачественным ЦАП - конвертером, усилитель и две колонки соответствующего класса вы можете узнать об A3D все. Если вам мало этого, то дождитесь игр, в которых звукоданные для каждого из четырех и более каналов будет программно сжиматся по алгоритму АС-3, и в таком виде многоканальный звук может поступать на цифровой выход и передаватся на внешний декодер. Первой игрой такого типа станет, очевидно, "Duke Nukem Forever", о чем я и писал в одной из своих статей. После этой статьи я получил массу писем шибко "умных" читателей игровых журналов, потрясающих цитатами типа "Современные ЦП в принципе не в состоянии справится со сжатием в Dolby Digital на лету" ("Game.Exe" No.12 (53) 1999). В то же время типичные приборы, осуществляющие сжатие по этому алгоритму в "больших" студиях для "большого" кино, обладают вычислительной мощностью в среднем 80-100 MIPS, AU8830 же развивает мощность, по данным производителя, в 600 MIPS.Или последнее - неправда? Так вот, обьясняю, что для сжатия 6-ти - канального потока данных посредством алгоритма AC-3 при помощи Vortex 2 достаточно такой безделицы, как лицензия от Dolby Labs. Inc. на использование соответствующего микропрограммного обеспечения, а Рэй Долби очень жадный, редиска. Похоже, что создателям Duke Nukem Forever удалось его уломать. Наверное к нему явился сам Дюкушка в сопровождении Люки Брази… Нет никаких проблем для полноценной работы с АС-3 средствами современных звуковых карт, кроме юридических, друзья мои! Но Люка Брази… Пошлю-ка я его в "Game.Exe".


Содержание раздела