HRTF (Head Related Transfer Function) в PUBG — что это за функция?
Разработчики PlayerUnknown’s Battlegrounds улучшили систему позиционирования звука в игре, но не включили описание изменений в описание патча. После выхода обновления на форуме проекта появились жалобы на непривычный звук выстрелов. 23 мая создатели «королевской битвы» опубликовали новый блог, в котором рассказали об изменениях и объяснили, что внедрили новые функции плагина HRTF.
Ранее система учитывала положение камеры игрока при воспроизведении звуков взрывов, шагов и перезарядки оружия. Теперь в этот список также включены выстрелы, поэтому расположение соперника в бою будет определить проще.
Информация от разработчиков
Во-первых, главное изменение касается звуков вражеских выстрелов. Разница обусловлена новыми функциями плагина HRTF (Head Related Transfer Function, функция перемещения звука относительно слушателя).
Раньше этот плагин действовал только в отношении звуков движения, взрывов и пустых магазинов, но не вражеских выстрелов. Как правило, вы могли без труда определить, справа или слева стрелял враг, но было гораздо проблематичнее отличить выстрел, сделанный прямо спереди, от выстрела, сделанного прямо сзади относительно вашего персонажа. Было также невозможно понять, сверху стрелял враг или снизу. Новая реализация плагина HRTF решает обе проблемы.
Что же такое HRTF в играх?
Итак, наверняка почти все слышали, что для позиционирования источников звука в виртуальном 3D пространстве используются HRTF функции. Ну что же, попробуем разобраться в том, что такое HRTF и действительно ли их использование так эффективно.
Сколько раз происходило следующее: команда разработчиков, отвечающая за звук, только что закончила встраивание 3D звукового движка на базе HRTF в новейшую игру; все комфортно расселись, готовясь услышать «звук окружающий вас со всех сторон» и «свист пуль над вашей головой»; запускается демо версия игры и… и ничего подобного вы просто не слышите!
HRTF (Head Related Transfer Function) это процесс, посредством которого наши два уха определяют слышимое местоположение источника звука; наши голова и туловище являются в некоторой степени препятствием, задерживающим и фильтрующим звук, поэтому ухо, скрытое от источника звука головой воспринимает измененные звуковые сигналы, которые при «декодировании» мозгом интерпретируются соответствующим образом для определения местоположения источника звука. Звук, улавливаемый нашим ухом, создает давление на барабанную перепонку. Для определения создаваемого звукового давления необходимо определить характеристику импульса сигнала от источника звука, попадающего на барабанную перепонку, т.е. силу, с которой звуковая волна от источника звука воздействует на барабанную перепонку. Эту зависимость называют Head Related Impulse Response (HRIR), а ее интегральное преобразование по Фурье называется HRTF.
Напомним, что интегральным преобразованием Фурье функции HRIR является HRTF функция. Если известно значение HRTF для каждого уха, мы можем точно синтезировать бинауральные сигналы от монофонического источника звука (monaural sound source). Соответственно, для разного положения головы относительно источника звука задействуются разные HRTF фильтры. Библиотека HRTF фильтров создается в результате лабораторных измерений, производимых с использованием манекена, носящего название KEMAR (Knowles Electronics Manikin for Auditory Research, т.е. манекен Knowles Electronics для слуховых исследований) или с помощью специального «цифрового уха» (digital ear), разработанного в лаборатории Sensaura, располагаемого на голове манекена. Понятно, что измеряется именно HRIR, а значение HRTF получается путем преобразования Фурье. На голове манекена располагаются микрофоны, закрепленные в его ушах. Звуки воспроизводятся через акустические колонки, расположенные вокруг манекена и происходит запись того, что слышит каждое «ухо».

HRTF представляет собой необычайно сложную функцию с четырьмя переменными: три пространственных координаты и частота. При использовании сферических координат для определения расстояния до источников звука больших, чем один метр, считается, что источники звука находятся в дальнем поле (far field) и значение HRTF уменьшается обратно пропорционально расстоянию. Большинство измерений HRTF производится именно в дальнем поле, что существенным образом упрощает HRTF до функции азимута (azimuth), высоты (elevation) и частоты (frequency), т.е. происходит упрощение, за счет избавления от четвертой переменной. Затем при записи используются полученные значения измерений и в результате, при проигрывании звук (например, оркестра) воспроизводится с таким же пространственным расположением, как и при естественном прослушивании. Техника HRTF используется уже несколько десятков лет для обеспечения высокого качества стерео записей. Лучшие результаты получаются при прослушивании записей одним слушателем в наушниках.
Наушники, конечно, упрощают решение проблемы доставки одного звука к одному уху и другого звука к другому уху. Тем не менее, использование наушников имеет и недостатки. Например:
- Многие люди просто не любят использовать наушники. Даже легкие беспроводные наушники могут быть обременительны. Наушники, обеспечивающие наилучшую акустику, могут быть чрезвычайно неудобными при длительном прослушивании.
- Наушники могут иметь провалы и пики в своих частотных характеристиках, которые соответствуют характеристикам ушной раковины. Если такого соответствия нет, то восприятие звука, источник которого находится в вертикальной плоскости, может быть ухудшено. Иначе говоря, мы будем слышать преимущественно только звук, источники которого находится в горизонтальной плоскости.
- При прослушивании в наушниках, создается ощущение, что источник звука находится очень близко. И действительно, физический источник звука находится очень близко к уху, поэтому необходимая компенсация для избавления от акустических сигналов влияющих на определение местоположения физических источников звука зависит от расположения самих наушников.
Использование акустических колонок позволяет обойти большинство из этих проблем, но при этом не совсем понятно, как можно использовать колонки для воспроизведения бинаурального звука (т.е. звука, предназначенного для прослушивания в наушниках, когда часть сигнала предназначена для одного уха, а другая часть для другого уха). Как только мы подключим вместо наушников колонки, наше правое ухо начнет слышать не только звук, предназначенный для него, но и часть звука, предназначенную для левого уха. Одним из решений такой проблемы является использование техники cross-talk-cancelled stereo или transaural stereo, чаще называемой просто алгоритм crosstalk cancellation (для краткости CC).

Идея CC просто выражается в терминах частот. На схемы выше сигналы S1 и S2 воспроизводятся колонками. Сигнал Y1 достигающий левого уха представляет собой смесь из S1 и «crosstalk» (части) сигнала S2. Чтобы быть более точными, Y1=H11 S1 + H12 S2, где H11 является HRTF между левой колонкой и левым ухом, а H12 это HRTF между правой колонкой и левым ухом. Аналогично Y2=H21 S1 + H22 S2. Если мы решим использовать наушники, то мы явно будем знать искомые сигналы Y1 и Y2 воспринимаемые ушами. Проблема в том, что необходимо правильно определить сигналы S1 и S2, чтобы получить искомый результат. Математически для этого просто надо обратить уравнение:

На практике, обратное преобразование матрицы не является тривиальной задачей.
- При очень низкой частоте звука, все функции HRTF одинаковы и поэтому матрица является вырожденной, т.е. матрицей с нулевым детерминантом (это единственная помеха для тривиального обращения любой квадратной матрицы). На западе такие матрицы называют сингулярными. (К счастью, в среде отражающей звук, т.е. где присутствует реверберация, низкочастотная информация не являются важной для определения местоположения источника звука).
- Точное решение стремиться к результату с очень длинными импульсными характеристиками. Эта проблема становится все более и более сложной, если в дальнейшем искомый источник звука располагается вне линии между двумя колонками, т.е. так называемый фантомный источник звука.
- Результат будет зависеть от того, где находится слушатель по отношению к колонкам. Правильное восприятие звучания достигается только в районе так называемого «sweet spot», предполагаемого месторасположения слушателя при обращении уравнения. Поэтому, то, как мы слышим звук, зависит не только от того, как была сделана запись, но и от того, из какого места между колонками мы слушаем звук.
При грамотном использовании алгоритмов CC получаются весьма хорошие результаты, обеспечивающие воспроизведение звука, источники которого расположены в вертикальной и горизонтальной плоскости. Фантомный источник звука может располагаться далеко вне пределов линейного сегмента между двумя колонками.
Давно известно, что для создания убедительного 3D звучания достаточно двух звуковых каналов. Главное это воссоздать давление звука на барабанные перепонки в левом и правом ушах таким же, как если бы слушатель находился в реальной звуковой среде.
Из-за того, что расчет HRTF функций сложная задача, во многих системах пространственного звука (spatial audio systems) разработчики полагаются на использование данных, полученных экспериментальным путем, например, данные получаются с помощью KEMAR, о чем мы писали выше. Тем не менее, основной причиной использования HRTF является желание воспроизвести эффект elevation (звук в вертикальной плоскости), наряду с азимутальными звуковыми эффектами. При этом восприятие звуковых сигналов, источники которых расположены в вертикальной плоскости, чрезвычайно чувствительно к особенностям каждого конкретного слушателя. В результате сложились четыре различных метода расчета HRTF:
- Использование компромиссных, стандартных HRTF функций. Такой метод обеспечивает посредственные результаты при воспроизведении эффектов elevation для некоторого процента слушателей, но это самый распространенный метод в недорогих системах. На сегодня, ни IEEE, ни ACM, ни AES не определили стандарт на HRTF, но похоже, что компании типа Microsoft и Intel создадут стандарт де-факто.
- Использование одного типа HRTF функций из набора стандартных функций. В этом случае необходимо определить HRTF для небольшого числа людей, которые представляют все различные типы слушателей, и предоставить пользователю простой способ выбрать именно тот набор HRTF функций, который наилучшим образом соответствует ему (имеются в виду рост, форма головы, расположение ушей и т.д.). Несмотря на то, что такой метод предложен, пока никаких стандартных наборов HRTF функций не существует.
- Использование индивидуализированных HRTF функций. В этом случае необходимо производить определение HRTF исходя из параметров конкретного слушателя, что само по себе сложная и требующая массы времени процедура. Тем не менее, эта процедура обеспечивает наилучшие результаты.
- Использование метода моделирования параметров определяющих HRTF, которые могут быть адаптированы к каждому конкретному слушателю. Именно этот метод сейчас применяется повсеместно в технологиях 3D звука.
На практике существуют некоторые проблемы, связанные с созданием базы HRTF функций при помощи манекена. Результат будет соответствовать ожиданиям, если манекен и слушатель имеют головы одинакового размера и формы, а также ушные раковины одинакового размера и формы. Только при этих условиях можно корректно воссоздать эффект звучания в вертикальной плоскости и гарантировать правильное определение местоположения источников звука в пространстве. Записи, сделанные с использованием HRTF называются binaural recordings, и они обеспечивают высококачественный 3D звук. Слушать такие записи надо в наушниках, причем желательно в специальных наушниках. Компакт диски с такими записями стоят существенно дороже стандартных музыкальных CD. Чтобы корректно воспроизводить такие записи через колонки необходимо дополнительно использовать технику CC. Но главный недостаток подобного метода — это отсутствие интерактивности. Без дополнительных механизмов, отслеживающих положение головы пользователя, обеспечить интерактивность при использовании HRTF нельзя. Бытует даже поговорка, что использовать HRTF для интерактивного 3D звука, это все равно, что использовать ложку вместо отвертки: инструмент не соответствует задаче.
По признанию самих разработчиков, ранее очень трудно было понять, откуда доносятся выстрелы — позиционирование по вертикали и горизонтали почти не работало. Для иллюстрации изменений в блоге доступны видео:
Стрельба на равной высоте до изменений и после
Стрельба на равной высоте после изменений
Стрельба снизу до изменений и после
После выхода обновления некоторые пользователи пожаловались на ухудшение качества звука. Разработчики пообещали прислушиваться к отзывам и продолжать вносить изменения в звуковую систему игры. Отдельно они отметили, что в будущем у игроков появится возможность более детально кастомизировать аудионастройки.
Видео