1. Для общения на форуме, в чате или личной переписке наличие аватара ОБЯЗАТЕЛЬНО!

Настройка и оптимизация игры.

Тема в разделе "Модифицирование графики в "Сталкере"", создана пользователем darkstalker8509, 25 май 2014.

  1. darkstalker8509

    darkstalker8509 Гость

    Подготовка x-Ray к новой графике. Программа CFF-Explorer.

    Итак, для начала ссылка на сырой Сталкер, с патчами от 4 до 6 -

    С установочником

    1 - https://docs.google.com/file/d/0B3y6BjuBxf-6M0Nxd2twYmdjY0k/edit
    2 - https://docs.google.com/file/d/0B3y6BjuBxf-6RXZjWXowUHFpSjQ/edit
    3 - https://docs.google.com/file/d/0B3y6BjuBxf-6T01NX3NfXzdSdlE/edit
    4 - https://docs.google.com/file/d/0B3y6BjuBxf-6MkRqSE9JbndUZWM/edit
    5 - https://docs.google.com/file/d/0B3y6BjuBxf-6TWEzbTRqNnQ0VG8/edit
    6 - https://docs.google.com/file/d/0B3y6BjuBxf-6MDhCUE9aTldVeVE/edit
    7 - https://docs.google.com/file/d/0B3y6BjuBxf-6Q0tPQmthSUN5TE0/edit

    В архивах с патчем 1.0006, улучшенными рендерами и пропатченным на использование памяти exe-шником

    1 - https://drive.google.com/open?id=0B3y6BjuBxf-6M2hIWWFJTHhlRWM&authuser=0
    2 - https://drive.google.com/open?id=0B3y6BjuBxf-6Unh6RUtqS3RBVWM&authuser=0
    3 - https://drive.google.com/open?id=0B3y6BjuBxf-6MGFTOHJMYTMwek0&authuser=0
    4 - https://drive.google.com/open?id=0B3y6BjuBxf-6WVFTMVdmd0ptNWc&authuser=0


    Всё внутри. Ставим игру, ставим нужный патч, затем устанавливаем No DVD пользуясь специальной программой, которая прилагается там же. После этого читаем всё что ниже.

    Прежде чем устанавливать разные дополнения к графике, необходимо понимать, что сам x-Ray к такому отнесётся не очень хорошо. А именно - начнутся разные вылеты, связанные с нехваткой памяти. Причём их будет много и они будут сильно докучать - вспомните хотя бы первые выпуски Народной Солянки, а много ли Сталкеров задумывалось над тем почему там было такое кол-во вылетов (ну разумеется не считая скриптовых)?... Так вот, происходят эти вылеты из-за того что сам движок разрабатывался в те годы, когда даже 4 Гб оперативной памяти было в диковинку, а что уж говорить про большее её кол-во. И поэтому сам движок никто и не думал в GSC подгонять под 5 и более Гб. Это давало возможность использовать нетребовательные по совр. меркам шейдеры и текстуры. Само собой всё поменялось с моддингом, и тут началось! Сначала Фотозона, потом Atmosfear CoP, потом др. и т.д. Все эти моды использовали размеры текстур мин в два раза большие чем оригинальные, и если движок ЗП и ЧН ещё как-то тянул такое, то старенький x-ray ТЧ просто устроил забастовку. Умные люди поняли, что с этим делать, и вскоре начали появляться сначала exe-шники пропатченные на 4Gb, а потом и сами 3GB-Patcher-ы, и прочие программы которые как бы делали готовое. Но лично я уже тогда понял, что бесплатный сыр только в мышеловке. перерыв горы страниц на форумах, в итоге нашёл программу, которая не автоматически (с лагами всякими), а в ручную патчила exe-шник. Называется она CFF-Explorer, вот ссылка -

    (https://docs.google.com/file/d/0B3y6BjuBxf-6czBKMVVwRmpXRFE/edit)
    Скачиваем, распаковываем, а потом включаем наш ЦП в голове и читаем readme с моими пояснениями. Учиться её ипользовать необходимо, потому что во-первых она не просто патчит, а вообще снимает ограничения на использование памяти движком. Во-вторых подходит для ВСЕХ игр вообще. В-третьих, из-за ручного пропатчивания ошибки связанные с самой программой и её совместимостью с ОС исключены.
     
    7 пользователям это понравилось.
  2. darkstalker8509

    darkstalker8509 Гость

    Шейдеры и оптимизация

    Немного теории на более менее понятном языке :)
    Все, кто сталкивался с необходимостью или желанием что-то поменять в графике игре, рано или поздно задавался несколькими вопросами: Что же это за слово такое - "шейдеры"? Чем шейдеры отличаются от рендеров? Где в Сталкере шейдеры, а где рендеры. Перед тем как начать отвечать, снова напоминаю для "знатоков" дела - если вам товарищи, что-то не понравится в моих объяснениях - прошу вон из темы - делать собственный её вариант. Приступим. Шейдер - это по сути скрипт. И настраивается он с помощью Блокнота и ему подобных программ. Рендер отличается от шейдера тем, что это не скрипт а библиотека работающая с эффектами освещения и их создающая (в то время как шейдер - их настраивает). Т.е. рендер - это dll-файл. В ТЧ рендеры - это те самые статическое, динамическое и полное динамическое освещения объектов. Лежат они в папке Bin, под видом неприметных файлов - xrRender_R1.dll (отвечает за dx8) и xrRender_R1.dll (в ответе за любимый многими dx9). В случае ЧН - там есть ещё xrRender_R3.dll (отвечает за dx10), а в случае ЗП - ещё и xrRender_R4.dll (dx11) - самая стабильная, продвинутая и доработанная версия - минус - жрёт больше всего ресурсов игры. Т.е когда мы в игровом меню переключаем тип освещения - мы и выбираем эти самые рендеры. А шейдеры - уже потом вступают в игру, когда мы, выбрав рендер и перезапустив Сталкер, загружаем сохранку. Шейдеры поясняют игровому движку (в нашем случае - это x-Ray) что и как ему отображать при данном рендере. За шейдеры отвечают папка с громким названием shaders, что в корне gamedata, а также два малоприметных файла - shaders.xr и shaders_xrlc.xr. Последние двое ответственны за взаимодействие с разными партиклами и прочие ненужные нам тонкости.

    Почему необходимо уметь настраивать и оптимизировать шейдеры:
    Мне довольно часто приходилось объяснять отдельным людям - как настроить и как оптимизировать шейдеры. С настройкой всё понятно - многие хотят сделать свой мод более атмосферным и отличным от др., и в таких случаях просто необходимо др. нежели в оригинале, игровое освещение. Но что и зачем оптимизировать? Обо всём этом сейчас и поговорим. Во-первых давайте разберёмся - многие ли из нас умеют сами писать шейдеры? Я думаю ответ очевиден - во всём сталкерском моддинге, лично я слышал только о таких товарищах, как sky4ce, Meltac, -=Diablo=- и KD87, работы которых мы все встречали в таких модах как Complete, LURK, OGSE, История прибоя и обе Осенних Авроры. Скажу по секрету - в почти ВСЕХ (!) др. модах тоже их работы, но комбинированные авторами этих модов, по-разному. Так вот, раз сами не можем написать шейдеры, то перед началом нам нужно выбрать базу - одну из работ, упомянутых выше товарищей. Они для нас и старались. Так как принципы редактирования одинаково применимы ко всем шейдерным базам, независимо от автора, то рассматривать мы будем наиболее полный вариант от sky4ce, а на его примере разберём остальные.
    Многие из нас наверняка сталкивались с тем, что в некоторых модах на динамическом и полном динамическом освещениях сильно проседает fps (частота кадров в секунду игрового времени). Выражается это в сильных подтормаживаниях игры и играть становится невозможно. И эта проблема актуальна не только для слабых ПК. Почему? Да потому что тормозить будет не только тогда когда железа не хватает, но и тогда, когда x-ray не знает что делать с теми или иными эффектами. Т.е очень часто мы имеем дело с тормозами не по железу, а по движку. Что же делать? Отключать лишние эффекты в шейдерах и тем самым оптимизировать игру.

    Отключение лишних эффектов.
    Пояснения на примере полной версии от sky4ce (в разных модах. как я уже говорил по-разному намешаны шейдеры, но суть не меняется - иерархия и структура папок - одинакова, но при этом нек. пункты могут называться по др.). Заранее рекомендую, скачать в теме "Программы для моддинга", Total Commander и Notepad++. С этими прогами будет очень просто всё сделать. Сначала идём в паку gamedata и ищем там упомянутую папку shaders. После этого, зайдя в shaders, видим там примерно такое - http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999416?page=0 В r1 и shared не лезем, нам нужна только папка r2. Заходим в неё и видим кучу разных файлов - http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999417?page=0 Отфильтровав в Commander-е все по типу "А", ищем там файл "SkyGRAPHICS_options.cfg" - "B". Иногда вместо "SkyGRAPHICS_options.cfg", может быть файл "ShaderSettings.txt", как например тут - http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999418?page=0 вообще-то могут быть и др. названия - это не суть важно, главное содержание этого файла. Итак, открываем с пом. Notepad++ файл "SkyGRAPHICS_options.cfg", и видим это - http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999419?page=0 красными цифрами я отметил те пункты, которые нужно отключить для оптимизации. Так как это всё скрипт, то отключать надо, ставя двойной слэш перед "#define...". Т.е., например, если написано "#define SSAO" - то значит это самое SSAO работает, а если написано "//#define SSAO" - то выключено. Вот пример когда выключены ВСЕ дополнительные шейдерные эффекты (картинка при этом будет как в оригинале ТЧ) - http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999420?page=0 От себя скажу, что для ЛЮБЫХ модов я крайне рекомендую отключать эффекты DEPTH_OF_FIELD и IMPROVED_MBLUR, так как они никак не украшают картинку, но являются прямо-таки пожирателями fps. Тут мы с оптимизацией пока закончим. Подробное пояснение эффектов будет ниже, как и ссылки на шейдеры...

    Ссылки на разные версии шейдеров.

    Все указанные ниже версии, подходят для любого Сталка от 1.0004 до 1.0006 включительно. В "чистом виде" настраиваются только первые две версии. Версия от -=Diablo=- настраивается только скриптово (т.е. она такая, что - не знаешь - не лезь... :) )
    - версия от Meltac (или Float32) - https://docs.google.com/file/d/0B3y6BjuBxf-6enlPc2pjc2JuWlk/edit
    - версия от sky4orce (или Enhanced Shaders) - https://docs.google.com/file/d/0B3y6BjuBxf-6eWNUWEcyNlhpeUk/edit
    - версия от -=Diablo=- (или u3shaders 2.1) - https://docs.google.com/file/d/0B3y6BjuBxf-6Zk1oZk1hTVNvOFk/edit
    - версия от KD87 - https://drive.google.com/open?id=0B3y6BjuBxf-6Rno0MjRlWGVsUnM&authuser=0 - пояснения к ней ниже будут
    Подробная настройка.
    Тут без лишней лирики, перейдём сразу к делу. http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999421?page=0 - на рисунке показаны самые главные настройки, определяющие - что будет включено, а что - нет. Все они поделены на разделы. Общие эффекты - это те, что работают и для второго и для третьего разделов. Т.е. если общие эффекты включены, то они работают постоянно. Второй раздел НЕ БУДЕТ работать, если включен третий. Более того, совместное комбинирование второго и третьего разделов, на половине видеокарт приведёт к вылету. Теперь по порядку.

    Первый раздел
    DEPTH_OF_FIELD - т.н. глубина резкости. Визуальный эффект, который имитирует размытие видимости дальних объектов человеческим глазом. В игре проявляется в том, что удалённые объекты выглядят нереально размытыми. Крайне рекомендую его отключать - красоты в нём нет, а вот ресурс кушает довольно сильно, хотя и не критично.
    PARALLAX_OCCLUSION - эффект увеличивающий рельефность текстур. Текстура будет намного более реалистично выглядеть, но на ВСЕХ(!) видеокартах ATI и слабых картах от N-Vidia, приведёт к сильной просадке fps.
    SSAО - эффект взаимного затемнения рядом стоящих объектов. Хорошо виден в углах, делает картинку более контрастной, красивой и атмосферной, и при это не сильно сажает fps.
    SUN_SHAFTS - недоработанные лучи солнца. Крайне рекомендую выключать.
    USE_SJITTER и USE_SUNMASK - настройки упомянутых лучей. Рекомендую выключать, так как без лучей их не увидеть, а кушать ресурс они любят.

    Второй раздел
    IMPROVED_MBLUR (в некоторых версиях настроек - просто MBLUR) - эффект размытия при движении - сильно сажает fps, а выглядит хоть и красиво но не реалистично - ну не может человек почти слепнуть при повороте головы...
    SATURATION_FILTER - включает зависимость цветонасыщенности окружения от яркости Солнца (подробнее ниже) - очень красивый и атмосферный эффект - при правильных настройках творит чудеса.
    CONTRAST_FILTER - тоже самое, только для контрастности картинки - контраст вырастает, но реализм падает, а при очень высоких значениях вообще сделает темноту в помещениях как ночью...

    Третий раздел
    USE_F32 - включает расширенную систему HDR-эффектов. HDR-эффект, это имитация ослепления, при взгляде на Солнце. В игре проявляется в том, что управляет яркостью всего и всяк в режиме реального времени, подстраивая её под настройки освещения. Заменяет стандартную аналогичную настройку в самом ТЧ. Делает очень реалистичную и атмосферную игру света и тени, да ещё и увеличивает fps (даже по отношению к оригиналу ТЧ). Беда в том что не все видеокарты его поддерживают. Если после его включения, при попытке зайти в игру, последняя зависает, это как раз и значит, что видюха его не поддерживает. Есть правда исключение, с таким зависанием, когда дело не в видюхе. Если используются нестандартные рендеры.
    USE_F32_FOG - специальная обработка тумана для его корректного отображения при включенном f32
    CUSTOM_SHADOW_RESOLUTION int(20480) - изменяет разрешение теней, делая их намного красивее, естественно за счёт fps. В скобках нужно указать любое значение из 256, 512,1024, 2048 или 4096, дописав после значения "ноль" - в зависимости от мощности видео.

    Теперь поговорим об отдельных настройках.
    http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999422?page=0 как я и говорил уже, saturation и contrast - могут сделать чудеса. Так вот, листаем SkyGRAPHICS_options.cfg, в самый конец и ищем там то что на скрине.
    COLOR_SATURATION float(0.25) - это цветовая насыщенность общая для любой яркости Солнца. Если вместо (0.25) поставить (0), картинка БЕЗ солнечного света станет чёрно-белой (например при пасмурной погоде), а если поставить (1.0), то наоборот - яркой, цветастой и пёстрой.
    COLOR_SAT_SUN_COEF float(0.55) - то же самое, только для освещённых солнечным светом поверхностей. (0) - солнце не влияет на цвет, (1) - соответственно увеличивает цветность текстур на 100%. Комбинации из COLOR_SATURATION и COLOR_SAT_SUN_COEF могут действительно магически менять атмосферу. Например если их сделать оба равными нулю, то в игре будет "Город Грехов", только без красно-чёрной гаммы. Будет насыщенное цветом небо (на небо эти параметры не влияют) и чёрно-белый мир...
    CONTRAST_FILTER_COEF float(0.4) - контрастность, настраиваемая также как и насыщенность...

    С настройками float32 тоже всё просто:
    CT_int - настройка яркости HDR на открытой местности. может быть от 0.1f до 10.0f. Настраивать её нужно, постоянно проверяя полученный рез-т в игре, а иначе можно сильно "засветить" картинку
    CT_int_in - то же самое что и CT_int, только для помещений и закрытых от солнечного света, мест. Настраивается также.
    BLOOM_val - дополнительный блум. Может быть от 0.0h (без блума) до 3.0h(очень яркий блум - всё залито светом)
    HDR_int - общий для всех трёх предыдущих настроек, параметр. Бывает от 0.0h(света нигде нет) до 1.0h(светло, в зависимости от настроек CT_int и CT_int_in)

    Ну и последнее...
    http://fotki.yandex.ru/next/users/stalker8509i/album/432849/view/999424?page=0
    Тут я специально отметил два пункта. 1 - выключаем это, если видим на камнях, стенах или земле, непонятные артефакты, в виде неестественных зеркальных отражений, искажений и т.д... 2 - ВСЕГДА проверяем не включил ли криворукий моддер эту настройку, так как она создаёт много артефактов в некоторых местах на локах, а также может приводить к вылетам.
     
    4 пользователям это понравилось.
  3. darkstalker8509

    darkstalker8509 Гость

    Несколько слов об оптимизации ЗП

    Поработав с модифицированием ЗП, решил поделиться довольно важной информацией, которую (что-то мне подсказывает) могут многие и не знать. Начнём вот с чего. Как сделать ЗП портативным, т.е. чтобы его можно было запускать из той папки в которой он установлен или вообще перенести на др. комп в том виде, в каком он стоит, вместе с сохранками. У многих жёсткий диск разбит на два сектора и более, либо установлены неск. жёстких, на случай замены Windows без потерь информации. В моём случае основной ssd разбит на два классических сектора - "C" и "D". Например на диске D у нас папка games с нашим ЗП, а нам надо поменять "винду" на диске С. Как же тогда сохранить наши сохранки, да и вообще состояние ЗП на момент смены Виндовс?
    Для этого сначала идём в папку с уст. игрой и ищем там файл fsgame.ltx, открываем его и ищем там такое - "$game_data$=false| true|$fs_root$|gamedata\". Эта строка - приоритет gamedata, отвечает за то чтобы сначала считывалось всё из папки gamedata, а уж потом распаковывались архивы db1,db2 и т.д. Нам надо выставить как на скрине ниже, написав true вместо false

    Таким образом следует поступать с ЛЮБЫМ модом имеющим папку gamedata. А теперь главное - портативность Сталка. Для этого в том же fsgame.ltx ищем строку "$app_data_root$", которая и отвечает за место с сохранениями. Правим эту строку на "$app_data_root$ = true | false |$fs_root$| save\" См. скрин выше. После такой правки в папке с игрой у нас будет папка "Save" в которой и будут все наши сохранки, скрины, users.ltx и логи.
    Далее, предположим мы установили новую винду, поставили все драйверы для её работы, и вот хотим поиграть в наш Сталк. Первый вопрос - создать ярлык. Идём в папку bin, ищем там xrEngine.exe, отправляем на раб. стол, запускаем ,а игра нам пишет, что "указано неверное имя рабочей папки". Что это за ерунда? Да дело в том что после отправки на раб стол, зайдя в свойства ярлыка, там дела обстоят так -
    Уж не знаю каких ещё дров наломали ПЫС-овцы, но игра не знает про папку bin в свойствах ярлыка! А потому должно быть название папки такого вида - Тут может возникнуть попутный вопрос - а зачем это вообще нужно делать с xrEngine.exe именно из папки Bin, когда в самой папке с игрой есть "запускатель" ЗП? А дело в том, что во-первых, эта процедура - единственный способ запускать ЗП с опр. параметрами, а во-вторых, тот самый загрузчик, что в папке с игрой может тупо конфликтовать с модами. Такая беда например со знаменитым SGM 1.7. Много было вылетов когда играли? А если сделать так как описано выше, вылетов станет в разы меньше. Указанная процедура с названием папки актуальна и для CS.
    Ну и последнее - те самые параметры о которых я говорил. Наверняка многие хоть раз сталкивались, а некоторые и пользовались (особенно это касается поклонников билдов), приписками к ярлыку, типа "-nointro", "-nolog" "-noshadows" (что означает "без роликов", "без лога" и "без теней" соотв.). Таких команд море, но так как -nointro в ЗП и ЧН не работает (но пашет в ТЧ), нам нужны -noshadows и -noprefetch, ответственные за упрощённую прорисовку теней и выключение т.н. прекэширования. Прекэширование - это процесс записи игровых объектов перед загрузкой локации ,не в память движка а в оперативку и на жёсткий диск. Это немного увеличивает производительность чистого ЗП, но в случае дополнительного контента модов, в лучшем случае очень долго загружает локи а в худшем - тупо вешает игру перед началом загрузки. Чтобы запустить игру с нужными параметрами, делаем так -
    Следует обратить внимание, что после кавычек в свойствах, стоит пробел и лишь потом печатается "-noprefetch".
    Также добавлю, что сделать портативной можно и ЧН тем же способом, что и ЗП. Можно установить мод, настроить его, потом тупо упаковать в архив ЗП с модом целиком, и сохранить где душе угодно, а потом просто распаковать и продолжить играть с того места, где была посл. сохранка. Можно запустить игру даже с флэшки! Актуально, если жёсткий 5400 оборотов, а у нас есть при этом быстрая флэшка под usb3.0. Писать -noprefetch имеет смысл только в случае использования более 4.5 Гб оперативки и наличии 64-х разрядной виндовс.
    Вот и всё! Удачи в Зоне! :)

    Распакованный ЗП 1.6.02 с улучшенными рендерами от KD87 и пропатченным на использование памяти exe-шником


    Что в рендерах нового и как это включить читаем тут

    Итак, я думаю тут все должны знать, как в Сталке открывается консоль. Так вот, рендеры добавляют кое какие фишки приятные, о которых я и расскажу. Открываем консоль и пишим там то что нам может понадобиться из списка ниже:

    1 - дальность загрузки ЛОД-ов (низкокачественных текстур удалённых объектов - чем они дальше отрисовываются тем красивее, но менее производительна картинка) - ставим r_geometry_lod от -3 до 3 (прото печатаем в консоли r_geometry_lod 3 - для дальней прорисовки и r_geometry_lod -3 - для ближней)

    2 - Радиус отрисовки травы - r_detail_radius от 20 до 500 (чем шире радиус, тем меньше ставим в настройках плоность травы. При значениях больше 250 метров могут быть сильные лаги - рекомендую от 70 до 100)

    3 - Радиус детальной прорисовки тени от солнца - r2_sun_near от 20 до 150 - все помните "теневой круг" на динамике? Так вот эта команда полностью решает проблему. Т.е. круг не исчезнет, но увидеть его на расстоянии в 150 метров нельзя - рекомендую поставить r2_sun_near 150)

    Это очень нужные команды, а потому крайне рекомендую их выставить вручную, т.к. при запуске распакованного Сталка, скорее всего users.ltx сбросится на дефолтные значения. Также рекомендую СНАЧАЛА выбрать рендер командой (renderer renderer_r2.5 - улучшенная динамика, renderer renderer_r2 - простая динамика, renderer renderer_r1 - статика), перезапустить игру, а потом при новом запуске настроить команды, что описаны выше и снова перезапустить игру. Включать Неполную динамику, Динамику dx10 и dx11 (renderer renderer_r2a, renderer renderer_r3, renderer renderer_r4 соответственно) КРАЙНЕ не рекомендую, т.к. рендеры под них не оптимизированны.

    Народ, чтобы ЗП нормально заработал, смотрим сюда -

     
    Последнее редактирование модератором: 1 фев 2019
    6 пользователям это понравилось.
  4. darkstalker8509

    darkstalker8509 Гость

    Улучшенные рендеры и шейдеры от KD87

    Об этом уже давно надо было написать, но руки никак не доходили, а это всё очень важная инфа!
    Многие хоть раз (а некоторые и много раз) сталкивались с двумя пакостными вылетами.

    Первый -

    Expression : fatal error
    Function : out_of_memory_handler
    File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
    Line : 336
    Description :
    Arguments : Out of memory. Memory request

    и второй

    Expression : assertion failed
    Function : _VertexStream::Lock
    File : E:\stalker\patch_1_0004\xr_3da\R_DStreams.cpp
    Line : 44
    Description : (bytes_need
     
    4 пользователям это понравилось.
  5. Stump

    Stump Модератор

    181
    166
    8 дек 2010
    Чем?
    Оптимизация - процесс приведения системы(программы) в наилучшее(оптимальное) состояние. Это относится ко всем машинам. Оригинальный "Сталкер", хотя и до сих популярен, имеет массу багов и недочётов, к тому же потребляет гораздо больше ресурсов, чем нужно игре подобного уровня. И это отнюдь не единственная "недопиленная" игра. Зачем лишний раз нагружать машину?
     
    Последнее редактирование: 2 фев 2019
    basil нравится это.

Поделиться этой страницей