Показать сообщение отдельно
Старый 28.12.2011, 11:09   #30
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Russian Sound System

А отдельно для звуков учёт геометрии, бросание луча - блитз потянет?
Потянет. LinePick достаточно быстро работает. Но нужно еще и для общего случая написать учет геометрии. Думаю нужно в двиг передавать массив вершин и массив индексов этих вершин. Строить для них Octree затем найти тот узел где находится слушатель и проверить пересечение луча с треугольниками в этом узле. В принципе не сложно. Благо с Octree уже работал. И математику неплохо знаю.

UPD
узел где находится слушатель и проверить пересечение луча с треугольниками в этом узле
Не, не так. Выделить все узлы лежащие на пути от слушателя до звука. И проверить пересечение луча от звука до слушателя с геометрией этих узлов. Самый лучший случай это, когда препятствие вообще существует.

Можно обойтись и без Octree, но думаю, при большом количестве звуков и сложной геометрии, производительность будет страдать.
__________________

(Offline)
 
Ответить с цитированием