Суть вопроса в названии темы. Есть ли функция грубой аппроксимации значений?
Короче накостылил, такие результаты, хоть и очень грубо но сойдёт:
Для директлайта intensity = lux / pi
Для поинтлайта intensity = candela / pi
О, пасиба)
А нет, это ж не совсем то, о чем я имел ввиду. Дело в том, что в стандартном builtin рендере юнити используются не физические величины для установки интенсивности света, а тупо от 0 до 1 и более. В моем случае я просто сделал грубую, на глаз, интерполяцию из величины люкс в величину интенсивности юнити.
Mr F
> Для директлайта intensity = lux / pi
>
> Для поинтлайта intensity = candela / pi
Забыл сказать, что это будет работать, если
color space = linear
GraphicsSettings.lightsUseLinearIntensity = true
( https://docs.unity3d.com/ScriptReference/Rendering.GraphicsSettin… ntensity.html )
Target
https://github.com/Unity-Technologies/Graphics/blob/7d292932bec3b… LightUtils.cs
Утилита для конвертации в HDRP
Geralt
Чето посмотрел методы и не врубился, какой метод юзать, чтобы вписать туда интенсивность от DirectLight из HDRP чтобы получить значение интенсивности для DirectLight из Builtin рендера. там юзаются величины такие: Ev100, Candela и Lux. Т.е. мне надо будет вычислить Luminance, потом перевести его в Ev а потом вычисленный Ev перевести в нужную величину? Только для перевода из HDRP а не в его самого, операции все наоборот, естесно?
Mr F
Дикий овер пересвет. Что в гамме что в линейном (120000 люкс) Только если не делить, например, на несколько сотен тысяч полученное значение. Но какой в этом смысл тогда)
Target
Надо делить на 100000
В Unigine я смотрел, там тоже lux но там 100000 на 1 intensity
Target
https://seblagarde.files.wordpress.com/2015/07/s2014_pbs_frostbite_slides.pdf
50 страница, для директа
Target
> пересвет
Всё верно. Просто в HDRP поверх рендера идёт постпроцессом тонмаппинг с настроенной экспозицией, которая пересвет и убирает. Но если ты отключишь его и поставишь экспозицию на нейтральную, должен получиться точно такой же дикий пересвет.
Тема в архиве.