Графика, рендер, шейдеры |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Графика, рендер, шейдеры |
17.08.2010, 10:38
Сообщение
#3061
|
|
Игроман Репутация: 430 Группа: Участник Сообщений: 892 Регистрация: 14.08.2008 |
Разбор полётов Работы участников Шейдеры от Diablo Наработки cjayho ECB Shaderpack Описание ECB-Shaderpack Улучшенный набор шейдеров для игры S.T.A.L.K.E.R.: Shadow of Chernobyl _____________________________________________________________________________ Основные возможности: _______________________ 1) Непрозрачный туман на R2, возможность переключения из файла конфигурации прозрачный/непрозрачный туман 2) Исправлена "синюшность" изображения на R2 3) Эффект компенсационного светового следа на R2 4) Статический и динамический Depth of field на R2, Размытие объектов при прицеливании (требует дополнительного скрипта) 5) Билдовский блум с краснинкой на R2, возможность переключения тонмаппинга в режим, который был в билде 2218 6) Screen space ambient occlusion на R2 7) Правильная отрисовка сияния ламп на R1 8) Правильная отрисовка солнечного градиента на обоих рендерах 9) Полноценная отрисовка occlusion-lightmaps на R2 10) Микроструктурный бамп 11) Правильная отрисовка бликов на блестящих поверхностях 12) Автосатурация - попиксельное уменьшение насышенности слабо освещенных объектов 13) Мягкие тени на R2 14) Экспериментальная возможность - правильные тени от деревьев на R2 15) Улучшенный Motion blur, более похожий на билдовский 16) Исправлена "кислотность" (перенасыщенность) солнечного освещения объектов на R2 17) Отражабельная вода на R2 18) GodRays на R2 + эффект пылинок в лучах. 19) Мягкие партиклы на R2 20) Мягкая вода на R2 Плюс множество регулировок и исправлений мелких недостатков обоих рендеров Условия использования _______________________ Данный продукт предоставляется под соглашением Creative Commons CC-BY 3.0, Подробнее описано по адресу Составитель данного набора шейдеров - cjayho Свежие ревизии находятся по адресу Установка ___________ Данный продукт тестировался под версиями игры 1.0004 и 1.0006 Установка сводится к копированию файлов в папку gamedata мода, изначальный набор файлов предназначается для чистой игры. В случае установки погодных модов необходимо правильно совместить файл config/weathers/flares.ltx Для более полной настройки шейдеров R2 под свой мод можно править файл shaders/r2/config.h. Для корректной работы теней нужно установить следующие переменные в игровой консоли: r2_sun_near_border 1 r2_sun_near 20 Благодарности _______________ Sergy172 за идеи и тестирование экспериментальных веток. -=Diablo=- за изначально портированные шейдеры из 2232 macron за отражабельную воду и наборы шейдеров из билдов 2217 и 2588 Билдоман за набор шейдеров из билда 2571 BAC9-FLCL, KamikaZZe за дельные замечания и критику Shadows за неоценимую помощь в разработке и тестирование экспериментальных версий Meltac <metzinger@gmx.net> (Его мод "Dynamic shaders" здесь: за алгоритм Depth of Field. Код DoF используется с его разрешения. Sky4CE за алгоритм SSAO K.D. За алгоритмы мягкой воды, мягких партиклов, GodRays Наработки ECB Team распространяются под условиями Правки рендера от K.D. Подходит как к чистой игре, так и к любым модам. Изменения - саншафты (команда r2_sun_shafts off/low/medium/high) - мягкая вода (команда r2_soft_water on/off) - мягкие партиклы (команда r2_soft_particles on/off) - регулировка дальности отрисовки травы через консоль (r__detail_radius [49, 501]) - расширенная регулировка плотности травы (r__detail_density [0.02, 0.6]) - расширенная регулировка четкости текстур (r1_tf_mipbias/r2_tf_mipbias [-3.0, 3.0], только R1/R2) - расширенная регулировка расстояния переключения на лоды (r__geometry_lod [0.1, 3.0]) - восстановлены тени от травы (r2_sun_details, R2) - восстановлены блудмарки (r2_bloodmarks, R1/R2) - правильные тени от солнца (R2) - увеличенный видеобуфер (фикс ошибки "(bytes_need<=mSize) && vl_Count" на R2, связанной с перегрузками видеобуфера*) * То есть теперь можно на полной динамике загрузить ресурсоёмкую карту типа болота из ЧН, поставить видимость в 4 километра и взрывать вокруг дымовые гранаты с ЧНовскими партиклами дыма (тоже жутко ресурсоёмкие). Установка: закинуть содержимое в папку с установленным ТЧ (6 патч, более ранние патчи не поддерживаются и просить сделать под них аналогичное бессмысленно!) Настройка: смотрите ogse_config.h Нюансы: - мягкая вода работает и без бинарников - экзешник нужен для пыли в саншафтах и правки вылета перегрузки видеобуфера. Он основан на выложенным в свое время официальном экзешнике для 6го патча без защиты (отсутвие starforce). - рендер-библиотека обеспечивает работу консольных команд, пыли в саншафтах и мягких партиклов. Использование: где и как угодно. Не возбраняется указать автора. Сообщение отредактировал ForserX - 21.07.2020, 13:58 |
 
|
|
|
|
29.08.2019, 23:32
Сообщение
#3062
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Попробовать перенести отрисовку неба на после combine_2, т.е. на после применения блума и сразу в HW.pBaseRT. Хотя тогда на нем HDR работать не будет (но оно и не надо).
Или в combine_2_naa.ps после строки Код half4 bloom = tex2D (s_bloom, center); напиши: Код if (depth < 0.01) bloom = 0; Возможно поможет, точно не могу сказать, проверять надо. Сообщение отредактировал Zagolski - 29.08.2019, 23:57 |
 
|
|
31.08.2019, 01:52
Сообщение
#3063
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
|
 
|
|
31.08.2019, 20:01
Сообщение
#3064
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Попробовать перенести отрисовку неба на после combine_2, т.е. на после применения блума и сразу в HW.pBaseRT. Хотя тогда на нем HDR работать не будет (но оно и не надо). Или в combine_2_naa.ps после строки Код half4 bloom = tex2D (s_bloom, center); напиши: Код if (depth < 0.01) bloom = 0; Возможно поможет, точно не могу сказать, проверять надо. Вроде сработало, но с "моментами" (способ с depth). До/после Два момента: 1) засветка дальних объектов (подобный косяк обычно бывал раньше, когда коряво настроен туман) 2) светлые шлейфы mblur на небе Сообщение отредактировал RayTwitty - 09.08.2020, 22:16 -------------------- |
 
|
|
31.08.2019, 22:13
Сообщение
#3065
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Код if (depth < 0.01) return half4(img, 1);
|
 
|
|
31.08.2019, 22:28
Сообщение
#3066
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Код if (depth < 0.01) return half4(img, 1); Всмысле так? Код return depth < 0.01 ? half4(img, 1) : combine_bloom(img,bloom); Твой вариант вылетал. Впрочем, вышеописанные косяки это не исправило. -------------------- |
 
|
|
01.09.2019, 02:53
Сообщение
#3067
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Скорее всего для ps_2 нужно на if else два return разветвлять. Иначе да, может вылетать.
return half4(img, 1) нужно делать до img = mblur (center,tex2D(s_position,I.tc0),img.rgb); Как-то так: Код half4 main ( v2p I ) : COLOR { #ifdef USE_DISTORT half depth = tex2D (s_position, I.tc0).z; half4 distort = tex2D (s_distort, I.tc0); half2 offset = (distort.xy-.5h)*def_distort ; float2 center = I.tc0 + offset; half depth_x = tex2D (s_position, center).z; if ((depth_x+EPSDEPTH)<depth) center = I.tc0; // discard new sample #else float2 center = I.tc0 ; #endif half3 img = tex2D (s_image, center); if (depth < 0.01) { return half4(img, 1); } else { half4 bloom = tex2D (s_bloom, center); img = mblur (center,tex2D(s_position,I.tc0),img.rgb); #ifdef USE_DISTORT half3 blurred = bloom*def_hdr; img = lerp (img,blurred,distort.z); #endif return combine_bloom (img,bloom); } } |
 
|
|
01.09.2019, 12:35
Сообщение
#3068
|
|
Мастер Игры Репутация: 248 Куратор темы Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
А можно ли как-то выключить (или хотя бы уменьшить) блум для скайбокса в р2 ТЧ, не затронув при этом весь остальной блум на картинке? sky2.ps перед return o; на 37 строке вставить такое: CODE o.high *= 0.f; return o; // выше этой строки кто-то там с кд взасос целовался, что ж он не подсказал? А я по словам некоторых только и делал что с билдов правки тырил. -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
01.09.2019, 20:18
Сообщение
#3069
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Как-то так: Визуально, вроде не вижу разницы с вариантом Код return depth < 0.01 ? half4(img, 1) : combine_bloom(img,bloom); Мне кажется, шлейфы происходят из-за того, что глубина пикселя с геометрией после неба больше чем 0.01, вот шейдер эти пиксели и размывает, а рядом уже как положено - блера нет. Пока что вариант Код if (depth < 0.01) bloom = 0; выглядит лучше всего. Но если блер можно и вырубить, то с засветкой (туманом) дальних объектов надо что-то придумывать. перед return o; на 37 строке вставить такое: Разницы как с дефолтом, так и с комбинацией от Zagolski не увидел совершенно, игру перезагружал. Сообщение отредактировал RayTwitty - 01.09.2019, 20:22 -------------------- |
 
|
|
01.09.2019, 23:18
Сообщение
#3070
|
|
Мастер Игры Репутация: 248 Куратор темы Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
перед return o; на 37 строке вставить такое: Разницы как с дефолтом, так и с комбинацией от Zagolski не увидел совершенно, игру перезагружал. Хз, может у меня шейдер другой, откопал что валялось на диске. Проверил - работает, блума нет. Но смотря с чем ты собираешься бороться. Если с блумом то все работает, хотя визуально это малозаметно. Если же с пересветом неба, то вот тебе файлик, играйся. sky2.zip ( 720 байт ) Кол-во скачиваний: 20 Скриншот с r2_tonemap_middlegray 2: Сообщение отредактировал cjayho - 01.09.2019, 23:19 -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
05.09.2019, 13:25
Сообщение
#3071
|
|
Мастер Игры Репутация: 248 Куратор темы Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
И тишина.
У нашому колхозі усі на морозі -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
05.09.2019, 15:30
Сообщение
#3072
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Я у себя на ЗП проверил свой вариант первый, никаких проблем с туманом нет. Да их по идее и не должно быть. Туман накладывается при освещении, при этом небо заблокировано трафаретом. Глубина в районе неба всегда 0 (там идет очистка rt_Position нулями), в остальных местах она > 0. Откуда могут взяться глюки с туманом на дальних объектах, если отсекается от блума только небо? Возможно что-то из полупрозрачных объектов подмешивается... Вообще скрин бы посмотреть, чтоб хоть примерно оценить проблему.
Сообщение отредактировал Zagolski - 05.09.2019, 16:00 |
 
|
|
05.09.2019, 16:35
Сообщение
#3073
|
|
Игрок Репутация: 2 Группа: Участник Сообщений: 45 Награды: 1 Регистрация: 12.09.2016 |
Проверил на ЗП рендере на движке OGSR все работает на ура. Только изменить надо было кое что, что бы правильно работало, так как версия другая. Но суть та же. Просто изменил кое какие строчки. Эффект на лицо как говориться. Блума на небе вообще практически нет. И на горизонте с деревьями в тумане то же все норм. Хорошее решение.
Сообщение отредактировал DRKIP - 05.09.2019, 16:38 |
 
|
|
05.09.2019, 17:18
Сообщение
#3074
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Откуда могут взяться глюки с туманом на дальних объектах, если отсекается от блума только небо? Возможно что-то из полупрозрачных объектов подмешивается... Вообще скрин бы посмотреть, чтоб хоть примерно оценить проблему. Глюка нет и все работает, как написано. В этом и глюк Вот скрины: https://www.gameru.net/forum/index.php?show...t&p=1662125 Деревья на горизонте под дулом автоматом. На мой взгляд на скрине с блумом деревья затуманены лучше, чем на том, где блума нет. Сообщение отредактировал abramcumner - 05.09.2019, 17:44 |
 
|
|
05.09.2019, 17:38
Сообщение
#3075
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Глюка нет и все работает, как написано. В этом и глюк Ну да, так и получается - туман какой был, такой и остался, а вот яркость скайбокса снизилась и получилось несоответствие по цветам. В теории, это можно решить заново настроив fog_color, но это какой-то костыль и в целом гемор (ведь надо перенастроить все циклы). Проверил на ЗП рендере на движке OGSR все работает на ура. Какой вариант? И тишина. Еще не тестил. Как дойдут руки, отпишусь. Сообщение отредактировал RayTwitty - 05.09.2019, 17:39 -------------------- |
 
|
|
05.09.2019, 19:18
Сообщение
#3076
|
|
Игрок Репутация: 2 Группа: Участник Сообщений: 45 Награды: 1 Регистрация: 12.09.2016 |
RayTwitty я тестировал вариант уважаемого Сjayho. Только подправил, так как у меня не R2, а R4.
Сообщение отредактировал DRKIP - 05.09.2019, 19:19 |
 
|
|
06.09.2019, 10:27
Сообщение
#3077
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Да, на скринах явно косяк. Но у меня такого нету. Я сейчас глянул, на ТЧ не очищается rt_Position. Нужно установить очистку в phase_scene_prepare()
Вместо: Код u_setrt ( Device.dwWidth,Device.dwHeight,HW.pBaseRT,NULL,NULL,HW.pBaseZB ); CHK_DX ( HW.pDevice->Clear ( 0L, NULL, D3DCLEAR_ZBUFFER|D3DCLEAR_STENCIL, 0x0, 1.0f, 0L) ); сделать это: Код u_setrt ( Device.dwWidth,Device.dwHeight,rt_Position->pRT,NULL,NULL,HW.pBaseZB ); CHK_DX ( HW.pDevice->Clear ( 0L, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER|D3DCLEAR_STENCIL, 0x0, 1.0f, 0L) ); А может из-за того, что скайбокс не оригинальный. У него как раз нижняя часть цвета тумана должна быть. Можно попробовать еще: Код RCache.set_Stencil (FALSE); phase_bloom ( ); Перенести в самое начало phase_combine(), тогда помимо разблюривания неба мы еще отсечем от блюра полупрозрачные объекты (с ним они смотрятся ужасно в определенных ситуациях). P.S. Вариант с sky2.ps вряд ли корректен. Там лишь HDR с неба убирается. Хотя конечно это и блум снизит, но HDR на небе не будет, возможно и привыкания глаз тоже. При этом на ярких участках блум все равно наверняка останется. Сообщение отредактировал Zagolski - 06.09.2019, 10:57 |
 
|
|
06.09.2019, 11:36
Сообщение
#3078
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Выявил, что в рендере сталка значительно снизит нагрузку на проц, она в нем довольно высокая. Это перенос создания теней point light shadow и sun cascade shadow с CPU на GPU, т.е. на geometry shader. На скринах в кадре имеется 8 точечных теневых лайтов + 3 каскада от солнца. На первом скрине по дефолту, на втором на GPU перенесены только тени от источников света, на третьем также и от солнца.
См. кол-во Draw Call (DIP), ну и всего что с ними связано (перестановка текстур, шейдеров и прочего). Это блеск! Фпс разумеется немного снижается из-за увеличения нагрузки на видяху, зато какое мощное облегчение CPU, он примерно наполовину разгрузился. По ощущениям еще и плавность в игре возросла. Так что это тема. Железо: i7 2600K @ 4500 MHz и GTX 660. P.S. Кто-нибудь в курсе, на современных видеокартах есть ли какие улучшения в плане ограничения скаляров на геометрическом шейдере? Как там дела на нынешнем фронте? Сообщение отредактировал Zagolski - 06.09.2019, 12:00 |
 
|
|
06.09.2019, 12:56
Сообщение
#3079
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Это блеск! Фпс разумеется немного снижается из-за увеличения нагрузки на видяху, зато какое мощное облегчение CPU, он примерно наполовину разгрузился. Что-то мне кажется считать дроуколлы в таком ракурсе, как мерять размер экзешника. Тоже своего рода разгрузка. У тебя такая таблица получилась: Код дефолт оптимизация1 оптимизация2 фпс 114 97 91 DIP 418 229 204 R_DUMP 3.49мс 2.23мс 1.93мс render 7.99мс 9.39мс 10.24мс Да, R_DUMP сократился почти в 2 раза, но общее время рендера выросло, фпс упал. На твоей системе явно выгодней на проце считать. Смысл процессор жалеть в ущерб видеокарте. Процессор еще грузить и грузить, а видеокарта пусть что-нибудь полезное посчитает: рейтрейсинг там или физику Цитата По ощущениям еще и плавность в игре возросла. Ну так потому, что фпс стал определяться более тормозной рендер частью, а по дефолту фпс ограничивал остальной движок(Статистика в левом верхнем углу fps/rfps и реальный фпс в правом верхнем углу). По всей видимости рендер у тебя работает плавно в отличии от остального движка. А где все НПЦ, локация пустая что ли? Наверное все-таки надо на заселенной замерять с мобами в кадре. Там у видеокарты и другие дела есть, чем гонять полигоны статики туда сюда. Оригинальная игра какая-нибудь запускается на твоем движке? Можешь замерить на той же базе ЧН или в деревне новичков ТЧ? Что за серая муть под домиком? |
 
|
|
06.09.2019, 14:35
Сообщение
#3080
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Да нет, мобы на локации как обычно. В домах, справа у костра и т.д. Один и отсюда за стойкой виден. Но с другим ракурсом фпс высокий - 120-180, в т.ч. и с мобами в кадре, и нагрузка на проц меньше. Тут сцена самая жесткая, когда мои и CPU и GPU максимально загружены. Поэтому на ваниле ЧН на этой базе у всех такая сильная просадка фпс, все в проц упирается.
У меня сильный разгон проца до 4.5 ГГц. Если убрать разгон, фпс раза в полтора упадет. А в этой сцене на всем болоте на проц максимальная нагрузка из-за большого кол-ва точечного света в кадре (да и вообще геометрии) и даже при такой частоте фпс уже практически упирается в проц, сильнее на нем не погоняешь. Кстати, рендер на скринах форвард+ с z-препассом, так что нагрузка в плане дипов тут больше из-за двойного прогона геометрии, по сравнению с ванильным деферред. Думаю, на более мощной и современной видяхе просадка по фпс будет меньше, у меня-то довольно старенькая. К тому же тут главное, как сильно уменьшается нагрузка на CPU в рендере. Причем только на тенях. Ресурсы CPU стоит беречь, имхо. Они для другого пригодятся (аи и пр.), к тому же производительность GPU с годами растет куда стремительнее CPU, не говоря уж о том, что можно воткнуть 2 или 4 карты в тот же SLI. Да и у сталка нормальной многопоточности нет, для него CPU на вес золота. Оригинальная игра какая-нибудь запускается на твоем движке? Можешь замерить на той же базе ЧН или в деревне новичков ТЧ? Оригинальная пока не запускается, я еще под нее не настраивал. Скрины с базы ЧН, кстати. Побегаю еще по локациям, потестирую разные сцены, скрины сделаю. Рендер-то еще в разработке, поэтому что-то не доделано, отключено. На воде я отражения и искажения отключил, вот там и муть. На это не стоит обращать внимание. Сообщение отредактировал Zagolski - 06.09.2019, 14:40 |
 
|
|
06.09.2019, 16:42
Сообщение
#3081
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Как там дела на нынешнем фронте? Все плохо и геометрических шейдеров все так же все избегают. PS. 200 дроу-коллов это в наше время ниочем. Странно что так CPU разгрузился. Попахивает стейт-трешингом. -------------------- Hello worlds!
|
 
|
|
Текстовая версия | Сейчас: 19.05.2024, 18:41 |