Технология создания 3D звука

         

Оcclusions



Оcclusions

Технология ЕАX и ее модель реверберации будет рассмотрена чуть ниже более подробно. А сейчас хотелось бы остановиться на эффектах окклюзии (occlusion — преграждение), возникающих при прохождении звука через препятствие. В принципе, это можно реализовать с помощью банального уменьшения громкости звука, но более реалистично Оcclusion (да и другие эффекты) реализуется с помощью НЧ-фильтра (low pass, низкочастотного).

В большинстве случаев достаточно одного типа окклюзии — звук находиться за «глухой» преградой. При этом, direct path составляющая звука будет заглушена и степень фильтрации определяется геометрическими параметрами (толщиной) и материалом, из которого сделана стенка. Так как прямого контакта источника и слушателя нет (они находятся в разных комнатах), то по этому же принципу заглушается эхо от источника.

Для достижения максимальной реалистичности разработчики звукового API из Creative вводят понятие Obstruction (помеха, препятствие). В прямом переводе с английского означает практически то же самое что и Оcclusions, но с такими дополнениями: direct path составляющая заглушается — прямого контакта со слушателем нет, но так как звук и источник находятся в одной комнате, поздние отражения (Late Reflections) не заглушаются и попадают к слушателю в неизменном виде.

И еще один тип — Exclusions (Исключение). Источник и слушатель находятся в разных комнатах, но между ними есть прямая видимость, и, как следствие, direct path полностью попадает к слушателю а вот отраженный звук пройдет через проем в стене не весь и исказится (опять-таки в зависимости от толщины, формы и свойств материала).

В любом случае,  как бы вы не реализовывали эти эффекты (с помощью Aureal A3D, Creative Labs EAX или просто вручную на собственном звуковом движке) — все равно придется трассировать геометрию (всю или только звуковую) на предмет установления прямой видимости с источником звука. А это достаточно сильный удар по производительности. Вот и получается, что почти всегда (если говорить о шутерах, 3D РПГ или любых других подобных играх, пытающихся внести максимальный реализм в звуке) надо строить упрощенную геометрию для звука. К счастью, такая геометрия строиться (почти всегда) для подсчета collision для игрока — опять таки, чтобы не трассировать всю геометрию вокруг игрока в помещении. Поэтому, достаточно сделать эту же геометрию чуть более детально для звука. Конечно же, есть и другие способы, но оставим их на совести программистов игровых движков.



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