Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic/auto exposure #193

Open
0x4E69676874466F78 opened this issue Nov 5, 2021 · 6 comments
Open

Dynamic/auto exposure #193

0x4E69676874466F78 opened this issue Nov 5, 2021 · 6 comments
Labels
enhancement New feature or request ray tracing

Comments

@0x4E69676874466F78
Copy link
Collaborator

0x4E69676874466F78 commented Nov 5, 2021

Общее

Стоит добиться эффекта типа как в lost coast: https://developer.valvesoftware.com/wiki/Advanced_HDR
Можно менять экспозицию на лету в зависимости от того насколько насыщенный белый в экране, таким образом получаем адаптацию как у глаза для LDR-моников (где мы HDR выдать не можем для реальной адаптации глаза) и избавляемся от константных пересветов. Как оказалось для HDR #121 нам всё равно нужна динамическая экспозиция.
Найти подходящий готовый материал сложно, поэтому попробую своими словами.

Актуальное

Примеры реализации:

Старая инфа

Варианты:

  • Можно брать кусок кадра по середине (оптимальный размер не вызывающий тормозов), как-нибудь быстро даунсемлить в 1 пиксель (получая среднее значение всей выборки).
  • Делать полуслучайную-разряженную выборку пикселей где-то в районе середины из всего кадра (если это дёшево) и получать среднее значение.
  • Далее можно ещё строить гистограмму https://cdn.akamai.steamstatic.com/apps/valve/2008/GDC2008_PostProcessingInTheOrangeBox.pdf (начиная с 23 страницы) для большего контроля качества.

Параметры:

  1. скорость реагирования из тёмного и скорость реагирования из светлого, так как вроде у глаза разная скорость привыкания.
  2. минимальное и максимальное значение яркости при котором надо применить автоматическую экспозицию.
  3. базовая экспозиция (крутим чтобы добиться нужный вид наступающий после адаптации, то что щас у нас color_factor вроде).
  4. в сторонних реализациях есть ещё фильтрация понизу и поверху чтобы выкинуть из выборки слишком тёмные или слишком светлые пиксели.
  5. если хотим ещё реализма надо добавить автобаланс белого! так как глаза адаптируются к цветовой температуре света.

Про адаптацию для сравнения:

Dark Adaptation
Slow, can take up to 30 minutes to see in the dark
Light Adaptation
Fast, less that a second to a minute to adapt to bright ligh

Реализация в PrimeXT (может удастся нам портировать?): SNMetamorph/PrimeXT@dce005d (устарело, нужно смотреть на новые коммиты).

Ещё инфа на всякий случай:
Результат ещё зависит от применяемого тонемаппинг оператора, их существует дофига:
https://www.osapublishing.org/josaa/fulltext.cfm?uri=josaa-35-4-626&id=383934
Часть я ещё кидал в прошлой задаче: https://github.com/dmnsgn/glsl-tone-map
https://github.com/tizian/tonemapper
Здесь можно посмотреть на примеры некоторых (aces к сожалению нет):
http://pfstools.sourceforge.net/tmo_gallery/nancy_church_1.html
http://pfstools.sourceforge.net/tmo_gallery/seymour_park.html
Из галереи мне понравился reinhard02, надо будет сравнить их.
https://www.shadertoy.com/view/WdjSW3

@0x4E69676874466F78
Copy link
Collaborator Author

Добавил ссылку на неплохую статью, спасибо @sultim-t.

@0x4E69676874466F78
Copy link
Collaborator Author

Инфа от @ncuxonaT

я подставил функции расчета экспозиции одну в другую, там всё сокращается до 5 / (48 * x), где x - это luminance
image

@0x4E69676874466F78
Copy link
Collaborator Author

Забыл сказать: были добавлены статьи
https://placeholderart.wordpress.com/2014/12/15/implementing-a-physically-based-camera-automatic-exposure/
https://knarkowicz.wordpress.com/2016/01/09/automatic-exposure/
Спасибо anton_kovalev (из дискорда).

@0x4E69676874466F78 0x4E69676874466F78 mentioned this issue Dec 2, 2023
6 tasks
@w23
Copy link
Owner

w23 commented Dec 19, 2023

@0x4E69676874466F78
Copy link
Collaborator Author

0x4E69676874466F78 commented Dec 19, 2023

@w23

Там ещё какой-то AgX форсят:

Можно добавить, выглядит любопытно, но это не совсем по теме.

@SNMetamorph

https://bartwronski.com/2022/02/28/exposure-fusion-local-tonemapping-for-real-time-rendering/

О заебись, сегодня как раз об этом думал.

@0x4E69676874466F78 0x4E69676874466F78 changed the title Adaptive tone mapping (dynamic/auto exposure) Dynamic/auto exposure Mar 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ray tracing
Projects
Status: 🆕 New
Development

No branches or pull requests

3 participants