EAX 2.0 функции, которые имеют ограниченную или отсутствующую реализацию в Wine:
Полностью или частично отсутствующие:
EAX2_LISTENERPROPERTIES - расширенные параметры слушателя:lRoom / lRoomHF - точная калибровка помещений
lReflections / lReflectionsDelay - продвинутые отражения
EAX2_BUFFERPROPERTIES - свойства буфера:
lDirect / lDirectHF - прямое распространение
lRoom / lRoomHF - для отдельных буферов
lObstruction / lExclusion - сложная окклюзия
Динамическое изменение окружения:
Плавные переходы между environment пресетами
Реальное время обновления сложных параметров
Ограниченно реализованные:
Точная окклюзия (Occlusion):
c
// EAX 2.0 occlusion модели
EAX2_OCCLUSION_DIRECT
EAX2_OCCLUSION_DIRECTHF
EAX2_OCCLUSION_ROOM
EAX2_OCCLUSION_ROOMHF
Обструкция (Obstruction):
Частичное блокирование звука препятствиями
Разные коэффициенты для низких/высоких частот
Продвинутая диффузия:
flEnvironmentDiffusion - не все значения корректно обрабатываются
Динамическое изменение рассеивания
Проблемные области:
Точная временная синхронизация:
Задержки отражений (flReflectionsDelay)
Задержки реверберации (flReverbDelay)
Частотная фильтрация:
Точное разделение HF/LF обработки
Кастомные фильтры для разных материалов
Пример неподдерживаемых функций:
c
// Эти свойства могут работать некорректно в Wine
EAX2_BUFFERPROPERTIES bufferProps = {
.lDirect = 0, // Может игнорироваться
.lDirectHF = -200, // Ограниченная поддержка
.lRoom = -1000, // Базовая поддержка
.lRoomHF = -100, // Частичная поддержка
.lObstruction = -300, // Часто не работает
.lObstructionLFRatio = 0.0f, // Редко поддерживается
.lOcclusion = -500, // Ограниченная реализация
.lOcclusionLFRatio = 0.25f, // Может игнорироваться
.lExclusion = 0 // Обычно не реализовано
};
Проверка текущего статуса:
Вы можете посмотреть актуальный статус в исходном коде Wine:
bash
grep -r "EAX2_" dlls/openal32/ | grep -i "not.implemented\|TODO\|FIXME"
Большинство базовых функций EAX 2.0 работают, но продвинутые features, особенно связанные с точной физикой звука и сложной окклюзией, часто эмулируются не полностью или используют упрощённые алгоритмы.