Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Движок, который учитывает геометрию сцены и материалы объектов? (2 стр)

Движок, который учитывает геометрию сцены и материалы объектов? (2 стр)

Поделиться
Advanced: Тема повышенной сложности или важная.

Страницы: 1 2

ZabПостоялецwww20 сен. 201514:14#15
Можно сделать игру в виде плагина к 3DSmax ;) Уверен, autodesc возражать не будет, ибо это заставит каждого игрока 3dsmax купить, а он не дешев.
Odin P. MorganПостоялецwww14 сен. 20169:18#16
И так, сейчас проектирование звука (да-да, с рендером я уже разобрался), для меня задача прирогативная.
Вот, что я понял:
1. Работать только с импульсами. Грубо говоря есть набор материалов: дерево, метал и т.д. При помощи пьезоэлемента, записываем звук проходящий через материал на основании чего формируем импульс. Импульс - это информация о прохождении/искажении звука в определённых условиях.
2. Звук отлично распространять в пространстве методом Radiosity, с учётом скорости звука в воздухе. (тут вам наличие источника звука, и вносимые материалами искажения в звук, и переотражения звука - самое главное работать может в реал-тайм, полёт звука, не полёт света считать)
3. Импульс материала, должен быть привязан к материалу поверхности естессно, волна из нашего излучателя ударяясь о поверхность перенимает частотные искажения и летит дальше. (То-же самое, когда излучения света частично поглощаются материалом, и отражаясь дают свечение определенного спектра).
Ну естессно - это мегакруто. И ещё надо учесть, для полной достоверности, воздух как среда не стерилен, в нём есть пыль, соответственно распространение звука происходит чуть быстрее и немного неоднородно.
romgermanПостоялецwww14 сен. 201610:01#17
Odin P. Morgan
> Работать только с импульсами
Кстати да, не знаю насколько это затратно. Читай про convolution (свертку), convolution reverb.
Odin P. MorganПостоялецwww14 сен. 201611:39#18
Кстати да, не знаю насколько это затратно

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

Страницы: 1 2

/ Форум / Программирование игр / Звук

2001—2017 © GameDev.ru — Разработка игр