Показать сообщение отдельно
Старый 12.05.2013, 21:08   #65
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Russian Sound System

плюс кажется будто звук идёт к слушателю по прямой линии, т.е. ты делаешь один рейкаст об обстакл
Потому что это обстакл. Здесь и должен быть один проброс луча - от источника к слушателю. Если он проходит через препятствие, то в зависимости от материала, он либо проходит частично и звук заглушается ( обычно высокие частоты ), либо вообще не проходит. То что идет не по прямой от источкника к слушателю это уже эхо.

Возможно имеет место дифракция... Может быть ее можно реализовать таким способом: сделать 2 бокса, один внутри другого, если луч будет идти через угол и проходить только через внешний бокс значит имеет место дифракция.

Возможно автор уже читал, но вот пользователям движка может пригодиться http://www.ixbt.com/multimedia/sound...mes-2003.shtml. Несмотря на 2003 год видимо это до сих пор актуально ( может быть это из-за консолей ? ).

Другое дело что в демке действительно странный звук: такое ощущение что сначала срабатывает обстакл, громкость и ВЧ звука снижаются, и только затем к ним применяется эхо или реверберация. Вобщем почему-то эхо заметно приглушается вместе с обстаклом, а не должно. Ведь я так понял движок не настолько сложный, что может к сначала отраженному звуку еще и обстакл применять, для этого слишком много трассировок нужно.

По поводу зон: я правильно из контекста понимаю что тут именно AABB а не просто BB? Если это так, то данная реализация бесполезна. На открытых пространствах зоны применять негде, а вот для комнат они бы подошли - комнаты обычно действительно с прямыми углами, но далеко не всегда выровнены по мировым осям, так что однозначно нужны просто BB. Тоже самое относится к обстаклам, там даже можно сделать поддержку мешей. Разработчики игр могут использовать для обстакла теже упрощенные меши что делают для физики.

Софтварную реверберацию запилить не сложно. Но нужно ли? Creative же сделала эмуляцию EAX'a.
С точки зрения пользователя неважно реализована ли она на уровне движка или EAX, главное чтобы пользователь мог, подключив только ProjectF, использовать его на звуковых картах с аппаратной и без поддержки EAX. Лучше если будет единый код, который абстрагирован от технологий реализации. Например пользователь задает параметры эха и реверберации для зоны, материалов для обстакла и т п, а движок уже сам решает как и с помощью чего это воспроизвести, да возможо на софтваре будет хуже качество или не будет каких то эффектов, но пользовательский код от этого не изменится.

mr.DIMAS, по хедеру могу заметить что у тебя весьма хороший стиль форматирования кода, читается легко, чем то напоминает мне конвенцию кодирования idSoftware. Я тоже эту конвенцию ( немного модифицированную ) использую.
(Offline)
 
Ответить с цитированием