IPB

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

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

>

Графика, рендер, шейдеры

 
 =Diablo=
сообщение 17.08.2010, 10:38
Сообщение #2301


Игроман
**********

Группа: Участник
Сообщений: 877
Регистрация: 14.08.2008
Пользователь №: 8611





Шейдеры от Diablo
Шейдеры из билда 2232 под финалку.

До
(IMG:http://img.gameru.net/th/bea7d.jpg)
После
(IMG:http://img.gameru.net/th/7c0a0.jpg)

Скачать

Наработки cjayho
ECB Shaderpack

Официальный репозиторий

Описание
Новые фишки
1) "Тот самый" блум с краснинкой, когда освещать стену фонариком.
2) Автосатурация затемненных объектов (объекты, освещенные менее определенного порога, начинают терять свою насыщенность цвета, в итоге лунная ночь похожа на лунную ночь, а не на солнце через сварочную маску).
3) Улучшенный Motion blur, более похожий на билдовский.
4) Восстановлены лайтмапы на динамическом освещении.
5) Исправлена "кислотность" (перенасыщенность) солнечного освещения объектов на динамическом освещении.
6) На отражабельных поверхностях старый блик в виде "бублика" заменен на градиент.
7) Экспериментальная фишка - правильные тени от солнца на динамическом освещении (по умолчанию выключено).
8) Depth of Field, портированный из ЧН (не динамический, при прицеливании изображение НЕ размывается).

Старые фишки
1) Убрана "синюшность" изображения на динамическом освещении.
2) "Мягкие тени" на динамическом освещении.
3) Отражабельная вода (оригинальная разработка тов. macron + мои правки; эффект оставлен только на динамическом освещении, т.к. отражабельная вода использует более новую шейдерную модель, чем минимальные требования статического освещения).
4) Исправлена яркость точечного и направленного источника света на динамическом освещении - яркость приближена к статическому освещению.
5) Добавлены lplanes на динамическом освещении.
6) Пятно света от фонарика, костра, аномалии или артефакта будет по яркости зависеть от альбедо (отражательной способности) терейна (статическое освещение).
7) На статическом освещении теперь для всех объектов используется один шейдер освещения фонариком, артефактом и аномалиями, так что теперь уже не будет неровностей в освещении объектов разного типа.
8) Частично восстановлен градиент, теперь он включается после повторной загрузки сохранения либо если свернуть-развернуть игру.
9) Восстановлены солнце, луна и флары к ним.
10) Непрозрачный туман на динамическом освещении.
11) Корректная отрисовка сияния ламп на статическом освещении.

Баги
1) Градиент не появляется сразу, для того чтобы он появился, нужно еще раз загрузить сохранение либо свернуть-развернуть игру. Это движковый баг и исправить его правкой шейдеров не представляется возможным.
2) Не регулируется прозрачность фларов из конфигов. Причина - вышеописанный движковый баг.
3) Явление, когда большое сияние ламп (lplanes) либо утопает в геометрии, либо видно сквозь стены и/или складки рельефа, признано движковым багом и снято с исправления, то же самое относительно освещения фонариком и кострами детальных объектов.
4) В некоторых случаях заметен переход между accum_sun_near и accum_sun_far. Это видно на картинке в виде круга определенного диаметра вокруг актера, освещенного ярче, чем остальное пространство.
5) В некоторых случаях могут быть нарушения контрастности поверхностей.

Благодарности
sergy172 за идеи и тестирование экспериментальных веток.
-=Diablo=- за изначально портированные шейдеры из 2232.
macron за отражабельную воду и наборы шейдеров из билдов 2217 и 2588.
Билдоман за набор шейдеров из билда 2571.
BAC9-FLCL, KamikaZZe за дельные замечания и критику.

Установка
Удалить папку shaders, на ее место поставить папку shaders из архива.

При использовании стандартной погоды ТЧ, заменить config/weathers/flares.ltx на тот, что в архиве. В случае использования погодных модов или систем динамической погоды, нужно во flares.ltx указать шейдеры солнца, луны и градиента, как сделано во flares.ltx из архива.

Настройка шейдеров r2 производится правкой конфигурационного файла config.h, кодировка файла - UTF-8.

Скачать все наработки | Зеркало

Наработки ECB Team распространяются под условиями Creative Commons CC-BY.

Правки рендера от 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).
- рендер-библиотека обеспечивает работу консольных команд, пыли в саншафтах и мягких партиклов.
Использование: где и как угодно. Не возбраняется указать автора.

Скачать


Сообщение отредактировал RayTwitty - 26.11.2017, 20:46
Перейти в начало страницы
 
 
 
Ответов
 СамСебеСекретарш...
сообщение 09.07.2018, 23:14
Сообщение #2302


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

Группа: Участник
Сообщений: 1002
Регистрация: 05.05.2007
Пользователь №: 6215



Pavel_Blend, псевдокод:

финальный цвет = текстура*освещение*2

освещение = амбиент+лайтмап#1+солнце+хеми

амбиент считается из погоды

солнце = max( 0, dot( направление солнца, -(нормаль вершины в мировом пространстве) ) ) * альфа из лайтмап#1
короче обычное освещение по ламберту

направление солнца считается из погоды

хеми = цвет хеми из погоды * dot( лайтмап#2, вектор(1/3, 1/3, 1/3) )
Перейти в начало страницы
 
 
 Pavel_Blend
сообщение 09.07.2018, 23:17
Сообщение #2303


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

Группа: Участник
Сообщений: 119
Регистрация: 12.11.2012
Пользователь №: 15200



СамСебеСекретарша, спасибо. А в каком файле всё это описано? Я склоняюсь, что в shaders\r1\lmap.ps, но не уверен.
Перейти в начало страницы
 
 
 Expropriator
сообщение 09.07.2018, 23:19
Сообщение #2304


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

Группа: Участник
Сообщений: 187
Регистрация: 07.08.2015
Пользователь №: 22230



Zagolski, потом мне в ЗП такой баговый рендер поможешь сделать. Мне и так нравится. (IMG:style_emoticons/default/biggrin.gif)
Перейти в начало страницы
 
 
 СамСебеСекретарш...
сообщение 09.07.2018, 23:23
Сообщение #2305


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

Группа: Участник
Сообщений: 1002
Регистрация: 05.05.2007
Пользователь №: 6215



Pavel_Blend, не только. lmap.ps это пиксельный шейдер, или как это называют в мире OpenGL фрагментный. Ещё есть вершинный шейдер lmap.vs. Свет солнца считается там, потом интерполируется для каждой пикселя. Кроме того используется код из common.h, это такой общий файл для всех шейдеров со всякими вспомогаельными функциями, описание формата вершин и прочим.
Перейти в начало страницы
 
 
 Pavel_Blend
сообщение 09.07.2018, 23:30
Сообщение #2306


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

Группа: Участник
Сообщений: 119
Регистрация: 12.11.2012
Пользователь №: 15200



СамСебеСекретарша, а если не брать в счёт освещение по ламберту и прочие параметры в конфигах, а учитывать только текстуры и лайтмапы, то в итоге получается так?:

освещение = rgb_лайтмап#1 + a_лайтмап_#1 + rgb_лайтмап#2

финал = освещение * текстура * 2

Я ведь правильно понял?
Перейти в начало страницы
 
 
 СамСебеСекретарш...
сообщение 09.07.2018, 23:37
Сообщение #2307


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

Группа: Участник
Сообщений: 1002
Регистрация: 05.05.2007
Пользователь №: 6215



Pavel_Blend, у тебя тут куда-то делся dot rgb_лайтмап#2 с вектором 1/3, 1/3, 1/3.
Хеми - это свет от неба, если что (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 Pavel_Blend
сообщение 09.07.2018, 23:39
Сообщение #2308


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

Группа: Участник
Сообщений: 119
Регистрация: 12.11.2012
Пользователь №: 15200



СамСебеСекретарша, а ну понятно. Я без этого вектора буду делать. В общем ещё раз спасибо. Сам бы я не разобрался.
Перейти в начало страницы
 
 
 Pavel_Blend
сообщение 10.07.2018, 10:39
Сообщение #2309


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

Группа: Участник
Сообщений: 119
Регистрация: 12.11.2012
Пользователь №: 15200



Как определить к какому шейдеру из shaders.xr привязан определённый шейдер из gamedata\shaders\r1?

Например, я хочу изменить шейдер def_shaders\def_vertex. Как мне понять, какой *.vs файл редактировать? Есдинственное, что я знаю об этом шейдере, это то, что он имеет тип LEVEL: diffuse*base. А как понять, какие пиксельные и вершинные шейдеры привязаны к данному LEVEL: diffuse*base? Есть где нибудь такая таблица?:
имя_типа_шейдера -> имена_пиксельных_и_вершинных_шейдеров
Перейти в начало страницы
 
 
 macron
сообщение 10.07.2018, 11:07
Сообщение #2310


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

Группа: Участник
Сообщений: 5049
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Цитата(Pavel_Blend @ 10.07.2018, 10:39) *
Например, я хочу изменить шейдер def_shaders\def_vertex. Как мне понять, какой *.vs файл редактировать?

Тут вроде два пути:

1. В шейдередиторе или же утилей пересобирающей shaders.xr редактировать def_shaders\def_vertex внутри самого shaders.xr.

2. Создать файл:
gamedata\shaders\r1\def_shaders_def_vertex.s
gamedata\shaders\r2\def_shaders_def_vertex.s
И в нем уже самому прописать на какие ps/vs он будет ссылаться. Этот s-файл при загрузке будет иметь более высокий приоритет, чем настройки из shaders.xr. Соответственно, так как def_shaders\def_vertex изначально уже имеется в shaders.xr, то не обязательно создавать s-файл для обоих рендеров.

Сообщение отредактировал macron - 10.07.2018, 11:08
Перейти в начало страницы
 
 
 Zagolski
сообщение 10.07.2018, 11:46
Сообщение #2311


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

Группа: Участник
Сообщений: 120
Регистрация: 13.12.2016
Пользователь №: 25714



Цитата(Pavel_Blend @ 10.07.2018, 10:39) *
Как определить к какому шейдеру из shaders.xr привязан определённый шейдер из gamedata\shaders\r1?

В движке в блендерах смотри. В зависимости от настроек из shaders.xr устанавливается тот или иной шейдер. По cls из shaders.xr и далее в Blender_CLSID.h и Blender_Palette.cpp смотри какой конкретно блендер юзается, а в нем уже ищи нужный шейдер. В твоем случае тебе нужен vert.

Сообщение отредактировал Zagolski - 10.07.2018, 11:47
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 23.07.2018, 20:43