forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Russian Sound System (http://forum.boolean.name/showthread.php?t=15687)

mr.DIMAS 25.10.2011 18:57

Ответ: Russian Sound System
 
Понято. Начинаю делать.

mr.DIMAS 25.10.2011 21:43

Ответ: Russian Sound System
 
Вложений: 2
Демка №2

Что нового?

1) Добавлена загрузка ogg
2) Прикрутил еще несколько эффектов
3) Обновленная сцена
4) Исправлены баги с EnvironmentAABB
5) В лог выводится больше инфы

Что еще делается?

1) Потоковое воспроизведение.

Почему так долго делаешь?

Универ съедает все свободное время.

Вопрос

Как получить направление взгляда из матрицы камеры?

HolyDel 25.10.2011 23:19

Ответ: Russian Sound System
 
скопировать матрицу
в скопированной матрице занулить вектор перемещения
трансформировать скопированной матрицей вектор 0,0,1.

или не?

mr.DIMAS 25.10.2011 23:36

Мне нужно получить вектор взгляда и перпендикулярный ему вектор up. Это для правильного восприятия звука слушателем - в OpenAL есть такая плюшка - звук сзади звучит приглушеннее, чем спереди. Вот мне и нужно узнать эти векторы из блицевской матрицы. Я получу ее элементы через bbGetMatElement. Заполню матрицу. Что дальше?

Народ! Ну подскажите! А то разработка стоит

impersonalis 26.10.2011 23:17

Ответ: Russian Sound System
 
http://yandex.ru/yandsearch?clid=958...Element&lr=213
может найдёшь нужное, к сожалению, сам практически не работал с сабжем

mr.DIMAS 25.12.2011 15:44

Ответ: Russian Sound System
 
Вложений: 2
Всем привет!

%Username%: Почему ты так долго не писал? Универ.

Докладываю о проделанной работе.

1) Исправил просто уйму багов. Один фатальный из-за которого звуки не правильно позиционировались( вы наверное заметили в предыдущих демках - что когда ходишь звук не пойми откуда идет )
2) Добавил еще 10 пресетов
3) Начал писать документацию
4) Самое главное: двиг теперь в отдельной длл'ке.

А теперь о том, что в архивах.

Developer.rar - собсно название говорит само за себя. Версия для разработчика. Вот ее то и нужно вам оттестировать( подключить к проекту, сделать двигающийся кубик( b3d sdk в помощь ) со звуком ).

Demo.rar - демка. "Лес", дом, ангар бетонный, и большая труба + птичьи голоса + Водка!:russian:

mr.DIMAS 25.12.2011 19:57

Ответ: Russian Sound System
 
Стоит ли делать враппер под Б3Д?

HolyDel 26.12.2011 00:59

Ответ: Russian Sound System
 
все работает. респект. бзд умеет звук играть сам, зачем еще?

mr.DIMAS 26.12.2011 01:39

В Б3Д звук куцый. Впрочем нужно еще сам движок дорабатывать, прежде чем враппер писать.

Какова вероятность загнать этот двиг за бабло буржую?

mr.DIMAS 27.12.2011 21:45

Ответ: Russian Sound System
 
Народ - это не дело. Качайте и тестируйте! Я же стараюсь и пишу юзабельную библу, а не очередной "SuperMegaGraphicsEngine100D".

зы. Перенесите тему в раздел "Проекты на C++" - ведь это уже вполне юзабельная библа.

LLI.T.A.L.K.E.R. 27.12.2011 22:55

Ответ: Russian Sound System
 
Хорошо.
Заметил недочёт: рядом с ангаром бетонным, музыка на этом расстоянии далека - играет тихо. Но когда заходишь - в ангаре эхо (да это хорошо), но вот громкость далёкой музыки увеличивается (будто уже внутри ангара играет).

Графика B3D? Думал неужели летает на нетбуке, вроде деревца есть.. Но как только ушёл на край карты и посмотрел на всё её пространство - становится заметен слайдшоу..
Ну блин у меня FIFA07 и JamesBond Night Fire летает.. Что за проблемы с оторбажением количества вертексов????

А b3d wrapper стоит сделать, если не очень сложно.

Послушал предыдущую демку. Звук намного лучше чем у самого b3d. Да и 3Д-окружение у меня не работало с обычным способом (тупо: либо громко до 5 метров, либо дальше очень тихо)

mr.DIMAS 27.12.2011 23:43

Ответ: Russian Sound System
 
Цитата:


Графика B3D? Думал неужели летает на нетбуке, вроде деревца есть.. Но как только ушёл на край карты и посмотрел на всё её пространство - становится заметен слайдшоу..
Ну блин у меня FIFA07 и JamesBond Night Fire летает.. Что за проблемы с оторбажением количества вертексов????

А b3d wrapper стоит сделать, если не очень сложно.

Это из-за того что я загрузил уровень как аним-меш. Чтобы все EAABB найти и настроить.

Враппер сделать просто. На новогодних каникулах займусь.

Цитата:

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

Цитата:

Да и 3Д-окружение у меня не работало с обычным способом (тупо: либо громко до 5 метров, либо дальше очень тихо)
Поясни. Не понял о чем ты.

mr.DIMAS 27.12.2011 23:52

Ответ: Russian Sound System
 
Насчет учета геометрии уровня. Думаю сделать это простым "бросанием лучей". Смысл такой: проверяем пересечение луча с геометрией уровня( опять же математика ) т.е от звука к слушателю, если нашлась точка пересечения то:
1) Вычисляем расстояние от точки пересечения до слушателя. Пусть оно будет R
2) функцией setGain устанавливаем звуку усиление которое равно gain = clamp( user_gain - 1 / R ) , где user_gain усиление установленное пользователем, clamp функция обрезки по ( 0, 1 )

И так для всех звуков.

Можете посоветовать лучший закон изменения усиления?

UPD.
gain = clamp( user_gain - 1 / R ) не будет работать! gain = clamp( user_gain / R ) - это будет

LLI.T.A.L.K.E.R. 28.12.2011 03:49

Ответ: Russian Sound System
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 215475)
Поясни. Не понял о чем ты.

Встроенный Blitz 3Д-звук не устраивал. Будто эмуляция, близко - громкость выше, в дали - громкость уменьшается. Другие врапы не смотрел.

А отдельно для звуков учёт геометрии, бросание луча - блитз потянет?

mr.DIMAS 28.12.2011 11:09

Ответ: Russian Sound System
 
Цитата:

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

UPD
Цитата:

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

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


Часовой пояс GMT +4, время: 08:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot