Показать сообщение отдельно
Старый 11.03.2014, 02:41   #85
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: Russian Sound System

Почти уверен, что чел, делающий GSound, понятия не имел обо всём этом что в книге.
Можно использовать как справочник.

К тому же сначала нужно попробовать очевидные методы.
Например как можно посчитать реверберацию:
* кидаем лучи от источника звука, к каждому центру триса геометрии;
* кидаем лучи от слушателя к каждому центру триса геометрии;
* если лучи проходят и если оба луча не обратны нормали триса значит отражённый звук прошел;
* чтобы посчитать его громкость нужно взять коэффициент отражения и умножить на площадь триса и на косинусы углов лучей к нормали;
* чтобы посчитать задержку нужно сложить длины двух лучей;

В целом такой алгоритм вроде должен работать, при условии что размеры трисов несколько меньше чем длины лучей и размеров препятствий;
В случае больших трисов будут проблемы:
* например препятствие загораживает только центр триса, однако он сам такой большой что звук должен проходить - тут нужно кидать дополнительные лучи (рэндомно или по краям триса);
* если слушатель и источник находятся рядом друг к другу и близко к очень большому трису, например длинной стене, понятно что отражаться будет только от той части триса которая рядом, а не от всего триса;

Так что в таких случаях придется искать другие алгоритмы или тесселировать геометрию.

ЗЫЖ готовлю демку, пока в ней ничего нового по части звука нет - будет проверяться просто работоспособность моего игрового движка и интеграции звука в него (с игровым куда больше проблем чем со звуковым).
(Offline)
 
Ответить с цитированием