Звук
Наряду с графической составляющей, звук является очень важной частью технологий реального времени. Звук - это ключевой аспект для создания правильного ощущения погружения в виртуальный мир. Это дает пользователю слышимые характеристики окружающей среды и позволяет различать места. Конечно даже простой двухмерный окружающий звук может создать общую атмосферу, однако, его все же недостаточно для передачи динамично меняющейся среды. При использовании же трехмерных звуковых эффектов слушатель может подсознательно оценить расстояние до источника звука и определить его местоположение, таким образом, воспринимая сцену в пределах досягаемости. Более того, UNIGINE поддерживает практически неограниченное количество источников звука. Вы можете позволить всему океану звуковых волн говорить о реальности, созданной рукой художника.
Существует огромный потенциал для использования звука. Звук может служить для подчеркивания определенных архитектурных особенностей. Например, перекатывающееся эхо заставляет нас почувствовать, что сцена будет происходить под высоким куполом. Мягкое постукивание камня, задетого неосторожной ногой, или проносящийся с молниеносной скоростью автомобиль - все это можно смоделировать звуком. UNIGINE позволяет назначить звук, который будет воспроизводиться при контакте с объектами, имитируя их физические свойства на уровне звука. Для движущихся источников, таких как автомобиль, применяется эффект Доплера, чтобы достоверно имитировать движение источника звука относительно слушателя. Все эти изменения в звуковой среде предоставляют мозгу более конкретную информацию о том, в каком направлении и как именно движутся объекты. С помощью звука можно не только построить сцену в голове, но и ощутить ее.
Выразительность и качество аудиоматериала существенно улучшают виртуальный мир, поэтому вполне логично, что разработчики, как и создатели фильмов, хотят иметь полный контроль над этим инструментом, который они используют в своей работе. UNIGINE предоставляет следующие объекты для позиционирования звука в 3D-среде:
- Sound Source представляет собой направленный или всенаправленный источник звука.
- Sound Reverb представляет зону реверберации.
3D-эффекты можно создавать как на обычной системе из дкух колонок, так и на многоканальных аудиосистемах.
Загрузка аудио#
Первый вопрос, который возникает при добавлении аудиоматериала в проект, - как будут загружаться звуки, если они не синтезируются на лету. По сути, есть два способа загрузить звуки в игру:
- Звуки можно загружать из файлов целиком. Это более традиционный подход, в результате которого все необходимые аудиоресурсы всегда под рукой, без задержек при загрузке. Но он подходит только для коротких звуков, потому что требует большего потребления памяти, чем второй подход.
- Звуки могут передаваться в потоковом режиме из некоторого источника, например, с удаленного компьютера. В этом случае аудиоданные считываются по частям в специальный буфер, из которого они воспроизводятся пользователю. Во время воспроизведения буфер постепенно обновляется. Хотя такой подход ужесточает требования к пропускной способности диска или увеличивает общую загрузку сети, он является наиболее подходящим решением для длинных треков.
UNIGINE поддерживает следующие форматы звуковых файлов:
- WAV (моно и стерео)
- Ogg Vorbis (oga, Ogg Audio Profile)
- MP3
Аудио API#
UNIGINE совместим со звуковыми картами производства Creative Labs которые предоставляют технологию с использованием своих расширений звукового окружения (EAX). EAX представляет собой ряд предустановок для звука, которые позволяют имитировать звуковую среду быстрее и точнее. С его помощью звукорежиссер может описать среду, источники и слушателя с множеством параметров либо с помощью предустановок, либо путем создания собственных предустановок. Когда среда изменяется, предустановки также изменяются, и для выполнения плавного перехода их сохраненные значения интерполируются.
Для управления этими параметрами и предустановками, а также для выполнения всех необходимых вычислений, таких как затухание расстояния, эффект Доплера и т.д., Используется следующий API: OpenAL, кроссплатформенная библиотека 3D-аудио с открытым исходным кодом. Он также поддерживает аудиотехнологии, отличные от EAX.