Графика, рендер, шейдеры |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Графика, рендер, шейдеры |
17.08.2010, 10:38
Сообщение
#3661
|
|
Игроман Репутация: 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 |
 
|
|
|
|
22.03.2020, 02:06
Сообщение
#3662
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
xrModder, сейчас посмотрел внимательно у Варгейминга, что такое Z ось. Это впадины которые не видит рендер, внутренняя тень ( что то похожее на AO).
|
 
|
|
22.03.2020, 02:11
Сообщение
#3663
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
|
 
|
|
22.03.2020, 02:17
Сообщение
#3664
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
xrModder, значит в Сурве есть отдельно еще одна текстура для АО, она и нужна для Z оси синего канала.
|
 
|
|
22.03.2020, 02:22
Сообщение
#3665
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
|
 
|
|
22.03.2020, 02:28
Сообщение
#3666
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
xrModder, скинь все текстуры для этого крипича, возможно они затолкали z в спекуляр.
|
 
|
|
22.03.2020, 02:44
Сообщение
#3667
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
xrModder, скинь все текстуры для этого крипича, возможно они затолкали z в спекуляр. |
 
|
|
22.03.2020, 02:56
Сообщение
#3668
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
|
 
|
|
22.03.2020, 12:36
Сообщение
#3669
|
|
Почти Игроман Репутация: 42 Группа: Участник Сообщений: 626 Награды: 1 Регистрация: 10.12.2015 |
xrModder,
держи правильную нормаль - Карту высот нет делал, ее нет на каналах текстур Сёрвы. Делается ручками в редакторе. -------------------- |
 
|
|
22.03.2020, 13:03
Сообщение
#3670
|
|
Почти Игроман Репутация: 153 Группа: Участник Сообщений: 614 Награды: 4 Регистрация: 03.05.2012 |
|
 
|
|
22.03.2020, 13:54
Сообщение
#3671
|
|
Ветеран Репутация: 13 Группа: Участник Сообщений: 83 Регистрация: 10.01.2017 |
сейчас посмотрел внимательно у Варгейминга, что такое Z ось. Это впадины которые не видит рендер, внутренняя тень ( что то похожее на AO). Но если похимичить, то можно из спекуляра сделать z. Я тоже удивдяюсь -------------------- Специально для ПЫСов: особо одаренных у меня нет, остальных дебилов спрашивать у вульфа
|
 
|
|
22.03.2020, 14:18
Сообщение
#3672
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
Для того чтобы восстановить Z ось стоит вспомнить теорему пифагора и щепотку алгебры.
Так как известно что Код X*X + Y*Y + Z*Z = 1 Получить Z можно как Код Z = sqrt(1 - X*X - Y*Y) Осталось только где-то взять софт который умеет так делать. |
 
|
|
22.03.2020, 17:25
Сообщение
#3673
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Для того чтобы восстановить Z ось стоит вспомнить теорему пифагора и щепотку алгебры. Так как известно что Код X*X + Y*Y + Z*Z = 1 Получить Z можно как Код Z = sqrt(1 - X*X - Y*Y) Осталось только где-то взять софт который умеет так делать. Кое-что выяснил: Диапазон X, Y и Z: -1...+1 Диапазон R, G и B: 0...255 (0...1) |
 
|
|
22.03.2020, 18:29
Сообщение
#3674
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Формула для конвертации:
d(RGB) = 0...1: XYZ = 2 * (RGB - 0.5) d(RGB) = 0...255: XYZ = 2 * ((RGB / 255) - 0.5) Сообщение отредактировал xrModder - 22.03.2020, 18:38 |
 
|
|
22.03.2020, 21:46
Сообщение
#3675
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
SkyLoader, весело? Если приспичит по нужде - будете искать туалет?
Вы еще однако из дифузки бампы не делали. Кака получается из спекуляра, короче я пас. Ось Z не привязана к теореме Пифагора в данном случае, так как там 255 - не вершина значения, там считается в инверсию. 255 - это по сути гладкая поверхность, а темные участки это впадины. И в Z не указываются вершины. Как написал ed_rez, что z - это карта высот... а я вижу там AO ( области не читаемые рендерингом.). Сообщение отредактировал Ленин - 22.03.2020, 21:50 |
 
|
|
23.03.2020, 00:05
Сообщение
#3676
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Ни один из этих способов, вроде извлечение z-нормали по формуле Пифагора или ao в качестве синего канала не работает.
|
 
|
|
23.03.2020, 01:10
Сообщение
#3677
|
|
Мастер Игры Репутация: 248 Куратор темы Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
Для того чтобы восстановить Z ось стоит вспомнить теорему пифагора и щепотку алгебры. Так как известно что CODE X*X + Y*Y + Z*Z = 1 Получить Z можно как CODE Z = sqrt(1 - X*X - Y*Y) Осталось только где-то взять софт который умеет так делать. Ваши построения верны только для единичного вектора, а я уверен что вектор например (0,0,0) не является единичным. Проверить легко: берем изначальный вектор 0,0,0 z = sqrt( 1 - 0*0 - 0*0 ) = 1. Ответ не сходится. берем 0.2, 0.2, 0.2 z = sqrt( 1 - 0.04 - 0.04 ) = sqrt( 0.92 ) = 0.9591... ответ опять же не верен Правильно было бы CODE Z = sqrt(длина_вектора - X*X - Y*Y) проверить можно CODE void mainImage( out vec4 fragColor, in vec2 fragCoord ) { // Normalized pixel coordinates (from 0 to 1) vec2 uv = fragCoord/iResolution.xy; // Time varying pixel color vec4 col = texture(iChannel0,uv); float length = sqrt((col.x*col.x)+(col.y*col.y)+(col.z*col.z)); length = 1.f; // cjayho: comment this line for RIGHT solution col.z = (length - (col.x*col.x) - (col.y*col.y)); // Output to screen fragColor = vec4(col.xyz,1.0); } Если указать единичку, то с картинкой в синем цвете чтото явно не так. А при вычислении длины вектора картинка получается более или менее приближенной к реальности. Теперь вопрос к размышлению: для получения трех компонент, нужно получить три другие компоненты. Либо красный/зеленый/синий, либо красный/зеленый/длина_вектора. Смысл ли вообще всех вышеуказанных вычислений. Из двух компонент три мы не получим. Сообщение отредактировал cjayho - 23.03.2020, 01:20 -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
23.03.2020, 02:55
Сообщение
#3678
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
Заострю внимание на том, что мы работаем с картой нормалей, а карта нормалей не спроста называется картой нормалей, она содержит закодированные векторы нормали, у которых длинна должна равна единице.
Ясен хрен что видео с самкой хумана содержит ненермальные пиксели и восстановить синий цвет такой формулой не получится, это же не нормалмап. Если уж хочется докопаться до чего либо то стоило упомянуть что при таком вычислении теряется знак. Впрочем карт нормалей которые вовырочивают нормали в обратную сторону я ещё не встречал, так что думаю это не так важно. |
 
|
|
23.03.2020, 02:56
Сообщение
#3679
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Синий канал приближенно можно вычислить по формуле sqrt(1-((2*r-1)^2+(2*g-1)^2)), но в некоторых местах есть косяки
|
 
|
|
23.03.2020, 03:26
Сообщение
#3680
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Зарекался писать что-то в этом топике, хоть судя по названию он мне и профильный, но как-то сильно тут агрессивные все.
В прошлый раз я пытался донести до всех тут как устроен формат BC, но получил только странные нападки в стиле "разработчикам Сталкера виднее, чем тебе!" Но рискну еще раз: Итак, открыв эту текстуру в Фотошопе видим что только 2 канала заняты - G и A. Это старый известный способ вытянуть максимум качества из BC3 компрессии, для нормалмап. Осмелюсь предположить что игра все еще поддерживает DirectX 9 рендер, и потому BC5 им не доступен. Когда мы пакуем нормалмапу в BC3 мы оставляем только 2 компоненты вектора - X и Y, т.к. знаем что Z всегда положителен. Напомню что опорные цвета RGB блока в BC3 квантуются до r5g6b5 - т.е. у зеленого канала больше всех точность. А еще альфа-канал лежит отдельным блоком с хорошей точность. Значит запихиваем X и Y в G и A каналы соответственно. Конкретно разработчики этой игры решили положить Y в G и X в A. Z же легко восстановить из условия нормированности вектора (бедный дядя Пифагор тут не причем). Из двух компонент три мы не получим. Легко, нормаль - нормированный вектор, длина которого всегда равна 1. Соотв восстановить третий компонент - элементарно. Осталось только где-то взять софт который умеет так делать. Покажу на примере Paint.NET: 1) Идем на сайт 2) Открываем текстуру в Paint.NET 3) Идем в "Effects -> Advanced -> CodeLab..." 4) File -> Open - открываем файлик который я приложил 5) Жмем ОК, наслаждаемся результатом 6) Для любой следующей текстуры достаточно просто нажать "Ctrl + F" чтоб повторить последний примененный эффект Скрипт для Paint.NET: http://s.gameru.net/metro/SurvariumNormalmapRestore.cs -------------------- Hello worlds!
|
 
|
|
23.03.2020, 04:27
Сообщение
#3681
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Restore Survarium normal map Зарекался писать что-то в этом топике, хоть судя по названию он мне и профильный, но как-то сильно тут агрессивные все. В прошлый раз я пытался донести до всех тут как устроен формат BC, но получил только странные нападки в стиле "разработчикам Сталкера виднее, чем тебе!" Но рискну еще раз: Итак, открыв эту текстуру в Фотошопе видим что только 2 канала заняты - G и A. Это старый известный способ вытянуть максимум качества из BC3 компрессии, для нормалмап. Осмелюсь предположить что игра все еще поддерживает DirectX 9 рендер, и потому BC5 им не доступен. Когда мы пакуем нормалмапу в BC3 мы оставляем только 2 компоненты вектора - X и Y, т.к. знаем что Z всегда положителен. Напомню что опорные цвета RGB блока в BC3 квантуются до r5g6b5 - т.е. у зеленого канала больше всех точность. А еще альфа-канал лежит отдельным блоком с хорошей точность. Значит запихиваем X и Y в G и A каналы соответственно. Конкретно разработчики этой игры решили положить Y в G и X в A. Z же легко восстановить из условия нормированности вектора (бедный дядя Пифагор тут не причем). Из двух компонент три мы не получим. Легко, нормаль - нормированный вектор, длина которого всегда равна 1. Соотв восстановить третий компонент - элементарно. Осталось только где-то взять софт который умеет так делать. Покажу на примере Paint.NET: 1) Идем на сайт 2) Открываем текстуру в Paint.NET 3) Идем в "Effects -> Advanced -> CodeLab..." 4) File -> Open - открываем файлик который я приложил 5) Жмем ОК, наслаждаемся результатом 6) Для любой следующей текстуры достаточно просто нажать "Ctrl + F" чтоб повторить последний примененный эффект Скрипт для Paint.NET: http://s.gameru.net/metro/SurvariumNormalmapRestore.cs Великолепно! Конвертировал несколько стандартных normal map в XY normal map (как в Survarium'е), потом восстановил синий канал и сравнил с оригиналом - разницы практический нет. Большое спасибо за скрипт! |
 
|
|
Текстовая версия | Сейчас: 08.06.2024, 08:13 |