ПрограммированиеФорумГрафика

Пару вопросов о Bloom

Страницы: 1 2 3 Следующая »
#0
17:28, 17 июня 2019

Вопрос 1.
В буфер ярких участков записывается полностью пиксель, яркость которого выше 1. Или только те компоненты, яркость каких выше 1.
Вопрос 2.
Как добиться, что на ярких участках центр белый, а к краям переходит в цвет света (например красная лампочка в центре белая, а блум от нее красный)
вопрос 3. В буфер ярких участков пишем до или после тонмапинга?

#1
19:38, 17 июня 2019

Можно после tonemapping'а сделать smoothstep между luma (grayscale значение) и цветом который получился после tonemapping'a. Яркости больше какого-то значения будет белой, а меньше цветной...

#2
19:51, 17 июня 2019

Когда-то для другой темы делал пример:

Исходная картинка:
img1 | Пару вопросов о Bloom
Выделяем самое яркое:
img2 | Пару вопросов о Bloom
Размываем блуром:
img3 | Пару вопросов о Bloom
Суммируем с первой картинкой:
img4 | Пару вопросов о Bloom

#3
19:59, 17 июня 2019

Mikle
Только у тебя grayscale пороговый буффер почему-то.

Для ситуации с HDR следует во время tone mapping прохода записывать значения выше порога в пороговый буффер через MRT, при этом еще вычитая оттуда значение порога, а дальше идет как Mikle уже сказал - размытие и аддитивный блендинг с буффером цвета после tone mapping'а.

Порог это еденица, обычно. Но можно больше, а можно меньше, если чувствуешь себя забавненько.

#4
22:58, 17 июня 2019

oxotnik
> Как добиться, что на ярких участках центр белый, а к краям переходит в цвет
> света (например красная лампочка в центре белая, а блум от нее красный)
> вопрос
Центр тоже красный, просто все каналы больше 1.0 и после отсечения остаётся белый.
Вопрос 1 не корректный какой-то вообще или так сформулирован..

#5
5:46, 18 июня 2019

oxotnik
> Вопрос 1.
У меня пишется полностью, так как размываются все составляющие цвета.
> Вопрос 2.
Этот вопрос решается тональной компрессией (HDR Tone Mapping). Буферы нужно делать 16-битными, иначе итоговый цвет у тебя будет как в 1-м Квейке.
> вопрос 3.
Тональная компрессия выполняется уже после всех постэффектов перед коррекцией гаммы и выводом финальной картинки.
Да вот даже тупо пример посмотри: https://learnopengl.com/Advanced-Lighting/Bloom

#6
8:47, 18 июня 2019

реализация bloom через разблюривание с порогом — это старый способ реализации, когда с floating point rendertarget'ами были проблемы. сейчас гораздо лучше рендерить в hdr, блюрить в hdr без всяких фейковых порогов, а потом уже применять экспозицию через tone mapping и переводить в srgb.

#7
10:31, 18 июня 2019

Suslik
> реализация bloom через разблюривание с порогом — это старый способ реализации,
> когда с floating point rendertarget'ами были проблемы.

это классический пример же

#8
10:32, 18 июня 2019

Suslik
> гораздо лучше рендерить в hdr, блюрить в hdr без всяких фейковых порогов
для этого нужен HDR монитор?

#9
10:37, 18 июня 2019

Misanthrope
> для этого нужен HDR монитор?
для этого нужен рендертаргет c float форматом. перед отображением на мониторе всё равно нужно будет tone mapping'ом переводить в цветовое пространство обычного монитора.

#10
11:01, 18 июня 2019

Suslik
> блюрить в hdr без всяких фейковых порогов
По физике блюрить надо ту часть, которую мы отрезаем, потому что неотрезанная часть разблюрится сама внутри глаза. Ну и использовать гауссиан тоже не особо правильно, но тут уже соображения производительности.

> через tone mapping и переводить в srgb
Любой tone mapping, отличный от простого sRGB преобразования (с опциональной экспозицией) — это чистый фейк, не имеющий накакого отношения к физике. Лично я считаю, что после этого рендеринг не имеет права называться PBR.

#11
11:07, 18 июня 2019

Suslik
То есть для hdr имеет смысл разблюривать весь буфер без учета порога?
Звучит разумно, надо попробовать.

Сейчас для блума все так же гаус применяют или какие-то другие алгоритмы?

#12
11:08, 18 июня 2019

oxotnik

да возьми простой пример hdr из dxsdk :)

#13
11:10, 18 июня 2019

innuendo
Да чет не нравятся мне эти примеры все...
Вот был бы пример из frostbite :)

#14
11:17, 18 июня 2019

oxotnik
> Да чет не нравятся мне эти примеры все...
> Вот был бы пример из frostbite :)

лучше синица в руках чем утка под кроватью ...

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.