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

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

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

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

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

> Закрома Родины
Trollz0r
сообщение 28.04.2014, 17:03
Сообщение #1


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

Репутация:   1357  
Группа: Участник
Сообщений: 1155
Награды: 5
Регистрация: 28.05.2010




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


Тема для разгрузки общего обсуждения ЛА от непрофильных разговоров smile.gif

Ссылки на архивы постить запрещено, но ведь не запрещено обсуждать их содержимое!


--------------------
Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
---------------
------------
----------
--------
------
----
--
Перейти в начало страницы
 
191 страниц V  « < 176 177 178 179 180 > »   
Начать новую тему
Ответов (3540 - 3559)
RedMagic
сообщение 04.08.2015, 10:49
Сообщение #3541


Высший Игровой Бог
************************

Репутация:   1747  
Группа: Супермодератор
Сообщений: 12594
Награды: 15
Регистрация: 05.11.2009




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


Цитата(Forser @ 04.08.2015, 10:25) *
Release - релизная сборка.

Добавлю что там ещё компилятор делает оптимизацию кода, из-за чего иногда Release версия работает не так как Debug версия.


--------------------
Перейти в начало страницы
 
ForserX
сообщение 04.08.2015, 11:26
Сообщение #3542


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

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




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


Цитата(STALKER2011x @ 04.08.2015, 11:44) *
Цитата(Forser @ 04.08.2015, 10:25) *
Release - релизная сборка.

Добавлю что там ещё компилятор делает оптимизацию кода, из-за чего иногда Release версия работает не так как Debug версия.

Оптимизацию кода можно в настройках включить/выключить. Но в целом - да.


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

В армии по 01.07.2020.
Перейти в начало страницы
 
MegaNub
сообщение 04.08.2015, 14:01
Сообщение #3543


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

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




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


Цитата(Forser @ 04.08.2015, 11:01) *
Меня OpenDE устраивает и интересно посмотреть на его новую версию.

Всё равно не понимаю смысла.
Перейти в начало страницы
 
nikita_nz1986
сообщение 04.08.2015, 20:01
Сообщение #3544


Геймер
******

Репутация:   11  
Группа: Участник
Сообщений: 133
Награды: 2
Регистрация: 17.09.2014




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


С Божьей помощью почти закончил пда делать и худ.
Видео
Перейти в начало страницы
 
Shoкer
сообщение 04.08.2015, 23:53
Сообщение #3545


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

Репутация:   2153  
Группа: Участник
Сообщений: 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: Причём это же вполне возможно касается и текстур. Ещё не тестировал, но м.б удастся поднять их чёткость.


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
RayTwitty
сообщение 05.08.2015, 02:03
Сообщение #3546


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

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




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


Shoкer, было бы неплохо во всех 3-х играх запилить возможность юзать нормальные качественные модели, которые бы не коцались экспортером\игрой.

Еще, надо бы добавить поддержку 16-битных анимаций в двиг и в СДК...

Сообщение отредактировал Shadows - 05.08.2015, 02:04


--------------------
Перейти в начало страницы
 
Stalker_Monolit
сообщение 05.08.2015, 02:29
Сообщение #3547


Опытный Геймер
*******

Репутация:   17  
Группа: Участник
Сообщений: 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

Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? huh.gif

Сообщение отредактировал Stalker_Monolit - 05.08.2015, 02:31


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

Перейти в начало страницы
 
nikita_nz1986
сообщение 05.08.2015, 14:06
Сообщение #3548


Геймер
******

Репутация:   11  
Группа: Участник
Сообщений: 133
Награды: 2
Регистрация: 17.09.2014




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


Цитата(Stalker_Monolit @ 05.08.2015, 03:24) *
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

Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? huh.gif

А зачем?Я ведь тоже самое пилю, скоро солью бету.

Цитата(Stalker_Monolit @ 05.08.2015, 03:24) *
Вечер провозился с этой энциклопедией которую я хочу впилят в ПДА ЧН но пока не получается, пока на этом остановился. Может у кого есть уже готовый? huh.gif

Иль ты хочешь впереди планеты всей?
Перейти в начало страницы
 
SkyLoader
сообщение 05.08.2015, 19:43
Сообщение #3549


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

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




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


Раз тов.Shoкer решил полезной инфы скинуть, внесу свои две лепты smile.gif
Копался в полосе загрузки, нашел ошибку, по которой полоса загрузки рисуется не совсем корректно в синглплеере в ЗП. В 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 biggrin.gif Именно это и проверяется. Из-за этого для игры переменная max_load_stage всегда равна 14. Поэтому в ЗП полоса загрузки очень быстро достигает конца и долго висит.
Скорее всего разраб хотел проверить существование "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();
}


Теперь полоса загрузки будет более плавно идти.
Как я понял, такая ошибка есть и в ТЧ и в ЧН.
Перейти в начало страницы
 
-StalkMen-
сообщение 05.08.2015, 19:46
Сообщение #3550


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

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




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


SkyLoader,
Разве этого мало?
Код
g_pGamePersistent->GameType() == eGameIDSingle
Перейти в начало страницы
 
SkyLoader
сообщение 05.08.2015, 19:52
Сообщение #3551


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

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




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


Цитата(-StalkMen- @ 05.08.2015, 20:41) *
SkyLoader,
Разве этого мало?
Код
g_pGamePersistent->GameType() == eGameIDSingle

Может большинству людей этого достаточно, только я привык просто исправлять баг, а не удалять чье-то, чтобы потом это не всплыло где-нибудь. Ну тут может и не опасно оставить только одну проверку smile.gif
Перейти в начало страницы
 
RayTwitty
сообщение 05.08.2015, 19:55
Сообщение #3552


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

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




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


QUOTE (-StalkMen- @ 05.08.2015, 19:41) *
Разве этого мало?

Сингл можно без алайфа запустить.

З.Ы.
CODE
if (g_pGamePersistent->GameType() == eGameIDSingle && (!xr_strcmp(p.m_alife, "alife") || strstr(Core.Params,"alife")))

лучше наверно так. Ключ alife используется же где-то.

Сообщение отредактировал Shadows - 05.08.2015, 20:06


--------------------
Перейти в начало страницы
 
SkyLoader
сообщение 05.08.2015, 20:17
Сообщение #3553


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

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




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


Цитата(Shadows @ 05.08.2015, 20:50) *
Цитата(-StalkMen- @ 05.08.2015, 19:41) *
Разве этого мало?

Сингл можно без алайфа запустить.

З.Ы.
Код
if (g_pGamePersistent->GameType() == eGameIDSingle && (!xr_strcmp(p.m_alife, "alife") || strstr(Core.Params,"alife")))

лучше наверно так. Ключ alife используется же где-то.

Ключи обычно пишутся с черточкой "-alife" ;) Во всяком случае нигде больше использования этого ключа в движке я не нашел.
Перейти в начало страницы
 
Stalker_Monolit
сообщение 05.08.2015, 21:44
Сообщение #3554


Опытный Геймер
*******

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




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


Цитата(nikita_nz1986 @ 05.08.2015, 14:01) *
А зачем?Я ведь тоже самое пилю, скоро солью бету.

Это прекрасно laugh.gif
Цитата(nikita_nz1986 @ 05.08.2015, 14:01) *
Иль ты хочешь впереди планеты всей?

я некуда не спешу dry.gif если бы я знал что этим ты занимаешься я бы не тратил время а просто попросил у тебя уже готовый экземпляр.

Сообщение отредактировал Stalker_Monolit - 05.08.2015, 21:45


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

Перейти в начало страницы
 
macron
сообщение 05.08.2015, 21:44
Сообщение #3555


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




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


Цитата(SkyLoader @ 05.08.2015, 21:12) *
Ключи обычно пишутся с черточкой "-alife" wink.gif Во всяком случае нигде больше использования этого ключа в движке я не нашел.

Еще через дробь:

start server(all/single/alife/new) client(localhost)
Перейти в начало страницы
 
nikita_nz1986
сообщение 06.08.2015, 06:27
Сообщение #3556


Геймер
******

Репутация:   11  
Группа: Участник
Сообщений: 133
Награды: 2
Регистрация: 17.09.2014




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


Всем доброго утра, вопрос:а если взять модель камыша и добавить в неё пару костей и закрепить что бы не перемещалась по террейну, будет ли она сгибаться или надо анимацию сделать?
Так же можно по типу зеркала только назначить другой шейдер например не window, а model, при стрельбе будет ломаться.

Сообщение отредактировал nikita_nz1986 - 06.08.2015, 06:29
Перейти в начало страницы
 
jamakasi
сообщение 06.08.2015, 08:42
Сообщение #3557


Доктор Игровых Наук
*******************

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




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


nikita_nz1986, Если мне память не изменяет в движке такая система уже есть и костей ей не нужно. Как пример все деревья на картах имею свойство покачивания, интенсивность прописана в конфигах и есть консольные команды для усиления эффекта(не помню к сожалению какие именно). Реализуется это с помощью шейдера от деревьев, компилятор уровня на этапе компиляции находит этот шейдер и маслает эти модели(деревья).
Т.е. в идеале чтобы получить задуманное тебе нужно найти в движке функции отвечающие за качание деревьев или травы, скопипасть его и применять на новый тип (кусты\камыши) со своими настройками и консольными командами(камыш например легче чем дерево и соответсвенно ему надо будет прибавить силу и интенсивность покачивания в отличии от деревьев). Дальше взять шейдер дерева и подправить под твои нужды(партиклы от попадания пули и т.д.) а так же можно скомбинировать его с шейдером стекла чтобы он разрушался(в сталке этот шейдер кривой до ужаса и если его применять к объектам получаются волшебные вещи, кажется макрон эксперементировал с этим и даже видео выкладывал как ломаются объекты под действием шейдера этого, в кратце система разрушения работает по принципу того что компилятор бьет модель с этим шейдером на мелкие модели размером с полигон в начальном состоянии они не подвержены физики тел т.е. если ты у дерево полностью разбил основание то верхняя часть остается в воздухе).
Перейти в начало страницы
 
nikita_nz1986
сообщение 06.08.2015, 18:35
Сообщение #3558


Геймер
******

Репутация:   11  
Группа: Участник
Сообщений: 133
Награды: 2
Регистрация: 17.09.2014




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


Цитата(jamakasi @ 06.08.2015, 09:37) *
nikita_nz1986, Если мне память не изменяет в движке такая система уже есть и костей ей не нужно. Как пример все деревья на картах имею свойство покачивания, интенсивность прописана в конфигах и есть консольные команды для усиления эффекта(не помню к сожалению какие именно). Реализуется это с помощью шейдера от деревьев, компилятор уровня на этапе компиляции находит этот шейдер и маслает эти модели(деревья).
Т.е. в идеале чтобы получить задуманное тебе нужно найти в движке функции отвечающие за качание деревьев или травы, скопипасть его и применять на новый тип (кусты\камыши) со своими настройками и консольными командами(камыш например легче чем дерево и соответсвенно ему надо будет прибавить силу и интенсивность покачивания в отличии от деревьев). Дальше взять шейдер дерева и подправить под твои нужды(партиклы от попадания пули и т.д.) а так же можно скомбинировать его с шейдером стекла чтобы он разрушался(в сталке этот шейдер кривой до ужаса и если его применять к объектам получаются волшебные вещи, кажется макрон эксперементировал с этим и даже видео выкладывал как ломаются объекты под действием шейдера этого, в кратце система разрушения работает по принципу того что компилятор бьет модель с этим шейдером на мелкие модели размером с полигон в начальном состоянии они не подвержены физики тел т.е. если ты у дерево полностью разбил основание то верхняя часть остается в воздухе).

Всё верно, но стекло бьётся не зависимо от шейдера, там не много иная система.
Перейти в начало страницы
 
Kontro-zzz
сообщение 06.08.2015, 20:38
Сообщение #3559


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

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




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


Цитата
или надо анимацию сделать?

таким способом тоже можно, но это уже будет динамический объект.
И кстати при коллизиях возможны баги, хотя может быть разрешимые.

Сообщение отредактировал Kontro-zzz - 06.08.2015, 20:43


--------------------
Будиш маму-папу слушать
Будиш ты канфеты кушать!
© Операция «Ы»
Перейти в начало страницы
 
RayTwitty
сообщение 06.08.2015, 22:10
Сообщение #3560


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

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




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


А ни у кого не было проблем при компиляции xrParticles.dll? Точнее, не при компиляции, а при загрузке игры со скомпиленным бинарником - с ним игра валится на стадии "Загрузка ИИ-объектов" без вменяемого лога.

Знаю точно, что такая проблема еще была у _призрак_, но он вроде её вылечил и\или забил...

З.Ы. вообще, проблема "фиксится" подсовыванием оной либы из 6 патча, но все-таки хочется разобраться в чем проблема, чтобы постоянно пути проекта не менять, хочется же дебажить нормально biggrin.gif

З.Ы2. VS2010, win7 64, сырцы - самые первые слитые, 1.0007rc1, те что в репо на xp-dev.

З.Ы3. либа не изменялась.

Сообщение отредактировал Shadows - 06.08.2015, 22:29


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

191 страниц V  « < 176 177 178 179 180 > » 
Тема закрытаНачать новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.06.2024, 21:18