Поддерживает ли iOS OpenAL направленный звук или только позиционный звук? - PullRequest
1 голос
/ 02 октября 2010

Для приложения 3D iPad, которое я пишу, я хочу, чтобы звук увеличивался / уменьшался по мере того, как один виртуальный слушатель поворачивается в направлении / от источников звука.Слушатель всегда неподвижен.Слушатель может только вращаться.Звуки всегда неподвижны.Звуки заполняют сферу направлений вокруг пользователя.Все звуки находятся на одинаковом расстоянии от слушателя.

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

Сколько из того, что я описываю, может быть обработано OpenAL и сколько мне нужно написать самому?1007 * Даг

1 Ответ

3 голосов
/ 03 октября 2010

Да, вы можете сделать это в OpenAL. На самом деле вы можете сделать лучше! С точечным произведением вы просто получите полную громкость, когда они параллельны, и ноль, когда они перпендикулярны, используя OpenAL, вы можете определить звуковой конус, исходящий из вашего источника.

В источнике вам нужно установить значение AL_CONE_INNER_ANGLE меньше, чем AL_CONE_OUTER_ANGLE, чтобы вы получили полный объем в пределах угла внутреннего конуса, и он уменьшается до нуля вне угла внешнего конуса. Вам также необходимо установить AL_DIRECTION, конечно.

Прошло много времени, и я не уверен, что вы можете установить конус / направление слушателя, но это на самом деле не имеет значения, так как все ваши объекты в любом случае статичны, вы можете просто повернуть направление источников вместо этого, чтобы смоделировать это: D

...