аудио — OpenAL 2d панорамирование переполнения стека

Я пытаюсь понять, как получить openAL для панорамирования в 2D (манипулируя 3D-позиционированием). В идеале я хочу добиться панорамирования таким образом, чтобы левый или правый канал могли быть полностью задействованы, а другой канал — полностью бесшумным. Кажется, что Open AL прекрасно обрабатывает трехмерные расстояния и спады, но я изо всех сил пытаюсь эмулировать этот вид 2D панорамирования.

я использую

alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED)

float sourcePosition[3] = {0.99f,0.f,0.f};
alSourcefv(sourceID, AL_POSITION, sourcePosition);
alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_FALSE);
alSourcef(sourceID, AL_MAX_DISTANCE, 1.f);
alSourcef(sourceID, AL_REFERENCE_DISTANCE, 0.5f);

Однако в правом канале присутствует значительное количество звука. Я не хочу, чтобы усиление падало в зависимости от расстояния, а просто пропорционально каналам.

Можно ли эмулировать 2d панорамирование с открытым AL?

1

Решение

Вы захотите установить для AL_SOURCE_RELATIVE значение AL_TRUE, а не false.

AL_SOURCE_RELATIVE, установленный в AL_TRUE, указывает, что позиция,
скорость, конус и направление свойства источника должны быть
интерпретируется относительно позиции слушателя.

Так говорит Спецификация OpenAL 1.1 (стр. 34)!

Итак, смена

alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_FALSE);

в

alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_TRUE);

должен достичь желаемого результата.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]