1420-1 (Технологии 3D-звука)

2016-07-31СтудИзба

Описание файла

Документ из архива "Технологии 3D-звука", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "1420-1"

Текст из документа "1420-1"

Технологии 3D-звука

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

Но прежде чем говорить о 3D-звуке, попытаемся разобраться, что же это такое. Ответ на этот вопрос на самом деле далеко не однозначен. Ведь название "3D-звук" зачастую используется для обозначения совершенно разных понятий, начиная от расширенного стерео и заканчивая surround sound. В этой статье под трехмерным звуком мы будем подразумевать позиционируемый звук, т.е. звук, для которого можно определить местоположение источника в трехмерном пространстве (проще говоря, это когда играя в Quake3 или Unreal Tournament вы можете с закрытыми глазами определить, откуда доносятся выстрелы). Безусловно, одного позиционирования не достаточно для создания реалистичного звукового сопровождения, однако без него говорить о "трехмерности" звука вряд ли имеет смысл. Дело в том, что заветные 3D появились в названиях и спецификациях звуковых карт за долго до появления настоящих акселераторов трехмерного звука. Тут можно провести аналогию с видеокартами (таких аналогий в этой статье будет немало) -- вряд ли сегодня кому-то прейдет в голову назвать 3D-акселератором какой-нибудь S3 Trio 3D только из-за последних двух символов в названии. Поэтому сделаем небольшой экскурс в историю.

Первые звуковые карты с гордым клеймом 3D появились еще во времена господства шины ISA. Однако вся "трехмерность" звука у них заключалась в добавлении эффектов вроде реверберации, хоруса или расширения стереобазы. Вообще говоря, первые разработки в области позиционирования звука велись уже тогда, однако они не получили большого распространения ввиду относительной слабости процессоров (как звуковых так и центральных) и тормознутости шины ISA. Революция в трехмерном звуке произошла в 1997 году с появлением технологии A3D. Малоизвестная (тогда!) фирма Aureal, которая занималась разработкой звуковых решений для симуляторов виртуальной реальности NASA, выпустила чип Vortex AU8820, аппаратно реализующий эту технологию. Фактически звуковой процессор Aureal Vortex сделал для трехмерного звука то же, что и графический процессор 3dfx Voodoo для трехмерной графики. Кстати, судьба обоих чипов связана с фирмой Diamond Multimedia и торговой маркой Diamond Monster. Именно карты Diamond Multimedia основанные на этих чипах были в числе пионеров и завоевали особую популярность среди игроков. Долгое время A3D оставался в гордом одиночестве (показателен тот факт, что поддержка аппаратной акселерации 3D-звука была введена только DirectX 6.0). Однако другие производители звуковых карт и чипсетов не желали мирится с таким положением дел. Creative сделала ставку на микрософтовский DirectSound3D и разработала для него расширение EAX. Yamaha и ESS лицензировали разработки британской фирмы Sensaura. Несколько фирм применяют в своих продуктах технологию Q3D от QSound. Именно эти технологии мы и обсудим в данной статье. Но прежде хотелось бы сказать несколько общих слов о принципах 3D-звука.

Для получения трехмерного звука используются законы психоакустики (науки об особенностях восприятия звуковых волн человеком). Не секрет, что у большинства людей два уха, причем расположены они как правило симметрично :). Поэтому человек очень хорошо различает направления на источники звука "слева"-"справа". А вот различать направления "спереди"-"сзади" или "сверху"-"снизу" без дополнительной информации довольно-таки сложно. Само собой разумеется, что один и тот же источник звука сзади будет звучать не так, как спереди. Однако если источник, расположенный спереди заставить звучать "не так", то вполне может создаться впечатление что он расположен сзади. Тоже самое относится и к направлениям "сверху"-"снизу". Конечно, на самом деле все не так просто -- для достижения трехмерности звука используются сложные математические модели и алгоритмы. К сожалению рамки статьи не позволяют подробно останавливаться на описании этих алгоритмов, я лишь перечислю некоторые из них. Для того, чтобы получить трехмерный звук в наушниках используются алгоритмы HRTF (Head-Related Transfer Function). Для двух колонок в большинстве API применяются алгоритмы HRTF with TCC (Transaural Crosstalk-Cancellation). Для четырех колонок разные API применяют разные схемы (обычно для передней пары звук считается по тем же алгоритмам, что и для двух колонок, а задняя пара используется для панорамирования). Сложнее всего реализовывать трехмерный звук для двух колонок. Дело в том, что у каждого пользователя колонки расположены на разном расстоянии друг от друга, да и сами пользователи расположены :-) на разном расстоянии от колонок. Но это еще полбеды -- эти параметры можно учесть в настройках драйверов или приложений (однако в подавляющем большинстве случаев такие настройки отсутствуют). Основная проблема состоит в том, что зона трехмерности для двух колонок очень мала и при выходе слушателя из этой зоны позиционирование звука искажается. Использование четырех колонок несколько улучшает ситуацию. Естественно, улучшается распознавание направлений "спереди"-"сзади", а в некоторых случаях (например при использовании технологии Sensaura MultiDrive) еще и существенно расширяется зона трехмерности звука. Однако, вопреки распространенному мнению, наилучшее позиционирование звука получается отнюдь не на четырех колонках, а в наушниках. Что в принципе неудивительно, ведь проблема зоны трехмерности в этом случае отсутствует. Преимущества наушников по сравнению с колонками особенно проявляются при распознавании направлений "сверху"-"снизу". Более подробно о теории трехмерного звука можно почитать на http://ixbt.stack.net/multimedia/3dsound-tech.html, а мы перейдем непосредственно к описанию современных API.

Итак, начнем с самого распространенного API, который входит в состав DirectX и поддерживается практически всеми звуковыми 3D-картами.

DirectSound3D.

Звуковая картина в DirectSound3D создается довольно-таки просто. Каждому источнику звука в игре присваивается набор таких характеристик: исходная громкость, радиусы ближней и дальней зоны. Значение этих параметров проще всего пояснить на примере. Пусть исходная громкость объекта равна 100, радиус ближней зоны -- 5 метров, радиус дальней зоны -- 50 метров. Тогда, если расстояние между источником и слушателем составляет от 0 до 5 метров, громкость будет оставаться равной 100. На расстояниях от 5 до 50 метров громкость будет уменьшаться пропорционально 1/Rn (обычно n=1). И, наконец, после 50 метров громкость перестанет уменьшаться и будет оставаться постоянной (естественно, можно задать такой закон уменьшения громкости, что на 50 метрах звук практически затихнет или же просто сделать радиус дальней зоны бесконечным). Предусмотрена также возможность создания направленного звука. Для этого источнику звука сопоставляется условный конус, в пределах которого громкость будет максимальна, а за пределами постепенно затухать.

На основе информации о координатах и скоростях источников звука относительно слушателя формируется трехмерный звуковая картина. Координаты нужны для позиционирования и определения громкости объектов, а скорости используются для учета эффекта Доплера. Теперь осталось только с помощью специальных алгоритмов "отреэндерить" получившуюся звуковую картину с учетом того, что используется для воспроизведения звука -- наушники, две или четыре колонки. Если же звуковая карта не поддерживает аппаратную акселерацию трехмерного звука, DirectSound3D может произвести реэндеринг при помощи встроенного программного движка -- DirectSound3D HEL (Hardware Emulation Level), однако HEL обеспечивает только минимальны набор функций (никакой трехмерности практически не ощущается) и при этом потребляет огромное количество ресурсов CPU.

Как видите, DirectSound3D сам по себе умеет не так уж и много, однако этот интерфейс поддерживает расширения, которые могут дополнять его возможности ("голый" DirectSound3D в современных играх практически не используется). Наиболее популярным расширением DirectSound3D стал интерфейс EAX от Creative. Правда скоро EAX перестанет быть расширением и будет включен в состав DirectX 8.0. Но об EAX мы поговорим чуть позже, а пока рассмотрим самую первую и самую популярную (пока !?) технологию создания трехмерного звука.

A3D

A3D стал первым API, поддерживающим аппаратную акселерацию трехмерного звука. Можно сказать, что A3D сыграл такую же роль в становлении трехмерного звука, как Glide в становлении трехмерной графики.

A3D 1.х по своим возможностям примерно соответствует DirectSound3D. Однако у него есть несколько интересных особенностей, например улучшенная дистанционная модель, которая позволяет более реалистично описывать распространение звука в различных средах (чаще всего -- в воде или густом тумане). Но наиболее интересной, на мой взгляд, особенностью A3D 1.х является Менеджер Ресурсов, который управляет 3D-потоками, воспроизводимыми в игре. И если количество потоков очень большое то Менеджер Ресурсов решает, какие потоки наиболее важны для слушателя в данной ситуации и именно для них использует аппаратные возможности A3D звуковой карты. Остальные потоки могут воспроизводиться в режиме обыкновенного стерео или не воспроизводиться вовсе (если число аудио-потоков уж очень большое).

A3D 1.х является "родным" API для карт на чипсетах Aureal Vortex 1 (AU8820) и Vortex Advatage (AU8810). Перечислю наиболее популярные карты на этих чипсетах: Diamond Sonic Impact S90, Turtle Beach Montego, Aztech PCI-338-A3D, Genius SoundMaker 64 и, конечно же, одноименные чипсетам OEM карты Aureal. Естественно, стандарт A3D 1.х поддерживают и карты на Vortex 2, но о них -- чуть позже. Поддержка A3D 1.х на уровне драйверов реализована во многих картах для которых "родными" API являются Sensaura и Q3D. Драйвера этих карт просто преобразовывают команды A3D в команды родных API. Как и в случае с трехмерной графикой, качество реализации таких "врапперов" бывает разным и зависит от конкретного производителя. Стоит упомянуть драйвер A2D от Aureal который реализует поддержку A3D через DirectSound3D. Названием A2D Aureal подчеркивает неполноценность этого драйвера. Действительно A2D реализует далеко не все функции A3D 1.х (не говоря уже о более поздних версиях A3D), однако пусть буквосочетание 2D не вводит вас в заблуждение -- с помощью этого драйвера можно получить неплохой трехмерный звук в играх с поддержкой A3D. Особенно A2D пригодится для владельцев карт в которых DirectSound3D -- единственный API, применяющейся для позиционирования звука (например SB Live!).

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.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее