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

c1_sentry_loader_in
{
minDistance 10
maxDistance 25
no_occlusion
volume 3
sound/movers/comm1/sentry_loader_in.wav
}
--------------------------------------------
minDistance\maxDistance дальность радиуса, где звук затухает. Звука на максимальной громкости внутри
minDistance Радиус, и полное молчание после
maxDistance Максимальная дальность
no_occlusion приказывает двигателю не принимать геометрию уровня, чтобы при расчете объем громкости является
объем внутри внутренного радиуса звучания. Последняя строка устанавливает фактически звуковой файл для
воспроизведения.
Давайте взглянем на еще один:

emetal_impacts
{
minDistance 5
maxDistance 45
volume 5
no_dups
sound/impact/ambient_impacts/emetal_01.wav
sound/impact/ambient_impacts/emetal_02.wav
sound/impact/ambient_impacts/emetal_03.wav
sound/impact/ambient_impacts/emetal_04.wav
sound/impact/ambient_impacts/emetal_05.wav
}

Двигатель будет случайным образом выбирать одну с мелодий которую надо играть. Квар s_maxSoundsPerShader
ограничивает максимальное число звуков, которые могут быть у шейдере. Если установлено на 0 (без ограничений)
для высокопроизводительных систем и 1 для сетей низкого конца (что означает, что всегда будет играть в первый
звук в списке).

НазваниеОписание
minSamples <int>Замена s_maxSoundsPerShader
description <string>Краткое сообщение с описанием звука
minDistance <float>Ближайший радиус получения звука перед его представлением в полном объеме
maxDistance <float>Дальнейший радиус получения звука перед его затуханием
shakes [float]Shake экран,дает возможность установить момент звучания звука когда этот звук играет.
volume Максимальный объем для этого звука (объем внутри minDistance)
leadinVolume Объем leadin звука (используется, чтобы свет leadin звука гораздо громче, чем сломанной петли)
mask_centerСлушать через центральный канал
mask_leftИгра через левый канал
mask_rightИгра через правый канал
mask_backleftИгра через левый задний канал
mask_backrightИгра через правый задний канал
mask_lfeИгра через низкие частоты канала (subwoofer)
soundClass <int>ЗвукОВЫЕ классы используются для удаления большинства звуков внутри синематика.
altSound <sound>Используется для сопряжения конкретных сломанных звуковых светов с нормальным звуком света
no_dupsНе играйть в тот же звук дважды подряд
no_flicker Всегда возвращаеться 1.0 по объему запросов
looping Повторение звука постоянно
no_occlusion Нет потока через порталы, использовать только прямой поток
privateТолько играет на текущого слушателя
globalСлушать в полном объеме для всех ораторов и всех слушателей
unclamped Не зажим расчетных значений на 1.0
omnidirectional Fall с расстоянием, но играть в том же объеме всех ораторов
leadin <file> Звуковой файл для использования ввода в систему, чтобы цикл звука не прерырывался
Если ни один канал маски не установлено,то по умолчанию будет играть по всем каналам. Звуковые файлы
действительно находят 1 или 2 канала, 16 бит, OGG или WAV файлы на 11025, 22050 или 44100 Гц.