Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / hbao / hbao+ (11 стр)

hbao / hbao+ (11 стр)

Страницы: 110 11 12 1317 Следующая »
vindastПостоялецwww10 авг. 201820:51#150
Suslik
> ну вот выше обозначенный lsao, например. если ты для одного направления делаешь
> для каждого пикселя, например, 50 выборок, то каждый пиксель ты прочитаешь для
> каждого из 50 пикселей, лежащих с ним на одной прямой. а можешь пройтись по
> этой прямой один раз и прочитать каждый пиксель на ней по 1 разу -> экономия в
> 50 раз. но этого мало, нужно гораздо больше.
Это уже compute-шейдера? Как такое провернуть?
И там же разные данные (набор) для каждого пикселя.

Правка: 10 авг. 2018 20:53

SuslikМодераторwww10 авг. 201820:56#151
vindast
> Это уже compute-шейдера? Как такое провернуть?
проще всего да, сделать на compute shader'ах. но можно и просто рендерить в 1д текстуру, например, где каждый тексель будет соответствовать линии из пикселей. а можно рендерить в 2д текстуру, где каждая строка будет соответствовать семейству параллельных линий из пикселей.

а можно вообще пойти по другому пути и не использовать line sweeping, а пойти, например, по пути стохастических алгоритмов, которые подходят к задаче поиска горизонтов вообще с другой стороны, но результат дают похожий за похожее время.

vindastПостоялецwww10 авг. 201821:15#152
Suslik
> а пойти, например, по пути стохастических алгоритмов
МММ, а что это?
vindastПостоялецwww11 авг. 201817:34#153

Изображение
Изображение
Изображение

SuslikМодераторwww11 авг. 201817:37#154
vindast
с нормализацией проблемы. явно сходится не к чёрному цвету в закутках. ну и уже можно выводить таймер fps, потому что крутость результата напрямую определяется тем, за сколько ты его посчитал.
vindastПостоялецwww11 авг. 201817:41#155
Suslik
> крутость результата напрямую определяется тем, за сколько ты его посчитал.
Значит это очень не круто)

Я не понимаю как там среднее считается.

Я сейчас считаю так: ao+= sin(h(o)) - sin(t(o) + biasAngle); для каждого направления.
ao /= raysCount;

Я правильно делаю?

Правка: 11 авг. 2018 17:43

vindastПостоялецwww11 авг. 201817:42#156
Suslik
Там хорошо видно что у меня hbao зависит от угла взгляда, так и должно быть? Ну, не просто зависит, а результат очень сильно от нее зависит,прямо очень.

Правка: 11 авг. 2018 17:42

vindastПостоялецwww11 авг. 201817:55#157

Suslik
> с нормализацией проблемы. явно сходится не к чёрному цвету в закутках.
Вот что будет если убрать bias из этой формулы.

vindast
> ao+= sin(h(o)) - sin(t(o) + biasAngle);


Изображение
Изображение
Изображение

SuslikМодераторwww11 авг. 201817:57#158
vindast
забей на bias, он у них кривой. если ты сделаешь столько же выборок, сколько на предыдущих скриншотах, то визуально потянет. теперь оптимизируй.
vindastПостоялецwww11 авг. 201817:59#159
Suslik,ок ок.
Только как бороться с false-оккулюзиями?
vindastПостоялецwww11 авг. 201821:05#160
Suslik, так лучше?

Изображение
Изображение
Изображение

vindastПостоялецwww11 авг. 201821:08#161
overkill по семплам
Изображение
Изображение
Изображение
SuslikМодераторwww12 авг. 20184:55#162
vindast
мыло
vindastПостоялецwww12 авг. 201816:25#163
Suslik, я алгоритм переделал на свой лад.
Вроде лучше, как Вам? Исчезли затенения на плоскостях и теперь верно учитываются нормали.

Изображение
Изображение
Изображение
Изображение

SuslikМодераторwww12 авг. 201818:24#164
vindast
кажется, ты написал алгоритм, который учитывает только ложные окклюжены :D
Страницы: 110 11 12 1317 Следующая »

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

2001—2018 © GameDev.ru — Разработка игр