Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
Zagolski
Цитата(Shoкer @ 27.10.2019, 12:25) *
Пока вижу такие варианты:
- Либо проблема в шейдерах (маловероятно).
- Либо проблема в анимированных объектах - там у анимаций тоже квантизация где то есть, возможно не хватает точности.
- Либо в коде, который считает позицию худа, нужно пробовать все float заменять на double.

Я у себя это заметил и на объектах без анимации и не только на худовых. Причем что интересно, чем меньше объект, тем сильнее дрожание, даже если объект находится близко к камере. Еще заметил, что направление камеры влияет, да. Чем больше угол камеры вниз или вверх, тем сильнее дрожит. И самое главное, если отключить update в camera manager, дрожание пропадает полностью, но только для неподвижных объектов. Если же объект в движении (перемещение, вращение), это уже не помогает.

Можно еще грешить на низкую точность z-buffer, но раз при удалении от центра локации (нулевые координаты) дрожание усиливается, значит по идее дело в низкой точности float в мировых координатах. С другой стороны, почему при снижении fov дрожание усиливается, даже если мы находимся близко к центру локи?

Цитата(xrModder @ 27.10.2019, 07:21) *
А при каких значениях начинает дрожать объекты? Поиграл со значениями fov вплоть до 5 и hud_fov 0.1...1, но не могу заставить объекты дрожать.

Статичные объекты не дрожат, только динамика. У меня дрожание начинает быть заметно при fov < 15, но не на всех объектах. При fov 5 дрожат уже почти все, особенно мелкие, и тем более, если камеру вниз или вверх под 45 град. и более направить. Но проще всего это выявить на худе оружия при прицеливании через сквозянку с низким fov.
xrModder
Цитата(Zagolski @ 27.10.2019, 22:26) *
Цитата(xrModder @ 27.10.2019, 07:21) *
А при каких значениях начинает дрожать объекты? Поиграл со значениями fov вплоть до 5 и hud_fov 0.1...1, но не могу заставить объекты дрожать.
Статичные объекты не дрожат, только динамика. У меня дрожание начинает быть заметно при fov < 15, но не на всех объектах. При fov 5 дрожат уже почти все, особенно мелкие, и тем более, если камеру вниз или вверх под 45 град. и более направить. Но проще всего это выявить на худе оружия при прицеливании через сквозянку с низким fov.

Щя проверю у себя, тут явно дело в каких-то константах или типах как писал один товарищ.
RayTwitty
biggrin.gif
Нашел у себя видео, тестировал другое, но на нем видно именно это дрожание.
https://youtu.be/1raLa9ttGso
Впрочем, я тогда подумал что это просто у ГГ руки трясутся или воздух дрожит z_lol1.gif
Zagolski
Цитата(RayTwitty @ 27.10.2019, 19:39) *
но на нем видно именно это дрожание.

О да, оно самое.
На худе дрожание сильнее заметно, потому что сам худ рендерится при 0.45*fov, т.е. реально там выходит более чем вдвое ниже fov камеры.
Shoкer
Цитата(Zagolski @ 27.10.2019, 19:26) *
С другой стороны, почему при снижении fov дрожание усиливается, даже если мы находимся близко к центру локи?


Мне кажется что при высоком fov модель просто слишком мелкая, чтобы заметить дрожание.
Для чистоты эксперимента камеру игрока лучше исключить, вместо этого поправь в движке дефайн VIEWPORT_NEAR (чтобы объекты вблизи не обрезались) и без всякого зума просто подлетай к ним через demo_record. Мне показалось что дин. объект на земле в таком случае не дрожал (подлетал вплотную к мушке ствола). А вот тряску худа я всё равно видел.
Diesel
Shoкer, в ЧН худ не трясётся. Он медленно шатается вместе с камерой. biggrin.gif
Zagolski
Цитата(Shoкer @ 27.10.2019, 20:50) *
и без всякого зума просто подлетай к ним через demo_record. Мне показалось что дин. объект на земле в таком случае не дрожал (подлетал вплотную к мушке ствола)

Как раз если задействовать демо-рекорд, тряска неподвижных объектов прекращается. Я так выявил зависимость от апдейта камеры. Из глаз смотришь - трясет, переключаешься на демо-рекорд - перестает. А если объект перемещается, то и при демо-рекорд или с отключенным cam update начинает трясти. Загадка.
mortan
Zagolski, вообще, у меня и в деморекорде тряска. Только через раз - сейчас хотел записать а тряски и нету почти О_о
Diesel
Цитата(Дизель @ 27.10.2019, 15:55) *
Нужно подумать как вывести кнопку vid_restart для сетевой игры?


Консоль: vid_restart 1
Как только заставить юзера мода этим воспользоваться? z_crazy.gif
Проще однако выйти в Виндос и зайти заново.
Что печально. что это происходить будет толко при самом первом запуске сети.

А может в реестре брандмауер хлопнуть, при установке мода?
xrModder
У кого есть исправления каскада теней для ТЧ?
Trollz0r
Вчера запускал дюка нюкема (которого делали 15 лет), увеличивал фов - вылезло предупреждение, что-де возможны артефакты при фов, отличном от стандартного. И действительно - при зуме с открытого прицела была тряска. Видимо, обе игры используют одну методику.

Что-то подобное бывает и в майе, когда вручную настраивается фрустум: сделаешь ближний план, скажем, 0.01м и дальний 10000м - начнет моргать геометрия, как на видосе с демонстрацией потери точности выше.
mortan
Вот кст пример подёргивания ( правда тут дёргается не сам ствол а аттач к нему ) :
Видео


А вот пример уже странного дёрганья всего худа при поворотах О_о. Есть идеи что это может быть?
Видео
Diesel
На первом видео, там всё трясётся и руки.
На втором видео, там фпс валится? Буфер?
mortan
Дизель, с фпс всё нормально вроде, так что черт его знает что это за приколы) Двигло кст OXR, на почти ванили не пробовал.
Diesel
mortan, на ЧН оказывается есть подёргивание, но оно не так сильно в глаза бросается.
Просто в ЧН всё ходуном ходит из-за имитации шатания ГГ.
А еще прикол, у ГГ на худе рука дёргается.

Да и вообще, если бы не сказали, то и не заметил никогда.

Оружие в руках худа зафиксировано хреново - вот и дребезжит.

Возмите в руки нож и посмотрите - он вообще не вибрирует, да и вообще он не отслаивается от ГГ при прыжках в виде от 2-3.
mortan
Дизель, 2 и 3 лицо совсем другое - там рендерится мировая модель по своим координатам, так что это не совсем то.
ed_rez
mortan,
не думаю, что тому, кто делал текстуры, мозгов хватило включить параллакс с картой высот. Хотя, у ПЫС такое наблюдалось.
Не смотря на бампы, а нужно было бы глянуть, чтобы на 100% убедится в своем ответе. Забегу вперед. Не правильно сделаны бампы, даже учитывая тот факт, что вся правильность у кого-то ограничивается только СДК. Там много ньюансов, кстати, движковых, почему плавает текстура.
Ради забавы, проверь на статическом освещении.
mortan
ed_rez, хм, причём тут текстуры - не пойму вообще. Работы с бампами как таковой нету, моделька собрана чисто для тестирования пока что) Ради забавы проверил - ничего не поменялось, так что опять таки повторюсь - текстуры не причем)
ed_rez
mortan,
странно, я был на 100% уверен. Эта проблема мне знакома. Но на нет и суда нет.
NanoBot-AMK
Есть вопросик. Кто, кроме меня, сделал правку позволяющая любому классу от CWeaponMagazined стрелять очередями. Правка совсем простая. Конечно скажите вы, а на фига, но вот автопистолеты типа АПС, обычно делают на классе LR300, но при этом не работает затворная задержка. А в ЧН и ЗП во обще инвалиды ПЫСы сделали отдельный класс для автошотганов. Хотя логичней сделать всех наследников класса CWeaponMagazined с возможностью авто огня, включая гранатомёты, РПГ-7, РГ-6. Потом скину мод где демонстрируется все возможности правленого движка(рев232.19).
ЗЫ
Я ради прикола даже сделал "Бешеный ПМ", ПМ с подпиленным шепталом, отличается бешеной скорострельностью, поэтому и называется так. Даже историю появления в ЗОНЕ придумал.
Shoкer
> А вот пример уже странного дёрганья всего худа при поворотах О_о. Есть идеи что это может быть?
Скорее всего это GSC-овский оригинальный код инерции. Он плохо переносит любые скачки FPS, в том числе и в оригинале, но в OpenXRay по ощущениям проблема ещё заметнее была, у себя я его отключил и новый писал - GSC-овский основан на разнице между векторами камеры с текущего и прошлого кадра и плохо поддаётся контролю из-за этого. Попробуй включить запись видео и просто начать крутиться на месте равномерно (зажать стрелку вправо \ влево) - там тряску будет хорошо видно.

В дискорд-чате OpenXRay где то есть обсуждение годичной давности.

Если дело в нём, то можно FPS принудительно ограничить до 60, тогда тряски не будет до тех пор, пока компьютер пользователя способен игру тянуть со стабильным FPS, но это ненадёжный костыль.
cjayho
QUOTE (Shoкer @ 29.10.2019, 10:20) *
Если дело в нём, то можно FPS принудительно ограничить до 60, тогда тряски не будет до тех пор, пока компьютер пользователя способен игру тянуть со стабильным FPS, но это ненадёжный костыль.


Ха, на р2 и выше мой ноут дай бог 20 фпс выдает biggrin.gif
mortan
Shoкer, ограничение в 60 фпс итак стоит, правки по инерции в OXR вроде бы из твоего движка как раз, только старой версии. Но я посмотрю код еще раз чтобы сказать точнее. Но мне кажется, что до работы с аттачами такой проблемы не было)
NanoBot-AMK, я как-раз делал недавно, выпилил почти все различия между классом пистолетов и классом CWeaponMagazined)
macron
Может не в тему, но у меня на радеоне в ТЧ были какие-то статтеры при включенном всинке. Отключил в игре всинк, а в драйвере включил ограничение в 120 fps, тогда стало нормально.
Xottab_DUTY
Синхронный движок, в котором рендер зависит от логики (пока не обновилась логика, кадра не будет) и логика от рендера (пока кадра нет, обновлений не будет), плохо совместим с вертикальной синхронизацией. Она добавляет задержки в рендер, а, значит, и в логику, так как там всё повязано.

Цитата(macron @ 29.10.2019, 19:37) *
включенном всинке.

Но мне это немного удивительно)))
Потому что в ЧН и ЗП она просто выключена в движке и опция в настройках ничего не делает и я думал, что в ТЧ также)
Xottab_DUTY
Странно... Сейчас посмотрел исходники ТЧ, так там тоже функция selectPresentInterval не используется.. Тогда и в ТЧ тоже эта опция не должна ничего делать и статтеров не должно быть..
macron
Разумеется, я имел в виду фиксенный ТЧ со включенными правками всинка.
Zagolski
Цитата(Trollz0r @ 29.10.2019, 00:57) *
Что-то подобное бывает и в майе, когда вручную настраивается фрустум: сделаешь ближний план, скажем, 0.01м и дальний 10000м - начнет моргать геометрия, как на видосе с демонстрацией потери точности выше.

Я делал near - far как 0.2 - 2.0, все равно дрожит, так что не из-за точности zb.

Цитата(Xottab_DUTY @ 29.10.2019, 19:10) *
Синхронный движок

Если через дрова всинк активировать, тогда никаких проблем у меня не всплывало. А через игру если галку 60 Гц включить - глючит, да. И сбрасывается при переключении оконный-полноэкранный, то вообще гамму сбрасывает в белую и все рывками идет.
Кстати, в меню тоже работает. 120 Гц как вкопанный, никаких Eco Render не надо. И нет рывков курсора.
xrModder
Кто-нибудь поделитесь luabind для ТЧ без boost
JustChiller
Всем Привет!

Кто-то подробно изучал xrSound?

1) Может кто подсказать что из себя представляет сущность CSoundRender_Target? Как я понимаю там и воспроизводится звук.
2) CSoundRender_Target заполняются в вектор размером 32. Правильно ли я понимаю, что одновременно в игре может воспроизводиться 32 звука?
macron
Цитата(JustChiller @ 31.10.2019, 19:57) *
2) CSoundRender_Target заполняются в вектор размером 32. Правильно ли я понимаю, что одновременно в игре может воспроизводиться 32 звука?

А, теперь понятно, почему у команды snd_targets ограничение на 32.
Shoкer
> Правильно ли я понимаю, что одновременно в игре может воспроизводиться 32 звука?
Верно - если звуков больше 32 то часть из них перестаёт играть, но это легко правится в движке увеличением лимита консольной команды до желаемого числа.

> Может кто подсказать что из себя представляет сущность CSoundRender_Target? Как я понимаю там и воспроизводится звук.
Звук в сталкере на уровне драйверов и прочего воспроизводит OpenAl, в сталкере весь код звука по сути обёртка над ним - собирает в звуковой объект информацию о его громкости, частоте и позиции и просто передаёт в OpenAl. Плюс (по крайнем мере в ЗП) там самописный код для отслеживания таймингов звука (когда начать играть, когда прекратить), код для реакции НПС на звуки (по сути просто передаёт сигнал всем НПС, которые в радиус звука попадают), и какой то код для расчёта громкости звука в разных помещениях \ звуковых зонах - не уверен насколько он хорошо работает, я так понял это в СДК расставлять зоны надо.

У меня OpenXray, но в оригинале по идее всё также. В файле CSoundRender_TargetA.cpp находится непосредственно код, который передаёт звук в OpenAl.
Карлан
Цитата(Zagolski @ 29.10.2019, 21:42) *
Если через дрова всинк активировать, тогда никаких проблем у меня не всплывало. А через игру если галку 60 Гц включить - глючит, да. И сбрасывается при переключении оконный-полноэкранный, то вообще гамму сбрасывает в белую и все рывками идет.
Кстати, в меню тоже работает. 120 Гц как вкопанный, никаких Eco Render не надо. И нет рывков курсора.

Разумеется сбрасывается, при развороте ее надо обновлять, ты разве не в курсе? smile.gif Ты же рендером уже несколько лет занимаешься и куда опытнее меня, галка 60гц это не всинк, это рефреш рейт и в оконном режиме это не работает, а вот всинк работает.

С всинком я уже разбирался, о чем ранее тут и писал. Это не рефреш рейт - не надо путать, и делается это совершенно по другому. Сразу скажу, что - да, можно делать через презент, но это фигня. Можете меня проверить, я проводил измерения два раза, и на первых кадрах у меня идет дикая погрешность вплоть до ~50%, остальные стабильно дает погрешность в ~5%, т.е. это не всинк а фигня. Нормально синхра кпу-гпу делается через объект ожидания (опять же можете проверить).

Окей, показываю свое решение:

В ваш класс рендера (CHW для примера) добавляем:
Код
private:
HANDLE m_waitableObject;
public:
void WaitSC();


Везде где (пере)создаете цепочку добавьте ей флаг DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT с проверкой rsVSync.

После создания цепочки переключений получим наш объект (опять же с проверкой rsVSync, в конструкторе/хидере (зависит от версии языка) лучше ему явно задать nullptr):
Код
m_waitableObject = m_pSwapChain->GetFrameLatencyWaitableObject();


Реализация самой функции выглядит вот так:
Код
void CHW::WaitSC()
{
    if (!psDeviceFlags.test(rsVSync)) return;
    WaitForSingleObjectEx(m_waitableObject, 1000, true);
}


И вызываем нашу функцию HW.WaitSC() перед рендерингом (в ТЧ после флага b_is_Ready, как в ЧН/ЗП не знаю, найдите аналогичный участок).
Готово, можно конечно еще увеличить количество кадров в очереди, но я бы не рекомендовал, хотя можете экспериментировать, никто не запрещает smile.gif.
DoberBull
Небольшой вопрос, касательно билдосорцев. Кто-нибудь пробовал декомпилить движок билда, в котором есть .pdb файлы (2215) ?
Zagolski
Цитата(Карлан @ 02.11.2019, 21:01) *
галка 60гц это не всинк, это рефреш рейт

Ты не так понял. Я в курсе про 60гц, это ограничение на 60 фпс. Т.е. если моник 100гц и галку включить (при включенном всинк), частота ограничится 60 фпс, а не 100.
Так вот эта галка 60гц глючит - убивает гамму и при сворачивании сбрасывает всинк. А всинк в опциях игры у меня работает корректно в оконном и полноэкранном, и при сворачивании не сбрасывается. Эту 60 Гц вообще надо из игры удалить, она вводит пользователя в заблуждение, глючит и от нее нет никакого толку.
Xottab_DUTY
Карлан, а у тебя Flip presentation модель используется? Не BitBlt?)
Иными словами, какой DXGI_SWAP_EFFECT у тебя используется?
Xottab_DUTY
Я спросил про Flip именно потому, что DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT не работает на BitBlt модели. Чтобы работало, swap effect должен быть FLIP_SEQUENTIAL или FLIP_DISCARD
DiaWorld
Если собрать двигло на 2019 версии студии, проблем не будет ?
Ибо помнится мне, что я собирал на 2017 версии, и там если не ошибаюсь что то с рендером не ладно было, будет ли такое на 2019 версии, кто нибудь знает ?
XinnogeN
Добрый вечер! Подскажите пожалуйста, на какой версии visual studio разрабатывался Сталкер ТЧ,ЧН и ЗП? Заранее благодарен!
ForserX
XinnogeN, 2005. Но нужно ли оно тебе? Тут сейчас на 2015-2019 народ сидит...

Цитата(DiaWorld @ 10.11.2019, 17:10) *
Если собрать двигло на 2019 версии студии, проблем не будет ?
Ибо помнится мне, что я собирал на 2017 версии, и там если не ошибаюсь что то с рендером не ладно было, будет ли такое на 2019 версии, кто нибудь знает ?

Ты можешь взять уже готовый вариант. Тот же Oxygen на 2017-2019 студии собирается
XinnogeN
Цитата(ForserX @ 10.11.2019, 19:33) *
XinnogeN, 2005. Но нужно ли оно тебе? Тут сейчас на 2015-2019 народ сидит...


Это я всё понимаю. Хочеться попробывать собрать dll байт в байт как в релизе, но не получается. Пробывал собрать двигло-собрал,запустил. Но дело в том,что некоторые dll имеют разный размер от оригинала, например xrCore у меня получается 848кб. а в оригенале 852кб. В чём может быть причина? Собирал ЧН-1.5.10.
atanda
"Байт в байт" не получится ни при каком раскладе. Для этого надо полностью воссоздать окружение, в котором проводилась релизная компиляция, использовать те версии библиотек, которые линковались к релизной сборке, и ещё куча всего.

Да и зачем тебе надо-то "байт в байт"?
XinnogeN
Думал, я что не так что-то делаю. Ну раз так тогда я понял. Но всё же реально это сделать?
Diesel
XinnogeN, не реально.
В одну реку дважды не войти. Какой то филосафф писал.
XinnogeN
Цитата(Дизель @ 10.11.2019, 21:46) *
XinnogeN, не реально.
В одну реку дважды не войти. Какой то филосафф писал.

biggrin.gif

Да, и кстати, собирали разрабы на 2005 студии-только какой pro, team или extrime и каккой версии 8.0.50727.762 ??? И на Хрюше, да?
Diesel
XinnogeN, да.
Там инклуды системные в Виндовс СДК еще влияют. Типа 5.0 или 6.0 - уже разные.

А еще главное, что релизного кода нет. Всё что видел - это не финал.
XinnogeN
Всё ясно, спасибо за подробности!!!
RayTwitty
Цитата(Дизель @ 10.11.2019, 21:58) *
А еще главное, что релизного кода нет. Всё что видел - это не финал.

Формально нет, но фактически 1.0007(rc1) тот же 1.0006. Тот же OGSR на нем основан, а на нем в свою очередь моды обычного ТЧ (OGSE, вроде недавно еще ТТ2 перенесли). Вроде играется нормально.

Впрочем мелкие изменения есть в 7 патче в лучшую сторону - меньше отладочного говна в консоли, а также исправлено пожирательство содержимого трупов

biggrin.gif

ЗЫ я даже на волне хайпа после слива исходников, первую свою правку сделал - разрядка оружия прямо в рюкзаке трупа, т.е. можно патроны получать не беря в инвентарь себе весь хлам
PS2 а что, https://xp-dev.com/summary/210311 всё? z_cry.gif
xrModder
Цитата(XinnogeN @ 10.11.2019, 21:50) *
Добрый вечер! Подскажите пожалуйста, на какой версии visual studio разрабатывался Сталкер ТЧ,ЧН и ЗП? Заранее благодарен!

Оригинальный ТЧ на Visual Studio 2005, но движок с легкостью переносится на Visual Studio 2010. Здесь ссылка можешь посмотреть все правки переноса движка ТЧ из 2005 студии в 2010.
atanda
Имхо, если и переносить, то как минимум на 2013 студию. Ибо перенос на 2013 осуществляется +- как и на 2010.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.