w23 / xash3d-fwgs

Vulkan Ray Tracing fork of Xash3D FWGS engine. Intended to be merged into master at some point in the future.
160 stars 16 forks source link

Replace glow sprites (with glow render mode) via glare, bloom from lights #186

Open w23 opened 2 years ago

w23 commented 2 years ago

Glow sprites are not subject to depth test in GL renderer. And this is kind of weird to do for ray tracing.

Hypothesis: most of sprites with render mode = glow are there for bloom effect purposes, which we can and should do with postprocess pass. What other purpose do they serve? Can we just disable them altogether?

0x4E69676874466F78 commented 2 years ago

Glow в халфе только частично bloom. Оно решает ещё flare и спрайт так называется flare1.spr

sprites/flare1.spr is the standard round glow sprite good for the majority of point based lights. use this to add halo/glow effects around a light source. it should be placed directly on top of the light. it will be rendered over the top of the scene whenever its center is visible

А вообще https://resources.mpi-inf.mpg.de/hdr/TemporalGlare/ нашёл эту публикацию если ты хочешь реализма. https://github.com/ASolot/temporal-glare кто-то уже реализовал только на плюсах. В теории если реализовать что-то упрощённое но похожее и плясать относительно цвета источников света (в том же туннеле на c0a0b где придётся запатчить потому что там нет точечных источников вообще) то от этих спрайтов можно вовсе избавиться (я их просто выключу через патчинг карт). изображение

Вот спрайты из халфы похожие на glare: flare1.spr изображение yelflare1.spr изображение

Вот оно в реальной жизни (с поправками на камеру): https://youtu.be/RUZXyoRzVVA?t=62 https://youtu.be/RUZXyoRzVVA?t=74 (это прям почти что выше в публикации)

Вот сравнения glow01.spr изображение glow02.spr изображение glow05.spr изображение

0x4E69676874466F78 commented 2 years ago

В туннеле кстати они хитрят, там два env_glow с glow01.spr (renderfx 14) и flare1.spr (renderfx 0), видимо для большего реализма (едва заметно), но у тебя сейчас режимы сломаны, потому что в gl рендере спрайты гораздо меньше.

0x4E69676874466F78 commented 2 years ago

https://www.cl.cam.ac.uk/teaching/1718/AdvGraph/06_HDR_and_tone_mapping.pdf здесь есть про glare эффект.

0x4E69676874466F78 commented 2 years ago

Предлагаю взять отсюда один из вариантов эффектов: https://www.shadertoy.com/view/4sX3Rs вот это крутой вариант, чуть более быстрый форк с линзой: https://www.shadertoy.com/view/XdfXRX https://www.shadertoy.com/view/3d3yWl https://www.shadertoy.com/view/wsXSzM (совсем просто, но естественно пульсацию надо выпилить)

w23 commented 2 years ago

Тогда уж надо полный набор. Грязное стекло всякое

0x4E69676874466F78 commented 2 years ago

@w23 ?

0x4E69676874466F78 commented 2 years ago

Понял из другого комментах. Ну ещё раз тут повторюсь что мне кажется грязное стекло объектива здесь излишне.

0x4E69676874466F78 commented 2 years ago

По крайней мере этот эффект со стеклом если очень хочется надо сделать его отключаемым.

0x4E69676874466F78 commented 1 year ago

Понял из другого комментах. Ну ещё раз тут повторюсь что мне кажется грязное стекло объектива здесь излишне.

Мне не понравился этот эффект у Султима. Если вдруг делать то отключаемым.

0x4E69676874466F78 commented 11 months ago

А вообще https://resources.mpi-inf.mpg.de/hdr/TemporalGlare/ нашёл эту публикацию если ты хочешь реализма. https://github.com/ASolot/temporal-glare кто-то уже реализовал только на плюсах.

Ещё https://resources.mpi-inf.mpg.de/lensflareRendering/pdf/flare.pdf

0x4E69676874466F78 commented 8 months ago

В дополнение: https://en.wikipedia.org/wiki/Bloom_(shader_effect)#Imperfect_Focus

0x4E69676874466F78 commented 5 months ago

Нужно такое #257 для light_environment и может быть через флажок для ряда других лампочек.