KNOSSOS, можете помочь с готовым файлом HDR.hlsl
В котором насыщенность цвета снижена на 25-30 процентов, а яркость увеличена на 15-20%. Все изменения интересуют не от дефолтного файла, а именно от вашего варианта, выложенного в данной теме на первой странице. Версия сима 3.1 Можете помочь?
Насыщенность и яркость — обе характеристики ползунками в настройках двигаются.
?
Gefestor
10.03.2016 в 13:29
Это понятно, но!
Стоят у меня несколько мониторов. Отличные 4K мониторы для дизайнеров.
Все они калиброванны, запись параметров произведена в лут мониторов. Погрешность цвета практически сводится к нулю.
Расширенный охват цвета специально отключен при проверке P3D.
И вот тут самое интересное! Периодически на них выставляется SRGB профиль.
С дефолтным HDR.hlsl на SRGB профиле цвета отличные, а вот с модифицированным нереально насыщенные по цвету.
Через меню игры ясное дело изменить параметры я могу. Но результат какой-то не такой. Т.е получается, что в файле есть настройки которые влияют на цвета.
AlexL-81
10.03.2016 в 13:53
Твик увеличивающий светимость лендклассов в P3D 3.2 сработал.
KNOSSOS
10.03.2016 в 14:00
То есть универсальный HDR, который подходил бы под случай sRGB и другой профиль? Нет, конечно, невозможно. Если я включу у себя сейчас sRGB, сразу придется ползунки в симе ворочать.
В 3.2 HDR подкрутили, думаю, как раз то, что вам нужно.
Как вариант, промежуточный для 3.1, то в HDR.hlsl просто в строке 207 верните дефолтный вариант:
Уважаемый KNOSSOS, подскажите пожалуйста, можно ли отредактировать шейдеры в версии 2.5? Нужно просто добавить света там, экспозиции.
KNOSSOS
10.04.2016 в 06:42
Уважаемый KNOSSOS, подскажите пожалуйста, можно ли отредактировать шейдеры в версии 2.5? Нужно просто добавить света там, экспозиции.
Да, что то можно сделать.
В 2.5 нет управления HDR ползунками, поэтому в файле HDR.hlsl блум можно пошевелить в этих строках, меняя значения констант:
static const float BloomThreshold = 03.5f;
static const float BloomMagnitude = 03.75f;
static const float BloomBlurSigma = 0.8;
static const float TimeDelta = 01.0f;
самая нужная — BloomMagnitude, это типа аналог ползунка Bloom в 3.X, остальные, ИМХО, я бы не трогал.
В Tonemap я яркость правил:
в строке
color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 1.7f)+.09f); крутить константу 0.09f. Что то вроде аналога ползунка яркости. Чем меньше, тем ярче.
У меня 0.03f:
color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 1.7f) + 0.03f); //Gamma Color //GEO — яркость выше при 0.03
Аналог ползунка Saturation — в конце файла немного поковырять Composite:
Spoiler
float4 Composite( PsQuad vert ) : SV_Target
{
// const float2 r = float2( 23.1406926327792690, 2.6651441426902251);
float3 final = color + brighten;//*bloom + */ + dither;
//Calculate luminance for saturation.
luminance = CalcLuminance(final);
//Saturate the final color if desired.
float3 finalColor = lerp(luminance, final, 1.25f); //GEO — Default saturation scalar in maximum (1.0) is too low. Now 0.5 in settings = 1.0 in default shader
return float4( finalColor, 1.0f );
}
В нем менять 1.25f. (Дефолтное значение 1.00f)
Это мой вариант, но в нем блум выключен совсем. Если блум нужен, раскомментируйте соотв. строки
color = CalcExposedColor(color, avgLuminance, threshold) ;
color = max(0, color — 0.004f);
color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 1.7f) + 0.06f) ; //Gamma Color
//Result has 1/2.2 baked in.
return saturate(pow(color, 2.2f)) ;
}
Функция отвечает за высветление темных и затемнение светлых участков.
Парметр сolor, который подается на вход функции это вектор с компонентами RGB.
Грубо «Икс». Цвет от 0 до 1 всегда кодируется в препаре. Получается такая парабола в степени 2.2 на отрезке [0..1]. Для удобства подбора функции ToneMap удобно построить график этой функции, например, в Excel.
И подбирать такие коэффициенты в многочлене color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 1.7f) + 0.06f), и степенной функции saturate(pow(color, 2.2f)), чтобы высветлять/затемнять как-то по-другому.
Spoiler
На графике рыжая кривая – дефолтная функция, зеленая – другой фильтр, дающий более яркую картину.
Экспериментально можно подобрать нужное.
В прилагаемом шейдере, который по результатам использования, камрадам понравился, степенная функция заменена на такую: saturate(pow(color, 2.5f) * 1.2f) (соответствует зеленому графику).
Spoiler
2. Параметр «Saturation» на вкладке «Lighting» в настройках сима, будучи выкрученным максимально вправо, не дает сделать сцену более насыщенной по цветности.
Это можно исправить следующим образом:
Масштабируем диапазон регулировки ползунка Saturation в строке 207:
В итоге дефолтное положение ползунка Saturation, бывшее 1, смещается в 0.5 и появляется возможность его добавлять.
Для иллюстрации я поставил 0.65, сам использую 0.58-0.6.
Spoiler
1 и 2 твики независимы, можно делать или то или другое.
HDR-шейдер в целом относится к этапу пост-обработки сцены, поэтому его модификацию можно проводить без последствий для других шейдеров, например, для твиков облаков, воды, земли, атмосферы и проч.
Что еще можно «подергать» в HDR-шейдере:
Spoiler
Если нужно «поиграть» оттенками. Cамый простой вариант – умножать значение этой функции на некий коэффициент. Для этого перепишем функцию таким образом:
color = CalcExposedColor(color, avgLuminance, threshold);
color = max(0, color — 0.004f);
color = (color * (6.2f * color + 0.5f)) / (color * (6.2f * color + 1.7f) + 0.06f); //Gamma Color
//Result has 1/2.2 baked in.
color = saturate(pow(color, 2.5f) * 1.2f);
return color * float3(0.5f, 1.1f, 0.8f);
}
Здесь в строчке return color * float3(0.5f, 1.1f, 0.8f); я на 50% уменьшил красную составляющую в цвете, на 10% добавил зеленую, на 20% убавил синюю. В реале коэффициенты RGB конечно нужно изменять не столь сильно, на 1-5%, думаю, чтобы получить нужный оттенок.
После каждого изменения нужно чистить кеш шейдеров и перезапускать препар. Ппц, как муторно, но другого пути нет.
Вариант сложнее – возможность изменять фильтр ToneMap не в целом по RGB, а отдельно по каждому из каналов (R, G, B ). На хрена оно может понадобиться, хз, но вдруг кому-то захочется…
То есть для каждого канала R, G, B будет подбираться свой график. Словами это будет так, примерно: при определении степени высветления/затемнения сцены, темные сцены сделать более теплыми, добавляя красного а светлые – более холодными, добавляя синего. И т.п.
Для этого можно переписать функцию так (графики функции для R G B здесь «от балды»):
Правленный шейдер с встроенными твиками 1 и 2 можно забрать отсюда: http://1drv.ms/1QsVozl
а у вас еще остались эти файлы? не могли бы их скинуть пожалуйста
KNOSSOS
02.07.2016 в 10:02
а у вас еще остались эти файлы? не могли бы их скинуть пожалуйста
Описанное выше было для версии препара 3.1. Cтавьте утилиту PTA для версии 3.1 и твик (флажок) «Alternate tonemap adjustment» на вкладке HDR сделает точно то же самое.
KNOSSOS
14.09.2016 в 09:04
Добавление пост-эффектов в ландшафтный шейдер GPUTerrain.fx 1. Создаем в папке ShadersHLS сима файл, например, с именем IGonnaMakePrepar4.h со следующим содержимым
Spoiler
движок форума искажает код, поэтому пока здесь пока ссылка полежит https://1drv.ms/u/s!…I_RLxqlvckK2mQw
это адаптированные под ландшафтный шейдер эффекты SweetFX
2. В ландшафтном шейдере GPUTerrain.fx нужно включить этот файл и активировать соответствующие функции в начале файла под строкой #include «GPUTerrain.fxh» добавляем #include «IGonnaMakePrepar4.h»
требуемые эффекты нужно раскомментировать (убрать //)
Настройку параметров эффектов производить в файле IGonnaMakePrepar4.h Например, для Sepia находим функцию float4 SepiaMain(PsQuad vert, float4 color) : SV_Target и перед ней правим параметры:
Если допущены ошибки при редактировании, ландшафт не прорисовывается, включить в настройках сима опцию «Content Error Logging», при выходе смотрим ошибки и правим.
P.S. PTA при применении пресета снесет все правки, сделанные вручную в файле GPUTerrain.fx.
Не уверен, что работает LumaSharpen, почему не смог разобраться
Насыщенность и яркость — обе характеристики ползунками в настройках двигаются.
?
Это понятно, но!
Стоят у меня несколько мониторов. Отличные 4K мониторы для дизайнеров.
Все они калиброванны, запись параметров произведена в лут мониторов. Погрешность цвета практически сводится к нулю.
Расширенный охват цвета специально отключен при проверке P3D.
И вот тут самое интересное! Периодически на них выставляется SRGB профиль.
С дефолтным HDR.hlsl на SRGB профиле цвета отличные, а вот с модифицированным нереально насыщенные по цвету.
Через меню игры ясное дело изменить параметры я могу. Но результат какой-то не такой. Т.е получается, что в файле есть настройки которые влияют на цвета.
Твик увеличивающий светимость лендклассов в P3D 3.2 сработал.
То есть универсальный HDR, который подходил бы под случай sRGB и другой профиль? Нет, конечно, невозможно. Если я включу у себя сейчас sRGB, сразу придется ползунки в симе ворочать.
В 3.2 HDR подкрутили, думаю, как раз то, что вам нужно.
Как вариант, промежуточный для 3.1, то в HDR.hlsl просто в строке 207 верните дефолтный вариант:
А в 3.2 можно сделать такое отражение?)
Уважаемый KNOSSOS, подскажите пожалуйста, можно ли отредактировать шейдеры в версии 2.5? Нужно просто добавить света там, экспозиции.
Да, что то можно сделать.
В 2.5 нет управления HDR ползунками, поэтому в файле HDR.hlsl блум можно пошевелить в этих строках, меняя значения констант:
Огромное спасибо! Все отлично работает. Забыл ранее написать.
Но как понял, это только коррекция цветов и т.п., которых нет в настройках сима.
А твик для создания атмосферы возможно к версии 2.5 применить? Или что необходимо сделать? Какие параметры вручную исправить.
не подскажу, на 2.5 не пробовал
а у вас еще остались эти файлы? не могли бы их скинуть пожалуйста
Описанное выше было для версии препара 3.1. Cтавьте утилиту PTA для версии 3.1 и твик (флажок) «Alternate tonemap adjustment» на вкладке HDR сделает точно то же самое.
1. Создаем в папке ShadersHLS сима файл, например, с именем IGonnaMakePrepar4.h
со следующим содержимым
это адаптированные под ландшафтный шейдер эффекты SweetFX
2. В ландшафтном шейдере GPUTerrain.fx нужно включить этот файл и активировать соответствующие функции
в начале файла под строкой
#include «GPUTerrain.fxh»
добавляем
#include «IGonnaMakePrepar4.h»
Далее в конце файла перед блоком
добавляем следующий блок, который содержит закомментированные вызовы всех эффектов:
требуемые эффекты нужно раскомментировать (убрать //)
Настройку параметров эффектов производить в файле IGonnaMakePrepar4.h
Например, для Sepia находим функцию float4 SepiaMain(PsQuad vert, float4 color) : SV_Target
и перед ней правим параметры:
Оба файла сохраняем, чистим кеш шейдеров.
Если допущены ошибки при редактировании, ландшафт не прорисовывается, включить в настройках сима опцию «Content Error Logging», при выходе смотрим ошибки и правим.
P.S. PTA при применении пресета снесет все правки, сделанные вручную в файле GPUTerrain.fx.
Не уверен, что работает LumaSharpen, почему не смог разобраться