![]() |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
![]() |
![]()
Сообщение
#1
|
|
![]() Почти Мастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 ![]() |
Тема для разгрузки общего обсуждения ЛА от непрофильных разговоров
![]() Ссылки на архивы постить запрещено, но ведь не запрещено обсуждать их содержимое! -------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
![]() |
![]()
Сообщение
#3541
|
|
![]() Высший Игровой Бог Репутация: ![]() ![]() Группа: Супермодератор Сообщений: 12594 Награды: 15 Регистрация: 05.11.2009 ![]() |
Release - релизная сборка. Добавлю что там ещё компилятор делает оптимизацию кода, из-за чего иногда Release версия работает не так как Debug версия. -------------------- |
 
|
|
|
|
![]()
Сообщение
#3542
|
|
![]() Почти Игроман Репутация: ![]() ![]() Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 ![]() |
Release - релизная сборка. Добавлю что там ещё компилятор делает оптимизацию кода, из-за чего иногда Release версия работает не так как Debug версия. Оптимизацию кода можно в настройках включить/выключить. Но в целом - да. -------------------- В армии по 01.07.2020. |
 
|
|
![]()
Сообщение
#3543
|
|
![]() Продвинутый геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 322 Награды: 3 Регистрация: 01.05.2014 ![]() |
|
 
|
|
![]()
Сообщение
#3544
|
|
Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 133 Награды: 2 Регистрация: 17.09.2014 ![]() |
С Божьей помощью почти закончил пда делать и худ.
Видео |
 
|
|
![]()
Сообщение
#3545
|
|
![]() Кандидат Игровых Наук Репутация: ![]() ![]() Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 ![]() |
Вообщем в продолжение прошлого поста.
Как я уже писал в том посте - 12.f это максимальные\минимальные координаты вертекса относительно центра модели. Это число не только влияет на размер модели, но также на её качество. Т.к 4-байтный float пакуется в 2-байтный short, то с помощью этого числа можно было жертвовать размером модели, оставляя больше бит на точность, и наоборот - жертвовать точностью ради размера модели. GSC остановились на среднем значении в 12 метров. Для сравнения: Так модель должна выглядеть в идеале (тут есть косяки, но на скрине их не видно) ![]() Так она выглядит в оригинале ![]() Так она выглядит, если вместо 12.f взять 1.f ![]() На первый взгляд кажется нормальной, однако по сравнению с "идеалом" можно увидеть угловатость и пару проблемных мест. А вот модель игрока - как видно выше 1 метра модель обрезалась: ![]() А так она выглядит, если вместо 12.f взять 24.f, разница на лицо ![]() Максимальная длина модели увеличивается до 24 метров, однако точность падает в разы. Причём сама модель в ogf-е нормальная. Её ломает игра при рендеринге. Собственно для оптимизации игры координаты вертексов (+ текстурные координаты) и пакуются в 2 байта. Однако если не паковать координаты, а передавать их как float, то мы: 1) Получим качество модели как на 3-ем скрине. (не идеальное, к слову - нужно выделить больше бит на точность, и поменьше на длину) 2) Значительно поднимем максимальные размеры модели, а на практике избавляемся от лимитов. ![]() Конечно побочным эффектом этого становится пока неопределённое падение производительности (каждый вертекс кушает на 2 байта видеопамяти больше, как минимум), однако ничего не мешает рендерить в высоком качестве только определённые модели, указывая их в каком нибудь ltx или в самом ogf-е файле флаг добавить. Файлы тестов выложу чуть попозже, хочу ещё кое что доделать. Но если кому то интересно, то в движке менялся лишь файл FSkinned.cpp, а в шейдерах файл r2\skin.h. PS: Причём это же вполне возможно касается и текстур. Ещё не тестировал, но м.б удастся поднять их чёткость. -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
![]()
Сообщение
#3546
|
|
![]() Игровой Бог Репутация: ![]() ![]() Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 ![]() |
Shoкer, было бы неплохо во всех 3-х играх запилить возможность юзать нормальные качественные модели, которые бы не коцались экспортером\игрой.
Еще, надо бы добавить поддержку 16-битных анимаций в двиг и в СДК... Сообщение отредактировал Shadows - 05.08.2015, 02:04 -------------------- |
 
|
|
![]()
Сообщение
#3547
|
|
![]() Опытный Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 161 Награды: 3 Регистрация: 08.03.2015 ![]() |
CODE Ошибка 2 error C2039: UITitleText: не является членом "CUIFrameLineWnd" x:\engine\xrGame\UIEncyclopediaWnd.cpp 125 Ошибка 3 error C2228: выражение слева от ".SetText" должно представлять класс, структуру или объединение x:\engine\xrGame\UIEncyclopediaWnd.cpp 125 Ошибка 4 error C2027: использование неопределенного типа "CUIEncyclopediaWnd" x:\engine\xrGame\ui\UIPdaWnd.cpp 101 Ошибка 5 error C2227: выражение слева от "->Init" должно указывать на тип класса, структуры или объединения либо на универсальный тип x:\engine\xrGame\ui\UIPdaWnd.cpp 101 Ошибка 6 error C2440: =: невозможно преобразовать 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 205 Ошибка 7 error C2446: ==: нет преобразования 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 282 Ошибка 8 error C2440: ==: невозможно преобразовать 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 282 Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? ![]() Сообщение отредактировал Stalker_Monolit - 05.08.2015, 02:31 -------------------- |
 
|
|
![]()
Сообщение
#3548
|
|
Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 133 Награды: 2 Регистрация: 17.09.2014 ![]() |
CODE Ошибка 2 error C2039: UITitleText: не является членом "CUIFrameLineWnd" x:\engine\xrGame\UIEncyclopediaWnd.cpp 125 Ошибка 3 error C2228: выражение слева от ".SetText" должно представлять класс, структуру или объединение x:\engine\xrGame\UIEncyclopediaWnd.cpp 125 Ошибка 4 error C2027: использование неопределенного типа "CUIEncyclopediaWnd" x:\engine\xrGame\ui\UIPdaWnd.cpp 101 Ошибка 5 error C2227: выражение слева от "->Init" должно указывать на тип класса, структуры или объединения либо на универсальный тип x:\engine\xrGame\ui\UIPdaWnd.cpp 101 Ошибка 6 error C2440: =: невозможно преобразовать 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 205 Ошибка 7 error C2446: ==: нет преобразования 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 282 Ошибка 8 error C2440: ==: невозможно преобразовать 'CUIEncyclopediaWnd *' в 'CUIWindow *' x:\engine\xrGame\ui\UIPdaWnd.cpp 282 Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? ![]() А зачем?Я ведь тоже самое пилю, скоро солью бету. Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? ![]() Иль ты хочешь впереди планеты всей? |
 
|
|
![]()
Сообщение
#3549
|
|
Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 614 Награды: 4 Регистрация: 03.05.2012 ![]() |
Раз тов.Shoкer решил полезной инфы скинуть, внесу свои две лепты
![]() Копался в полосе загрузки, нашел ошибку, по которой полоса загрузки рисуется не совсем корректно в синглплеере в ЗП. В x_ray.cpp есть такой код: Код void CApplication::LoadStage() { load_stage++; VERIFY(ll_dwReference); Msg("* phase time: %d ms", phase_timer.GetElapsed_ms()); phase_timer.Start(); Msg("* phase cmem: %d K", Memory.mem_usage() / 1024); if (g_pGamePersistent->GameType()==1 && strstr(Core.Params,"alife")) max_load_stage = 17; else max_load_stage = 14; LoadDraw(); } Как можно заметить по названию, max_load_stage, это переменная, которая показывает количество стадий загрузки, т.е. загрузка моделей, шейдеров, звуков, синхронизация объектов и тд. В сингле их целых 17, в мультиплеере 14. Вот эту переменную потом получает рендер и рисует шкалу загрузки в соответствии с текущей стадией загрузки. Но тут есть ошибка, а именно сравнение strstr(Core.Params,"alife"). Но у нас никогда не происходит такого, так как никто не пишет батник запуска игры с добавлением alife ![]() Скорее всего разраб хотел проверить существование "alife", который мы видим в скрипте ui_main_menu.script в функции старта новой игры: Код console:execute("start server(all/single/alife/new) client(localhost)") В общем, надо сделать нормальную проверку на наличие "alife" в параметрах игры. Выглядит примерно так: Код void CApplication::LoadStage() { load_stage++; VERIFY(ll_dwReference); Msg("* phase time: %d ms", phase_timer.GetElapsed_ms()); phase_timer.Start(); Msg("* phase cmem: %d K", Memory.mem_usage() / 1024); typedef IGame_Persistent::params params; params &p = g_pGamePersistent->m_game_params; if (g_pGamePersistent->GameType() == eGameIDSingle && !xr_strcmp(p.m_alife, "alife")) max_load_stage = 17; else max_load_stage = 14; LoadDraw(); } Теперь полоса загрузки будет более плавно идти. Как я понял, такая ошибка есть и в ТЧ и в ЧН. |
 
|
|
![]()
Сообщение
#3550
|
|
![]() Продвинутый геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 234 Награды: 3 Регистрация: 27.10.2010 ![]() |
SkyLoader,
Разве этого мало? Код g_pGamePersistent->GameType() == eGameIDSingle
|
 
|
|
![]()
Сообщение
#3551
|
|
Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 614 Награды: 4 Регистрация: 03.05.2012 ![]() |
SkyLoader, Разве этого мало? Код g_pGamePersistent->GameType() == eGameIDSingle Может большинству людей этого достаточно, только я привык просто исправлять баг, а не удалять чье-то, чтобы потом это не всплыло где-нибудь. Ну тут может и не опасно оставить только одну проверку ![]() |
 
|
|
![]()
Сообщение
#3552
|
|
![]() Игровой Бог Репутация: ![]() ![]() Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 ![]() |
Разве этого мало? Сингл можно без алайфа запустить. З.Ы. CODE if (g_pGamePersistent->GameType() == eGameIDSingle && (!xr_strcmp(p.m_alife, "alife") || strstr(Core.Params,"alife"))) лучше наверно так. Ключ alife используется же где-то. Сообщение отредактировал Shadows - 05.08.2015, 20:06 -------------------- |
 
|
|
![]()
Сообщение
#3553
|
|
Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 614 Награды: 4 Регистрация: 03.05.2012 ![]() |
Разве этого мало? Сингл можно без алайфа запустить. З.Ы. Код if (g_pGamePersistent->GameType() == eGameIDSingle && (!xr_strcmp(p.m_alife, "alife") || strstr(Core.Params,"alife"))) лучше наверно так. Ключ alife используется же где-то. Ключи обычно пишутся с черточкой "-alife" ;) Во всяком случае нигде больше использования этого ключа в движке я не нашел. |
 
|
|
![]()
Сообщение
#3554
|
|
![]() Опытный Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 161 Награды: 3 Регистрация: 08.03.2015 ![]() |
А зачем?Я ведь тоже самое пилю, скоро солью бету. Это прекрасно ![]() Иль ты хочешь впереди планеты всей? я некуда не спешу ![]() Сообщение отредактировал Stalker_Monolit - 05.08.2015, 21:45 -------------------- |
 
|
|
![]()
Сообщение
#3555
|
|
![]() Игровой Бог Репутация: ![]() ![]() Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 ![]() |
|
 
|
|
![]()
Сообщение
#3556
|
|
Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 133 Награды: 2 Регистрация: 17.09.2014 ![]() |
Всем доброго утра, вопрос:а если взять модель камыша и добавить в неё пару костей и закрепить что бы не перемещалась по террейну, будет ли она сгибаться или надо анимацию сделать?
Так же можно по типу зеркала только назначить другой шейдер например не window, а model, при стрельбе будет ломаться. Сообщение отредактировал nikita_nz1986 - 06.08.2015, 06:29 |
 
|
|
![]()
Сообщение
#3557
|
|
![]() Доктор Игровых Наук Репутация: ![]() ![]() Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 ![]() |
nikita_nz1986, Если мне память не изменяет в движке такая система уже есть и костей ей не нужно. Как пример все деревья на картах имею свойство покачивания, интенсивность прописана в конфигах и есть консольные команды для усиления эффекта(не помню к сожалению какие именно). Реализуется это с помощью шейдера от деревьев, компилятор уровня на этапе компиляции находит этот шейдер и маслает эти модели(деревья).
Т.е. в идеале чтобы получить задуманное тебе нужно найти в движке функции отвечающие за качание деревьев или травы, скопипасть его и применять на новый тип (кусты\камыши) со своими настройками и консольными командами(камыш например легче чем дерево и соответсвенно ему надо будет прибавить силу и интенсивность покачивания в отличии от деревьев). Дальше взять шейдер дерева и подправить под твои нужды(партиклы от попадания пули и т.д.) а так же можно скомбинировать его с шейдером стекла чтобы он разрушался(в сталке этот шейдер кривой до ужаса и если его применять к объектам получаются волшебные вещи, кажется макрон эксперементировал с этим и даже видео выкладывал как ломаются объекты под действием шейдера этого, в кратце система разрушения работает по принципу того что компилятор бьет модель с этим шейдером на мелкие модели размером с полигон в начальном состоянии они не подвержены физики тел т.е. если ты у дерево полностью разбил основание то верхняя часть остается в воздухе). |
 
|
|
![]()
Сообщение
#3558
|
|
Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 133 Награды: 2 Регистрация: 17.09.2014 ![]() |
nikita_nz1986, Если мне память не изменяет в движке такая система уже есть и костей ей не нужно. Как пример все деревья на картах имею свойство покачивания, интенсивность прописана в конфигах и есть консольные команды для усиления эффекта(не помню к сожалению какие именно). Реализуется это с помощью шейдера от деревьев, компилятор уровня на этапе компиляции находит этот шейдер и маслает эти модели(деревья). Т.е. в идеале чтобы получить задуманное тебе нужно найти в движке функции отвечающие за качание деревьев или травы, скопипасть его и применять на новый тип (кусты\камыши) со своими настройками и консольными командами(камыш например легче чем дерево и соответсвенно ему надо будет прибавить силу и интенсивность покачивания в отличии от деревьев). Дальше взять шейдер дерева и подправить под твои нужды(партиклы от попадания пули и т.д.) а так же можно скомбинировать его с шейдером стекла чтобы он разрушался(в сталке этот шейдер кривой до ужаса и если его применять к объектам получаются волшебные вещи, кажется макрон эксперементировал с этим и даже видео выкладывал как ломаются объекты под действием шейдера этого, в кратце система разрушения работает по принципу того что компилятор бьет модель с этим шейдером на мелкие модели размером с полигон в начальном состоянии они не подвержены физики тел т.е. если ты у дерево полностью разбил основание то верхняя часть остается в воздухе). Всё верно, но стекло бьётся не зависимо от шейдера, там не много иная система. |
 
|
|
![]()
Сообщение
#3559
|
|
![]() Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 594 Награды: 3 Регистрация: 26.10.2012 ![]() |
Цитата или надо анимацию сделать? таким способом тоже можно, но это уже будет динамический объект. И кстати при коллизиях возможны баги, хотя может быть разрешимые. Сообщение отредактировал Kontro-zzz - 06.08.2015, 20:43 -------------------- Будиш маму-папу слушать
Будиш ты канфеты кушать! © Операция «Ы» |
 
|
|
![]()
Сообщение
#3560
|
|
![]() Игровой Бог Репутация: ![]() ![]() Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 ![]() |
А ни у кого не было проблем при компиляции xrParticles.dll? Точнее, не при компиляции, а при загрузке игры со скомпиленным бинарником - с ним игра валится на стадии "Загрузка ИИ-объектов" без вменяемого лога.
Знаю точно, что такая проблема еще была у _призрак_, но он вроде её вылечил и\или забил... З.Ы. вообще, проблема "фиксится" подсовыванием оной либы из 6 патча, но все-таки хочется разобраться в чем проблема, чтобы постоянно пути проекта не менять, хочется же дебажить нормально ![]() З.Ы2. VS2010, win7 64, сырцы - самые первые слитые, 1.0007rc1, те что в репо на xp-dev. З.Ы3. либа не изменялась. Сообщение отредактировал Shadows - 06.08.2015, 22:29 -------------------- |
 
|
|
![]() ![]() |
Текстовая версия | Сейчас: 16.06.2024, 21:18 |