Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Редактирование движка
RayTwitty
сообщение 22.01.2016, 17:18
Сообщение #4401


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа



Редактирование собранного движка
Проект X-Ray extensions и его вики
Lua-перехватчик от alpet
xrLuaFix от RvP
xrLuaFix в редакции от Artos
xrLuaFix в редакции от svarog2741
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)
NoProtect 1.0006 исполнительные файлы из Steam-версии без защиты
Документация к X-Ray (11.10.2004)
Файл заголовков от отладочного 6 патча
Cut X-Ray
Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками.
Авторы: SkyLoader, _призрак_
Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02
Адрес проекта на Google Code: https://code.google.com/p/cut-x-ray-project/
Страница на Moddb: http://www.moddb.com/mods/cut-x-ray-project-soc-cs-cop
Пак 1
1. Исправление вылета "can't find rank" для оружий.

2. Смерть от первого лица.
Видео: https://www.youtube.com/watch?v=c-4dNyvizxY

3. Collide
Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов.
Видео: https://www.youtube.com/watch?v=1xNn04f3djc

4. Круглый прицел.
Возвращен круглый прицел вместо перекрестья, как билдах.

5. Исправление вида от 3-го лица.
Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра.
Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить.
Пак 2
1. Luminosity progress (только ТЧ)
Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах.

2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП).

3. Руки на руле в машине. (только ТЧ и ЧН)
Видео: https://www.youtube.com/watch?v=nYrnrfGkO7Y

4. Отсутствие распознавания неписей перекрестием:
При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него.

5. Bind_object:
Возможность использовать скрипты в мультиплеере.

6. Из оружия на классе бинокля можно стрелять (только ТЧ)
Пак 3
1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра).

2. Измененная анимация безоружного гг.

3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии)

4. Исправление вылета при использовании предметов из трупов неписей.
В отличии от версии Kolmogor'а, здесь отключено само меню использования.

5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты")
Скачать все паки
Правки от RayTwitty aka Shadows
Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod
Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865
Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project
NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки
Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record
Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия)
Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением
Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density
Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias
No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам
Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near
Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI
Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь
PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png

Скачать все правки
Правки от K.D.
xrPatch v0.8 – патчер для увеличения радиуса прорисовки травы
detail radius+density fix [SOC 1.0006] – добавляет регулировку радиуса отрисовки травы через консольную команду и расширяет диапазон регулировки плотности травы до 0.02
Правки от macron
Исправленный экзешник для SoC 1.0006
Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты)
Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/At9Tw0ueSaDyS
X-Ray extensions portable
Портативная версия расширений движка "X-Ray extensions"
Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02
Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/OLYPbDXWjyEkH
Правки от Kolmogor
Правленный xrGame для SoC 1.0004
Изменения:
1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры.
2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса.
3. Артефакты работают из рюкзака, а пояс служит контейнером.

Ссылка: http://rusfolder.com/42636653
Правки от Kontro-zzz
Изменение значения hud_fov
Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, для CS 1.5.10 и для билда 3120.
Должно работать на GOG версии и no DVD.
Редактирование исходников
Скачать все исходники отсюда или с оригинальных постов SoC 1.0007rc1 SoC и CS CoP X-Ray 2
Репозитории

[SoC]
() Alpet & KD / оригинальное репо [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin [Архивная ценность][/b]
() Lost Alpha old [Архивная ценность]
() Репозиторий OGSE | Самый актуальный форк (KRoddin) | Версия от Abramcumner с небольшими исправлениями
() 1exx [Архивная ценность]
() Shkiper2012 [Архивная ценность]
() Morrey (dx10) [Архивная ценность]
() OP Engine (Winsor)
() Kondr48 [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner | drksnc (MP) [Архивная ценность]
() RainbowZerg [Архивная ценность]

[CoP]
() Forser
() OpenXRay
() CoC | Demosfen | Last Day
() Abramcumner
() Im-Dex [Архивная ценность]
() xrDev [Архивная ценность]
() Tron [Архивная ценность]
() mrmnwar [Архивная ценность]
() Avo [Архивная ценность]
() vincent-t [Архивная ценность] | Старый репозиторий
() Shoкer
() Morrey CS-COP [Архивная ценность]
() Morrey [Архивная ценность]

[2.0]
() Saas
() xrOxy
Компиляторы x64: SoC CS CoP
NDA GSC
Оригинальные версии движков
Могут понадобиться для восстановления оригинальных библиотек.
SoC SoC ENG CS CoP
GOG version [1.0006, 1.5.10, 1.6.02]
Multi-patch version [1.0006, 1.5.10, 1.6.02]
Официальный мультиплеерный (невышедший) патч для SoC 1.0007rc1.
Уроки
Изменение плотности травы и создание патча через IDA Pro
Автор: _призрак_
edited by: RayTwitty aka Shadows

Для редактирования нам понадобится программа IDA Pro.

1. Запускаем IDA Pro.
2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll.
3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density.
4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры:
Код регистрации консольной команды
Код
fld ds:flt_10064400 -- нижнее ограничение равное 0.6
or dword_1007CACC, 8
sub esp, 8
fstp [esp+30h+var_2C]
mov ecx, offset unk_1007CA9C
fld ds:flt_10064380 -- верхнее ограничение равное 0.2
fstp [esp+30h+var_30]
push offset aSs; "ЪЩЩ>"
push offset aR__detail_dens; "r__detail_density"
call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float)
push offset sub_1005E080; void (__cdecl *)()
call _atexit
add esp, 4
Если вы заметили, чтобы трава стала плотней нужно уменьшить параметр, а чтобы травы стало меньше, нужно параметр увеличить
5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта:

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

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

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать smile.gif

Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999.
Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию!
6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца.
7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните:
Код
38 43 06 10
10 06 43 38
Похоже, не правда ли? smile.gif
8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!).
9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной.
Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось.
10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно.
11. Все! Изменения внесены в движок, можно тестировать smile.gif

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз.
Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего smile.gif




Сообщение отредактировал RayTwitty - 27.08.2021, 00:15
Перейти в начало страницы
 
242 страниц V  « < 219 220 221 222 223 > »   
Начать новую тему
Ответов
WolfHeart
сообщение 04.01.2020, 00:03
Сообщение #4402


Продвинутый геймер
********

Репутация:   17  
Группа: Участник
Сообщений: 277
Регистрация: 18.08.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RayTwitty @ 03.01.2020, 23:45) *
когда в папке \logs количество файлов достигло 3390 игра при запуске стала вылетать со stack overflow

Примерно при таком же кол-ве, перестают запускаться компиляторы в SDK. smile.gif
Цитата(RayTwitty @ 03.01.2020, 23:45) *
с 29 апреля 2012 по 25 июня 2018 гг игра у меня вылетела 1696 раз (именно столько минидампов сохранилось)

В музЭй!!! ПЫСам на Рождество. z_6.gif

Перейти в начало страницы
 
cjayho
сообщение 05.01.2020, 03:02
Сообщение #4403


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (ForserX @ 03.01.2020, 20:13) *
QUOTE (cjayho @ 03.01.2020, 11:09) *
"!" << std::endl; не?

Тоже самое, что и "/n".


Не то же.

в венде "\r\n",
в маке "\r",
в линуксе/фряхе "\n"

Сообщение отредактировал cjayho - 05.01.2020, 03:03


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
cjayho
сообщение 05.01.2020, 03:55
Сообщение #4404


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (xrModder @ 03.01.2020, 21:55) *
Для чего нужен CEnvDescriptor::CEnvDescriptor() в Environment_misc.cpp?


Это ж конструктор blink.gif
куда еще его пихать то.

Сообщение отредактировал cjayho - 05.01.2020, 03:58


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
ForserX
сообщение 05.01.2020, 17:08
Сообщение #4405


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(cjayho @ 05.01.2020, 02:58) *
Не то же.

в венде "\r\n",
в маке "\r",
в линуксе/фряхе "\n"

При работе с файлами, а не при выводе в консоль


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
JustChiller
сообщение 07.01.2020, 16:25
Сообщение #4406


Новичок
*

Репутация:   1  
Группа: Участник
Сообщений: 9
Регистрация: 11.09.2019




Вставить ник Цитировать выделенное в форуму быстрого ответа


abramcumner, Привет,

Попытался заюзать последнюю версию твоих бинарников xray16.
Игра падает из-за рендера.

Лог:
Код
! Unknown command:  dump_infos

FATAL ERROR

[error]Expression    : error handler is invoked!
[error]Function      : handler_base
[error]File          : d:\moding\cop_engine_2017\xray16\xray\xrcore\xrdebugnew.cpp
[error]Line          : 754
[error]Description   : application is aborting


stack trace:

0023:640A299D xrCore.dll, abort_handler(), d:\moding\cop_engine_2017\xray16\xray\xrcore\xrdebugnew.cpp, 836
0023:77B0D218 ucrtbase.dll, raise()
0023:77B0E6D2 ucrtbase.dll, abort()
0023:6409EB2F xrCore.dll, mspace_free(), d:\moding\cop_engine_2017\xray16\xray\xrcore\ptmalloc3\malloc.c, 5177
0023:6408D30F xrCore.dll, doug_lea_allocator::free_impl(), d:\moding\cop_engine_2017\xray16\xray\xrcore\doug_lea_allocator.cpp, 55
0023:63C9B0D8 xrRender_R2.dll, FixedMAP<STextureList *,R_dsgraph::mapMatrixItems,doug_lea_allocator_wrapper>::Realloc(), d:\moding\cop_engine_2017\xray16\xray\xrcore\fixedmap.h, 39
0023:63C9AE82 xrRender_R2.dll, FixedMAP<STextureList *,R_dsgraph::mapMatrixItems,doug_lea_allocator_wrapper>::CreateChild(), d:\moding\cop_engine_2017\xray16\xray\xrcore\fixedmap.h, 77
0023:63CF6C31 xrRender_R2.dll, R_dsgraph_structure::r_dsgraph_insert_static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 356
0023:63CF5CF4 xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 741
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63D38983 xrRender_R2.dll, CRender::render_main(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrenderpc_r2\r2_r_render.cpp, 79
0023:63D39A5D xrRender_R2.dll, CRender::Render(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrenderpc_r2\r2_r_render.cpp, 281
0023:5F494E85 xrGame.dll, CLevel::OnRender(), d:\moding\cop_engine_2017\xray16\xray\xrgame\level.cpp, 792


Пробовал и сам билдить и использовать твои из releases.
Версии 1.7.0.5 и 1.7.0.4 не работают. 1.7.0.3 работает. Можешь подсказать, в чем проблема и как можно починить?

P. S. уже висит issue https://github.com/abramcumner/xray16/issues/3
Перейти в начало страницы
 
NanoBot-AMK
сообщение 14.01.2020, 02:15
Сообщение #4407


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


У кого оружие может стрелять без владельца? blink.gif


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
cjayho
сообщение 14.01.2020, 10:56
Сообщение #4408


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (NanoBot-AMK @ 14.01.2020, 01:11) *
У кого оружие может стрелять без владельца? blink.gif


та не, вы не понимаете. они такие агрессивные, черные, с клююювамиии... biggrin.gif


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
XinnogeN
сообщение 14.01.2020, 19:09
Сообщение #4409


Игрок
***

Репутация:   3  
Группа: Участник
Сообщений: 40
Регистрация: 10.11.2019




Вставить ник Цитировать выделенное в форуму быстрого ответа


Подскажите пожалуйста, можно ли сразу переводить движок на vs2019 или для начала нужно мигрировать в vs2010 а потом на vs2019? Если использовать оригиналы исходников а не репос.

Сообщение отредактировал XinnogeN - 14.01.2020, 19:11
Перейти в начало страницы
 
NanoBot-AMK
сообщение 14.01.2020, 19:49
Сообщение #4410


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


cjayho, просто сейчас ПЗРК решил начать делать, скриптами, с оригинальным движком не получается. Решил сделать ряд правок, и добавить скриптовых методов. Один из них это стрельбы из оружия, wpn:weapon_fire_start() и wpn:weapon_fire_stop(), ну и заодно сделать чтобы оружие стреляло без владельца. Сделал на XE, но пока не сделал отдачу, не знаю как реализовать, так, чтобы отдача била от ствола, ну чтобы оружие не просто отбрасывала, а ещё кувыркалось.
Это надо для реализации особо умных карликов, которые могут не только телекинетически подымать оружие, но и стрелять из него(наведя на врага), если у него есть патроны. ohmy.gif

Сообщение отредактировал NanoBot-AMK - 14.01.2020, 19:50


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
Gaz24
сообщение 14.01.2020, 19:56
Сообщение #4411


Почти Игрок
**

Репутация:   1  
Группа: Участник
Сообщений: 17
Награды: 1
Регистрация: 14.01.2013




Вставить ник Цитировать выделенное в форуму быстрого ответа


NanoBot-AMK а что если использовать параметры от отдачи не для камеры а для худа оружия? Можно посмотреть как ведет себя оружие в Арме, Red Orchestra 2/RisingStorm 2, а также в Insurgency/Insurgency: SandStrom.
Перейти в начало страницы
 
Zagolski
сообщение 20.01.2020, 08:05
Сообщение #4412


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Shoкer @ 24.11.2019, 16:59) *
Возвращаясь к теме подёргивания худа оружия в руках (когда игрок стоит на месте и не крутит камеру) - кажется нашёл одну из его причин (в ЗП).

Все же мне кажется, что сбоит точность float мировых координат. Потому что дрожание усиливается при удалении от центра локации (0,0,0 координат), зависит только от этого. Начинает трястись оружие в руках. Это в ЗП, где отдельные руки, в ТЧ я не проверял. Можно взять к примеру болт в руки и удаляться на самый край локи (болото, оно большое). Будет видно, как болт начинает ходить ходуном, хотя сами руки вроде как не двигаются.
То же и с оружием, у меня оно состоит из разных частей, так все части начинают ходить ходуном относительно друг-друга в случайных направлениях, того и гляди оружие рассыплется. smile.gif
GetPosition у меня на это не влияет. Т.е. сам объект вроде как перестает трястись, а то что к нему приаттачено - это нет.

Да и вообще мировые координаты сбоят даже в шейдерах. Если в них вести расчет, тоже бывает дрожание. В видовых этой проблемы нет, но оно и понятно, там точность выше.
Перейти в начало страницы
 
Shoкer
сообщение 20.01.2020, 22:37
Сообщение #4413


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Zagolski, я тоже так думаю, хотя вариант с GetPosition конкретно мне по крайнем мере помог побороть тряску в прицелах (которые тоже отдельной моделью). А вот если крутить камеру то в эти моменты дрожание возвращается. Плюс тряска похоже заметна в Demo Record но видимо от первого лица она очень "удачно" синхронизирована с камерой и поэтому там её не видно.

Есть идеи куда копать? Неужели точности float не хватает? Больше склоняюсь что в самих шейдерах действительно где то "оптимизацию" завезли (например float16 какой нибудь), м.б. в скининге - но тут я уже не сильно силён.


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
Zagolski
сообщение 22.01.2020, 11:55
Сообщение #4414


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Shoкer @ 20.01.2020, 22:33) *
Больше склоняюсь что в самих шейдерах действительно где то "оптимизацию" завезли (например float16 какой нибудь), м.б. в скининге

У меня твоя правка стоит, где half на float заменен, а в остальном на R3 везде float в шейдерах. Возможно в шейдер на скиннинг передаются костевые матрицы с "гуляющими" координатами, вот эти вот: mRenderTransform. Само локальное пространство модели у нас же постоянное, значит где-то при перемножении матриц погрешность вырабатывается. А с учетом того, что худ у нас всегда близко перед глазами, да еще и с более низким fov, вполне вероятно, что точности float может и не хватать... Если в double переделывать, тогда придется чуть ли не весь Skeleton переписывать. Там есть Dmatrix.

С другой стороны цельная модель не трясется (но трясется болт относительно рук), даже если она Hierrarhy, т.е. все равно разбивается по группам и на скиннинг отправляется в виде отдельных моделей. Поэтому скиннинг тут может быть и не причем. Вполне вероятно все же внесение погрешности в координаты где-то на верхнем уровне, в player_hud, attachable_item или вообще в CGameObject.

Сообщение отредактировал Zagolski - 22.01.2020, 11:55
Перейти в начало страницы
 
iOrange
сообщение 22.01.2020, 17:38
Сообщение #4415
BFG9000 owner

Половина землекопа
**************

Репутация:   247  
Группа: Припаркованный аккаунт
Сообщений: 1813
Награды: 3
Регистрация: 30.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Zagolski @ 22.01.2020, 10:51) *
У меня твоя правка стоит, где half на float заменен

Вы же в курсе что уже как минимум десяток лет это один и тот же тип? wink.gif


--------------------
Hello worlds!
Перейти в начало страницы
 
Zagolski
сообщение 22.01.2020, 18:09
Сообщение #4416


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(iOrange @ 22.01.2020, 17:34) *
Вы же в курсе что уже как минимум десяток лет это один и тот же тип?

Да я про движок. Там в скиннинге в ваниле используется в декларациях vs половинная точность, да и в расчетах тоже, а Shoker сменил на полный 32-бит float, тем самым возросла точность позиции вершин.

Сообщение отредактировал Zagolski - 22.01.2020, 18:13
Перейти в начало страницы
 
iOrange
сообщение 22.01.2020, 18:13
Сообщение #4417
BFG9000 owner

Половина землекопа
**************

Репутация:   247  
Группа: Припаркованный аккаунт
Сообщений: 1813
Награды: 3
Регистрация: 30.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Zagolski @ 22.01.2020, 17:05) *
Да я про движок, в ваниле используется в декларациях половинная точность

А, пардон, я подумал вы про шейдеры. blush.gif


--------------------
Hello worlds!
Перейти в начало страницы
 
NanoBot-AMK
сообщение 26.01.2020, 00:20
Сообщение #4418


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Для чего используется ogse.dll в OGSE?
И ещё, можно ли из dll вызвать код Lua с произвольным прототипом?
Т.е. например метод.
CScriptGameObject:MyMethod(MyClass0 param1, MyClass1 param1)
Где классы взяты из исходников. Метод вызывается из dll'ки, а сама функция вызывается из пропатченой xrGame.dll.


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
Zagolski
сообщение 28.01.2020, 01:06
Сообщение #4419


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(NanoBot-AMK @ 26.01.2020, 00:16) *
Для чего используется ogse.dll в OGSE?

В нем рендер. Не весь, но почти.

Сообщение отредактировал Zagolski - 28.01.2020, 01:06
Перейти в начало страницы
 
mortan
сообщение 31.01.2020, 15:14
Сообщение #4420


Продвинутый геймер
********

Репутация:   16  
Группа: Участник
Сообщений: 222
Награды: 3
Регистрация: 28.06.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Кст, к вопросу о дрожании прицелов, мне тут подсказали что вот это тоже влияет на дрожание, файл effectors.ltx:
Код
[zoom_inertion_effector]
camera_move_epsilon    = 0.03    ;разница между двумя векторами направления камера, когда считается что камера двинулась
Перейти в начало страницы
 
Zagolski
сообщение 04.02.2020, 06:44
Сообщение #4421


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Выяснил, что дрожание - распространенная проблема в других играх с открытым миром. И происходит это действительно из-за точности float: чем дальше мы удаляемся от центра локации, т.е. от нулевых координат, тем сильнее падает точность и начинается тряска. Предлагается решение проблемы от одной gamedev студии: создать локальные мировые координаты с камерой в центре. Как это сделать - без понятия, еще не копал. Но думаю, развивать нужно именно это направление. А может попробовать в видовых координатах расчеты худа вести? В видовых точность выше.

Сообщение отредактировал Zagolski - 04.02.2020, 07:12
Перейти в начало страницы
 

242 страниц V  « < 219 220 221 222 223 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.04.2024, 09:13