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

Корректный HBAO (7 стр)

Страницы: 16 7 8 9 10 Следующая »
#90
10:58, 1 апр. 2019

vindast
> Переходи к конкретике, пожалуйста.
даже не знаю с чего начать, это просто кошмар


#91
11:02, 1 апр. 2019

Misanthrope
> даже не знаю с чего начать, это просто кошмар
Шум, и на занавеске завалены нормали.
Остальное что?

#92
11:23, 1 апр. 2019

Suslik
> у тебя явно какие-то баги в местах с максимальными перспективными искажениями.
> то есть в местах, где плоскость трассировки не является параллельной znear/zfar.
Да это понятно. Мне кажется, сам градиент на углах должен другим. Сейчас на трёхгранном угле получается ярко выраженный переход, градиенты сходятся под 90 градусов, а должны плавно переходить друг в друга.

vindast
> Какой масштаб спонзы?
Векторы в видосе длиной 1 метр. Радиус выбирался таким, чтобы был больше глубины этих "окон" наверху.
В каком базисе интегрируешь? Перпендикулярные взгляду плоскости у тебя почему-то серые.
Покажи вычисления, может что посоветую. Но учти, что у меня самого ничего не работает, так что советчик из меня так себе )

#93
11:32, 1 апр. 2019

San
> В каком базисе интегрируешь?
Два разных способа, один в перпендикулярной камере плоскости, другой в локальном базисе нормали.

San
> Перпендикулярные взгляду плоскости у тебя почему-то серые.
Так они такими и должны быть, там же радиус 1.5 метра, и видна явно геометрия, которая их перекрывает.

#94
(Правка: 12:25) 12:23, 1 апр. 2019

vindast
> Сейчас суслик скажет, что все не правильно опять )
да почему неправильно. правильно, наверное. просто ао на картинке нету.

у San есть какие-то косяки тут и там, а у тебя просто непонятно что. вангую, потому что ты опять пытался креативить с disocclusion'ом и, разумеется, сделал его неправильно.

#95
(Правка: 10:22) 10:14, 3 апр. 2019

Очередная итерация. 32 луча, по одному шагу, маленький радиус (0.5)

+ Показать
+ Показать

Suslik
Насколько похоже на правду?

#96
10:29, 3 апр. 2019

San, а что у тебя вообще зеленым помечено?

#97
10:44, 3 апр. 2019

vindast
лайт лик?

#98
11:36, 3 апр. 2019

lookid
> лайт лик
Это что?

#99
11:40, 3 апр. 2019

light leaking

#100
(Правка: 11:47) 11:43, 3 апр. 2019

San
у тебя сейчас считается правильно, но считается только локальное затенение. самое сложное — чтоб корректно считалось глобальное затенение в большом радиусе. попробуй увеличить радиус хотя бы до половины экрана, выбери свою сцену с кубом в кубе и убедись, что на ней тоже работает правильно. итераций по лучу лучше выбрать побольше, хотя бы 4-10. вообще молодец, ты с самого начала по правильному пути идёшь, хоть и не по самому короткому.

vindast
> San, а что у тебя вообще зеленым помечено?
зелёным помечена половина ambient освещения, красным — четверть. то, что тебе тоже следовало сделать давным-давно.

#101
14:58, 3 апр. 2019

Suslik
> зелёным помечена половина ambient освещения, красным — четверть. то, что тебе
> тоже следовало сделать давным-давно.
Я сейчас сижу и невдупляю что это дает.

#102
(Правка: 16:04) 16:00, 3 апр. 2019

vindast
Зеленым помечены области со значением АО близким к 0.5 (двугранные углы должны быть такими). Там еще и красный есть - 0.25 (трехгранные углы).

lookid
> light leaking
Никаких лайтликов там нет. Это дебажная подсветка.

Suslik
> у тебя сейчас считается правильно
Точно? )
Смотри, что будет, если поменять проверку if (abs(AO - 0.5) < 0.1) на if (abs(AO - 0.5)  < 0.01):
Изображение
То есть, внутри самого угла значения получаются слегка меньше 0.5.
Проверил все, что можно. Вроде бы ошибок нет, все считается как и должно. Если ошибка есть, то она скорее всего в алгоритме, не в расчетах.
Насколько я понял, расчеты не сделать идеально точными, они всегда будут слегка зависеть от дискретности (плоскостей сэмплирования конечное число), от view вектора (влияние перспективы полностью не устранить) и от того, что сэмплирование на краях экрана выходит за его границы.
Какой толщины у тебя получались линии на углах при дебаге? Хочу точно убедиться в том, что все правильно считается. Сейчас все еще есть сомнения.

> хоть и не по самому короткому
Что это за путь покороче? )

#103
(Правка: 16:23) 16:10, 3 апр. 2019

vindast
> Я сейчас сижу и невдупляю что это дает.
Смотри, на глаз оценивать правильность расчета АО - сложно. Поэтому нужно взять какой-то простой случай, для которого должны получаться предсказуемые результаты.
Для этого берутся 2 перпендикулярные плоскости. На их границе "полусфера" каждого фрагмента превращается в четверть сферы. Поскольку полная полусфера = 1, то четверть = 0.5. С тремя плоскостями та же история.

+ Показать

Так вот, если ты видишь, что при расчетах у тебя на границе 2-х плоскостей получается 0.5, то это говорит о том, что расчеты скорее всего верны.

Suslik
> попробуй увеличить радиус хотя бы до половины экрана
Стоп. Радиус диска в скринспейсе зависит от расстояния до фрагмента, разве нет? По крайней мере я делал именно так, как пишут в пейперах - задается радиус сферы в мировой системе координат, сфера с этим радиусом и центром в позиции фрагмента проецируется на экран - получается радиус диска на экране.

#104
(Правка: 16:45) 16:45, 3 апр. 2019

San
> Смотри, что будет, если поменять проверку if (abs(AO - 0.5) < 0.1) на if
> (abs(AO - 0.5)  < 0.01):
поменяй количество лучей. если сойдётся к точному решению с увеличением их количества, то норм.

> Стоп. Радиус диска в скринспейсе зависит от расстояния до фрагмента, разве нет?
это в фейках с ограниченным радиусом действия он зависит от расстояния до фрагмента. в точном решении этот радиус — бесконечность. читай ground truth ao, там это обсуждается.

Страницы: 16 7 8 9 10 Следующая »
ПрограммированиеФорумГрафика