Технология Wavetracing от Aureal


 

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

  • Они могут следовать по прямому пути к слушателю (direct path).
  • Один раз отразившись от объекта (путь первого отраженного звука — first order reflected path).
  • Отраженный дважды (путь вторично отраженного звука — second order reflected path) и более раз.
  • Звуки могут так же проходить сквозь объекты, такие, как вода или стены (occlusions или звук, прошедший сквозь препятствие).

Описание путей распространения звука

Алгоритмы обсчета путей распространения звуковых волн (wavetracing) компании Aureal воспроизводят эффект распространения звука в окружающей среде; причем это немалая работа с любой точки зрения. В документации с сайта Aureal алгоритмы wavetracing описываются так:

Технология Wavetracing компании Aureal анализирует геометрию описывающую трехмерное пространство для определения путей распространения звуковых волн в режиме реального времени, после того, как они отражаются и проходят сквозь пассивные акустические объекты в трехмерной окружающей среде.

Существуют три главных компонента: интерфейс A3D, geometry engine (геометрический движок, определяющий геометрию объектов в пространстве) и scene manager (менеджер сцены). Интерфейс A3D является основным компонентом. Один в отдельности он используется для реализации прямых путей распространения звука (direct path). Geometry engine является основным компонетом для обсчета отраженных и прошедших сквозь препятсвия акустических звуковых волн или для Acoustic Wavetracing. Менеджер сцены используется как геометрическим движком, так и интерфейсом A3D для управления сложными звуковыми сценами. Обработка каждого из этих компонетов будет производиться именно в таком порядке.

Взаимосвязь и функционирование менеджера сцены, геометрического движка и реализация прямых путей распространения звука показаны ниже:

A3D Direct Path

Прямые пути распространения A3D звука

Реализация прямых путей распространения A3D звука содержит 4 компонента: источник звука (Sound source), окружающая среда, в которой распространяется звук, слушатель (или приемное устройство) и отраженный звук с запаздыванием (late reflections).

Источник звука (Sound source)

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

Дистанционная модель: В дистанционной модели определяется масштабный коэффициент, который контролирует эффективность увеличения количества источников звука на расстоянии. В результате определяется минимальная дистанция для начала увеличения количества источников звука и максимальное расстояние, на котором этот процесс прекращается.

Допплеровская (Doppler) модель: В этой модели определяется скорость распространения звука, высота звука и масштабы применения эффекта Допплера (эффект Допплера заключается в том, что при движении источника волны относительно приемника изменяется длина волны. При приближении источника звука к приемнику длина волны уменьшается, а при удалении растет на величину, определяемую по специальной формуле).

Слушатель

Слушатель определяется свойствами, включающими местоположение, направленность и скорость перемещения.

Окружающая среда

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

В интерфейсе A3D 2.0 окружающая среда определяется свойствами и задается особым образом, описанным ниже. Эти переменные окружающей среды вероятно будут применяться ко всем источникам звука внутри сцены. С аппаратной точки зрения, чипсет Vortex 2 объединяет атмосферные фильтры внутри своего блока реализации A3D звука. По всей вероятности, ввод данных, основанных на переменных окружающей среды осуществляется с применением фильтров, которые должны имитировать различные изменения звука во время прохождения через разные атмосферные среды.

Свойства окружающей среды A3D звука

Заранее задаваемые свойства окружающей среды:

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

Звук, отраженный с запаздыванием (Late Reflections)

Использование отраженного звука предоставляет способ точно определить местоположение источников звука, а так же размер, форму и тип помещения или окружающей среды, в который мы находимся. Чипсет Vortex 2 имеет возможность оперировать до 64 трехмерными источниками отраженного звука. Это осуществляется благодяря использованию геометрического движка, который моделирует ранние отраженные звуки. Ранние отраженные звуки (early reflections) относятся к звукам, отраженным в первую очередь.

Запаздывающий отраженный (late order reflections) звуковой сигнал воспринимается как эхо или реверберация (reverberation). Вот разумное объяснение этому: человек имеет возможность индивидуально воспринимать первый отраженный звук, в то время как второй и все последующие отраженные звуки обычно смешиваются в форму поля запаздывающих отраженнных звуковых сигналов или просто эхо.

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

Переменные механизма расчета звуков, отраженных с запаздыванием (reverb):

  • Варьирование уровней входного и выходного звукового сигнала, отраженного с запаздыванием.
  • Предварительная задержка искусственного эха (reverb).
  • Время затухания запаздывающего отраженного звукового сигнала.
  • Ясность (четкая различимость) запаздывающего отраженного звука.

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

Механизм построения геометрических фигур в пространстве

Геометрический движок или geometry engine в интерфейсе A3D 2.0 это уникальный механизм по своей возможности моделирования отраженных и прошедших сквозь препятствия звуков. Ничего удивительного в таких эпитетах нет, так как Тони Шнейдер с большим энтузиазмом говорил об уровне интерактивности, на который поднимают нас индивидуально реализованные ранние отраженные звуки, добавленные к окружающей звуковой среде.

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

В отличии от менеджера сцены, геометрический движок оперирует с данными на уровне геометрических примитивов: линий, треугольников и четырехугольников. Геометрия может быть определена в двумерном или трехмерном пространстве, соответственно, в случае 3D геометрии, вычисления могут быть очень интенсивными.

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

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

Звуковой полигон (audio polygon) имеет местоположение, размер, форму, а также свойства материала из которого он сделан. Форма полигона и его местоположение в пространстве связаны с источниками звука и слушателем, влияя на определение того, как каждый в отдельности звук отражается или проходит сквозь полигон. Свойства материала, из которого состоит полигон, могут изменяться от полностью прозрачного для звуков до полностью поглощающего или отражающего звуки (см. ниже).

Очень важно иметь минимальную по размерам базу данных акустических полигонов, что бы минимизировать загрузку CPU. По словам Тони Шнейдера (Toni Schneider) в играх должно быть задействовано около 50 звуковых полигонов в любой момент времени. По его мнению, этого количества достаточно для описания сложной акустики и представления всех важнейших случаев прохождения звуков сквозь препятствия. Более того, звуковые полигоны должны быть так же точно определены, как и их эквиваленты в графике.

Материалы

Каждый раз, когда звук отражается от объекта, материал из которого сделан объект влияет на то, как сильно поглощается каждый частотный компонет звуковой волны и как много компонетов отражается обратно в окружающую среду. Материалы, используемые для звуковых полигонов могут быть определены в интерфейсе A3D 2.0.

Переменные материалов:

  • Заранее определенные материалы: дерево, бетон, сталь, ковер.
  • Отражающие свойства: меняются от полностью отражающих до совсем неотражающих звуки.
  • Свойства звуковых преград: меняются от полностью прозрачных до непрозрачных для звуков.

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

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

Один раз отраженные звуки: вновь, качество реализации может быть принесено в жертву скорости вычислений.

Менеджер сцены

Менеджер сцены использует высокоуровневую базу данных звуковой геометрии и управляет звуковыми полигонами, используемыми в сцене. Приложения создают высокоуровневые объекты, называемые стенами (walls), проходами (openings) и помещениями (rooms), которые могут быть использованы в акустической сцене. Обычно, программа загружает сцену и просто вызывает функцию реализации. Менеджер сцены использует акустическую сцену для определения соседства помещения (т.е. что смежно с помещением) и уровень слышимости. Слышны только те звуки, которые распространяются в помещении, где в данный момент находится слушатель, и звуки в смежных помещениях. Менеджер сцены определяет необходимые для данной сцены полигоны и пересылает их геометрическому движку для построения акустической модели.

Примеры высокоуровневых объектов:

  • Стены: имеют свойства материала из которого они сделаны. Они могут двигаться и менять ориентацию в пространстве. Не все сцены должны отражать звук.
  • Проходы: это отверстия в стенах; звук перемещается от одной стороны стены к другой стороне. Проходы могут быть открытыми и закрытыми.
  • Помещение: это пространство, которое со всех сторон полностью окружено стенами.
  • Сцена: это набор из помещений.

Менеджер сцены от Aureal описывет пути распространения звуковых волн для каждого уровня в форме упрощенных полигонов:


Простая сцена

Использование технологии Wavetracing в играх

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

Быстрый и простой способ расчета путей распространения звуковых волн

Быстрый и грубый способо добиться этого, это использовать менеджер сцены. По мнению Скипа Макилвейна (Skip McIlvaine) из Aureal, база данных графической геометрии может быть пропущена через конвертер, который преобразует все необходимые графические полигоны в звуковые полигоны за время загрузки уровня игры. Глобальные значения могут быть установлены для параметров объектов отражающих и препятствующих звуку. Кроме того, возможно произвести обработку базы данных графической геометрии заранее, прогнав алгоритм преобразования полигонов и храня базу данных звуковой геометрии в качестве отдельного файла-карты и подгружать этот файл во время загрузки уровня игры.

Тонкая регулировка wavetracing

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

  • Индивидуально выбирать толщину стен и материал, из которого они сделаны.
  • Заранее подготовить установки эха (reverb) для помещений.
  • Оптимизировать акустическую геометрию с целью использования минимального набора полигонов.

Законченная картина

Результатом является последний шаг в сторону истинного реализма создаваемого звука: комбинация из 3D позиционируемого звука, акустики помещений и окружающей среды и точное представление звуковых сигналов для слушателя. Моделирование окружающей среды, реализованное Aureal, не имеет аналогов, даже EAX от Creative Labs не может сравниться по набору предоставляемых возможностей. Тем не менее, технология EAX более проста в реализации и меньше загружает CPU.

В заключении несколько слов от Тони Шнейдера

Никто лучше Тони Шнейдера не может завершить данную статью:

"Технология Wavetracing не является быстро реализуемым эффектом, который может быть добавлен и так же легко использован, как запаздавшая мысль. Необходимо серьезное планирование перед реализацией. Первые несколько игр, которые будут использовать Wavetracing, возможно будут использовать все преимущества лишь на 50% от всего имеющегося потенциала. Но даже при этом, эти игры будут самыми передовыми, чем все остальные, созданные до них. Первые игры, сделанные с использованием технологии Wavetracing, появятся уже в следующем, 1999 году. Они будут поистине ошеломляющими. В любом случае, A3D 2.0 и Wavetracing были разработаны чтобы стать основными 3D технологиями, которые могут быть использованы всеми разработчиками, т.е. нечто вроде OpenGL для звука. Именно поэтому, мы уверены что имеем основополагающее решение, которое будет существовать долгое время и с помощью которого будет создано масса приложений. "

Источники информации:

  • A3D документация, презентация и SDK.
  • Тони Шнейдер (Toni Schneider, VP Advanced Audio Products) и Скип Макилвейн (Skip McIlvaine) из компании Aureal Semiconductor.


Материал любезно предоставил Керт Чиэн (Kert Chian, Kert's Page).

 

Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.