#1051
18 мая 2012 в 18:09
директ саунд лучше убить к чертям, тк надстраивать над ним директ саунд 3д не смысла (максимум будет работать на хр)<br />а держать две ветки кода это слишком напряжно
#1052
21 мая 2012 в 05:46
Реализовал базовый функционал OpenAL.<br />Бинарник с исходниками качайте отсюда.<br /><br />Все свои злодеяния в исходниках отмечал комментарием //ViLE.<br />Естественно, код DirectSound не удалял, просто закомментировал.<br /><br />Новые исходники: oal_core.h, oal_core.cpp.<br /><br />Проект компилировал под Visual C++ 2010 Express Edition (VC2010EE).<br />Для этого создал отдельную папку vc2010.<br />С этой студией возникла одна неприятность после которой пришлось совершить преступление века -<br />порезать main.cpp на несколько кусков (main1.h, main2.h, main3.h). Без этого невозможно было<br />проводить отладку. Видать ограничение на кол-во строк в одном файле.<br /><br />В оригинальный проект (berserker.vcproj) вручную добавил ссылки на новые файлы - извините,<br />студией 2008 не пользуюсь :)<br /><br />Так же пришлось хакнуть библиотеки ogg/vorbis, ибо в отладочной версии<br />линковщик матерился на повтроное определение символов из libcmt.lib.<br />Хакнутые библиотеки поместил в папку vc2010/ogg и добавил к названию _d<br />(ogg_static_d.lib, vorbisfile_static_d.lib).<br /><br />Добавил 3 новые цвари (информация из файла /vile_readme.txt):<br /><br />s_oalDevIndex<br />Указывает индекс аудио-устройство, которое нужно инициализировать.<br />Значение по-умолчанию: -1<br />Допустимые значения: (-1..n-1), где n - кол-во аудио-устройств в системе.<br />Если указано отрицателное значение, то будет выбрано текущее аудио-устройство в системе.<br />Изменения вступают в силу после команды snd_restart.<br /><br />s_oalLibName<br />Указывает имя файла библиотеки OpenAL.<br />Значение по-умолчанию: openal32<br />Изменения вступают в силу после команды snd_restart.<br /><br />s_oalMaxDistFactor<br />Поправочный коэффициент для вычисления максимальной дистанции слышимости звука.<br />Чем больше значение, тем меньше будет затухать звук с расстоянием.<br />Значение по-умолчанию: 0.5<br />Изменения встпупают в силу только для новых звуков.<br /><br />Рассчёт максимальной дистанции:<br />L[sub]max[/sub] = k / (a * k[sub]a[/sub]), где<br />k - поправочный коэффициент;<br />a - величина затухания (обычно 1, 2 или 3, что соответствует ATTN_NORM, ATTN_IDLE и ATTN_STATIC);<br />k[sub]a[/sub] - коэффициент затухания: 0.001 если a = 1, и 0.0005 - для остальных a.<br /><br /><br />Пока всё. Качайте, тестируйте, отписывайтесь :)
#1053
21 мая 2012 в 08:10
2ViLEНу неплохо так,но плосковато всё же.Позиции не очень ощущаются.М/б звуковуха хитрит,или я глухой.<br />
#1054
21 мая 2012 в 08:59
Молодец! Мужик сказал, мужик сделал. Вечером смогу только потестить.<br />[quote author=ViLE link=topic=3.msg16991#msg16991 date=1337579196]С этой студией возникла одна неприятность после которой пришлось совершить преступление века -<br />порезать main.cpp на несколько кусков (main1.h, main2.h, main3.h). Без этого невозможно было<br />проводить отладку. [/quote]<br />Может быть стоило тогда отпилить в отдельный кусок только звуковые запчасти? Например sound.cpp<br />В будущем на прочие части так же можно будет разрезать, по темам. Ну это так, лирика...<br />
Изменения встпупают в силу только для новых звуков.<br />всмысле для нового звукового движка?<br />
Ну неплохо так,но плосковато всё же.Позиции не очень ощущаются.М/б звуковуха хитрит,или я глухой.<br />Стерео ощущается? Не хуже чем было?<br /><br />ViLe, а ты вписал себя в credits? В текстовик и внутрь .exe, в список бегущий по экрану. ;)
#1055
21 мая 2012 в 10:30
Так же пришлось хакнуть библиотеки ogg/vorbis, ибо в отладочной версии<br />линковщик матерился на повтроное определение символов из libcmt.lib.<br />Хакнутые библиотеки поместил в папку vc2010/ogg и добавил к названию _d<br />(ogg_static_d.lib, vorbisfile_static_d.lib).<br />Ненужно ничего хакать там) Просто для дебага ставишь в игнор конфликтную либу)<br />Старая боянистая бяка)<br />
#1056
21 мая 2012 в 10:43
[quote author=Barnes link=topic=3.msg16997#msg16997 date=1337596217]<br /> Ненужно ничего хакать там) Просто для дебага ставишь в игнор конфликтную либу)<br />Старая боянистая бяка)<br />[/quote]<br />Спасибо, помогло. На таком простом лоханулся :)<br /><br />[quote author=Берсеркер link=topic=3.msg16993#msg16993 date=1337590772]<br />Может быть стоило тогда отпилить в отдельный кусок только звуковые запчасти? Например sound.cpp<br />В будущем на прочие части так же можно будет разрезать, по темам. Ну это так, лирика...<br />[/quote]<br />Можно попробовать.<br /><br />[quote author=Берсеркер link=topic=3.msg16993#msg16993 date=1337590772]<br />всмысле для нового звукового движка?<br />[/quote]<br />Нет, движок у нас теперь один.<br />Имелось в виду, что данная цварь не меняет максимальную дистанцию для активных звуков.<br />Только при проигрывании нового звука для него будет раасчитана дистанция уже с учётом значения цвари.<br />Вообщем, сделаю так, чтобы изменения сразу вступали в силу :) <br /><br />[quote author=Берсеркер link=topic=3.msg16993#msg16993 date=1337590772]<br />ViLe, а ты вписал себя в credits? В текстовик и внутрь .exe, в список бегущий по экрану. ;)<br />[/quote]<br />Как-то особо о таком не задумывался :)<br />
#1057
21 мая 2012 в 10:49
[quote author=ViLE link=topic=3.msg16998#msg16998 date=1337597031]Спасибо, помогло. На таком простом лоханулся [/quote]<br />Фигня вопрос, я с этим помучился когда на не то 2007ю или 2008ю студию переехал. Зип либа вроде тоже у меня такие финтиля выкидывала<br />к стати, по аутейшену. У нас есть вот такие дефы для разных звуков<br /><br />// sound attenuation values (by willow)<br />#define ATTN_NONE 0.075 //full volume the entire level<br />#define ATTN_NORM 1.0<br />#define ATTN_IDLE 1.1<br />#define ATTN_STATIC 1.05<br />#define ATTN_BIG_GUN 0.17<br />#define ATTN_MEDIUM 0.4<br />#define ATTN_WEAPON_LIGHT 0.2<br />#define ATTN_WEAPON_HEAVY 0.15
#1058
21 мая 2012 в 11:24
[quote author=Barnes link=topic=3.msg16999#msg16999 date=1337597341]У нас есть вот такие дефы для разных звуков<br /><br />// sound attenuation values (by willow)<br />#define ATTN_NONE 0.075 //full volume the entire level<br />#define ATTN_NORM 1.0<br />#define ATTN_IDLE 1.1<br />#define ATTN_STATIC 1.05<br />#define ATTN_BIG_GUN 0.17<br />#define ATTN_MEDIUM 0.4<br />#define ATTN_WEAPON_LIGHT 0.2<br />#define ATTN_WEAPON_HEAVY 0.15[/quote]<br /><br />#define ATTN_NONE 0.075 //full volume the entire level<br />А почему не 0? Специфический случай?<br /><br />Опечатался я:<br />k[sub]a[/sub] - коэффициент затухания: 0.001 если a = 3 (а не 1), и 0.0005 - для остальных a.<br />И ещё, для эмбиентных звуков k[sub]a[/sub] = 0.003.<br /><br />Кстати, табличка из оригинала:<br />// sound attenuation values<br />#define ATTN_NONE 0 // full volume the entire level<br />#define ATTN_NORM 1<br />#define ATTN_IDLE 2<br />#define ATTN_STATIC 3 // diminish very rapidly with distance<br />
#1059
21 мая 2012 в 11:26
это все эмпирически подбиралось под х-фай тк дефолт значения вообще не звучали
#1060
21 мая 2012 в 11:35
[quote author=Barnes link=topic=3.msg17002#msg17002 date=1337599580]это все эмпирически подбиралось под х-фай тк дефолт значения вообще не звучали[/quote]<br />Насколько я понимаю это всё относится не к движку, а к игровой библиотеке (game.dll)?<br />Хотя в CL_ParseMuzzleFlash2, CL_ParseTEnt, CL_ParseMuzzleFlash есть вызовы StartSound...