аудио — Использование DirectSound или XAudio2 с EAX

Есть ли пример / учебное пособие / ресурс по использованию EAX с DirectSound или XAudio2 в C ++? Я не могу ничего найти, и мне действительно нужно это для моего игрового движка.

0

Решение

Прежде всего, DirectSound является древним на данный момент. Он по-прежнему поддерживается для более старых игр, а заголовки DirectSound 8 находятся в Windows SDK, но за последние десять лет не было образцов или обновлений для них.

Однако модель аудио драйвера Windows (WDM) не поддерживает аппаратное микширование звука, подобное тому, которое требуется для Creative EAX. Поддержка этого была удалена с Windows Vista, поэтому EAX нельзя использовать ни через DirectSound, ни через XAudio2.

Чтобы подвести итог изменения модели драйвера Windows Vista с w.r.t на DirectSound:

  • LOC_SOFTWARE буферы могут поддерживать многоканальные форматы объемного звука. В Windows XP поддерживаются только моно или стерео LOC_SOFTWARE,

  • LOC_HARDWARE буферы не поддерживаются.

  • Эффекты (I3DL, EAX и т. Д.) Не поддерживаются через DirectSound.

  • 3D-позиционирование DirectSound ограничено монофоническими звуками.

XAudio2 поддерживает реверберацию окружающей среды и позиционирование 3D-звука, включая многоканальные источники, все это сделано программно

XAudio 2.8 находится в Windows SDK, хотя вам нужно использовать устаревший DirectX SDK для XAudio 2.7 для Windows 7 или Windows Vista — см. эта почта для деталей. Образцы можно найти на GitHub. Набор инструментов DirectX для аудио очень полезная абстракция для использования XAudio2 из C ++.

Чтобы получить аппаратный доступ к таким функциям, как EAX, вы должны использовать стороннее решение, такое как OpenAL. Увидеть Креативный сайт для большего.

0

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

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

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