 |
10.05.2013, 04:15
|
#61
|
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Russian Sound System
Описание функций бы, а то разбираться на разработке своего примера ''больше отталкивает''. А так хотелось бы для начала побаловаться, а потом уж и использовать.
Или выложи как-нибудь исходник примера блитз, каким бы он не был.
|
|
(Offline)
|
|
10.05.2013, 16:28
|
#62
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Запилил пример. Плюс поправил маленький баг. Все внутри. Исходник примера + бинарник + обновленная библа. Исходник с коментами. Все хорошо собирается в студии.
Пример показывает работу зон с разной реверберацией. И работу "препятствий". Соответственно "ZONE", "OBSTACLE"
http://rghost.ru/45893801
__________________
|
|
(Offline)
|
|
|
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
11.05.2013, 21:57
|
#63
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Для тех кому лень качать запилил видос.
__________________
|
|
(Offline)
|
|
|
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
11.05.2013, 22:11
|
#64
|
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Russian Sound System
прикольно, но обстакл имхо очень резкий, чуть высовываешься, и звук резко меняет громкость, плюс кажется будто звук идёт к слушателю по прямой линии, т.е. ты делаешь один рейкаст об обстакл.
|
|
(Offline)
|
|
12.05.2013, 21:08
|
#65
|
|
Мастер
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений (для 634 пользователей)
|
Ответ: 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)
|
|
13.05.2013, 00:26
|
#66
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Чую я, что надо запиливать wavetracing\raycasting. Все эти выкрутасы с AABB и просто BB ни к чему не приведут.
На гамедеве.нет мне один чувак кинул ссыль на свой университетский проект. http://gamma.cs.unc.edu/GSOUND/
__________________
|
|
(Offline)
|
|
|
Эти 3 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
19.05.2013, 14:19
|
#67
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
В общем. Я начал пилить движок.
За недельку запилил простенький DSP( digital signal processing, цифровая обработка сигналов ). Что поддерживается?
1) Вывод звука через directsound - просто вывод во вторичный буфер, без использования фич directsound'a.
2) Программное микширование.
3) Изменение частоты воспроизведения( pitching )
4) Загрузка ogg, wav.
5) Панорамирование ( баланс между левым и правым динамиком )
6) Изменение громкости
7) Фильтрация - перестраиваемый ФНЧ ( фильтр низких частот ) - программно регулируем частоту отсечки - от 50 Гц до 21000 Гц
Архитектура такова.
Звуковой буфер с PCM -> Звук 1 -> Микшер -> DirectSound
________________________...... ->
______________________Звук n ->
Кому интересно могу скинуть демку.
__________________
|
|
(Offline)
|
|
|
Сообщение было полезно следующим пользователям:
|
|
19.05.2013, 17:02
|
#68
|
|
Мастер
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений (для 634 пользователей)
|
Ответ: Russian Sound System
|
Кому интересно могу скинуть демку.
|
Да, давай я посмотрю.
|
|
(Offline)
|
|
19.05.2013, 17:08
|
#69
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
http://rghost.ru/46109904
исходник "движка" в комплекте. выпилил пока поддержку ogg
откомпиль сам, и сможешь поиграться с микшером и фильтрами и всем что есть кароч
__________________
|
|
(Offline)
|
|
|
Сообщение было полезно следующим пользователям:
|
|
21.05.2013, 02:47
|
#70
|
|
Мастер
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений (для 634 пользователей)
|
Ответ: Russian Sound System
Ну нормально работает, только я немного изменил чтобы на gcc скомпилировать. Хотя латентность большая, нажимаешь кнопку - ничего не происходит, а потом параметр сразу меняется на большое значение. А еще через некоторое время сбрасывается в дефолт.
Получается ты будешь все программно реализовывать? А нужно ли велосипед изобретать? Тем более аппаратное ускорение ( если оно доступно ) тоже важно. К тому же если будет привязка в dsound то как же переносимость? Мне кажется правильным решением будет работать поверх OpenAL, а специфические механизмы трассировки реализовать отдельным софтварным модулем ( с поддержкой simd можно ).
|
|
(Offline)
|
|
21.05.2013, 03:04
|
#71
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
|
Ну нормально работает, только я немного изменил чтобы на gcc скомпилировать. Хотя латентность большая, нажимаешь кнопку - ничего не происходит, а потом параметр сразу меняется на большое значение. А еще через некоторое время сбрасывается в дефолт.
|
Да такие проблемы были. Теперь все устранено. На кнопках [1]-[5] значения ФНЧ 50-500-5000-10000-15000 Гц. На стрелках баланс и скорость воспроизведения.
http://rghost.ru/46145531
|
Получается ты будешь все программно реализовывать? А нужно ли велосипед изобретать? Тем более аппаратное ускорение ( если оно доступно ) тоже важно. К тому же если будет привязка в dsound то как же переносимость? Мне кажется правильным решением будет работать поверх OpenAL, а специфические механизмы трассировки реализовать отдельным софтварным модулем ( с поддержкой simd можно ).
|
Да, буду делать программно с SIMD'ом. Аппаратное ускорение не так важно для звука, как для графона.
Привязки к dsound не будет. Для линукса будет свой SoundOutputDevice. Если не сложно - кинь пару статей по звуку в линуксе. Я только начал изучать программную обработку звука и не хочу останавливаться.
Насчет велосипеда. Такой велик очень большая редкость. Это не графический двиг, который пилит каждый кому не лень.
Работа поверх OAL дикий оверхед. Так что нет спасибо.
__________________
|
|
(Offline)
|
|
22.05.2013, 01:51
|
#72
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Все проблемы с DSP подчищены.
Запилил объемный звук ( то бишь 3Д!!!!111адинадин). Появился соответственно класс - слушатель( listener ). Демку планирую сделать к выходным. Но обещать не могу ибо - СЕССИЯ БЛИЗКО!
__________________
|
|
(Offline)
|
|
|
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
01.03.2014, 15:35
|
#73
|
|
Мастер
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений (для 634 пользователей)
|
Ответ: Russian Sound System
Попробовал интегрировать коды звукового движка в одно 3д приложение - не особо здорово.
Во первых неудобно то что mixSound нужно вызывать непрерывно, в то время как логично его обновлять каждую итерацию (например каждый кадр).
Во вторых через каждые полсекунды-секунду (видимо когда происходит обновление буфера) приложение застревает. Тоже не круто.
В общем то оба неудобство можно исправить если вынести звук в отдельный поток, но имхо лучше сначала найти способ более плавного кода без усложнения многопоточностью.
Есть кстати какие-нибудь наработки с последнего релиза?
|
|
(Offline)
|
|
01.03.2014, 17:12
|
#74
|
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Сообщение от Samodelkin
Попробовал интегрировать коды звукового движка в одно 3д приложение - не особо здорово.
Во первых неудобно то что mixSound нужно вызывать непрерывно, в то время как логично его обновлять каждую итерацию (например каждый кадр).
Во вторых через каждые полсекунды-секунду (видимо когда происходит обновление буфера) приложение застревает. Тоже не круто.
В общем то оба неудобство можно исправить если вынести звук в отдельный поток, но имхо лучше сначала найти способ более плавного кода без усложнения многопоточностью.
Есть кстати какие-нибудь наработки с последнего релиза?
|
Про эти косяки знаю. Движок не сдвинулся с места ни на сколько. И это печально.
__________________
|
|
(Offline)
|
|
|
Сообщение было полезно следующим пользователям:
|
|
01.03.2014, 17:27
|
#75
|
|
Мастер
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений (для 634 пользователей)
|
Ответ: Russian Sound System
Сообщение от mr.DIMAS
Про эти косяки знаю. Движок не сдвинулся с места ни на сколько. И это печально.
|
Ок.
Мне вообще самому интересно насчет возможностей софтварного звука.
Посмотрю чего тут можно сделать.
Есть например идея насчёт HDR звука.
|
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:56.
|