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

Помогите найти алгоритмы полноэкранного сглаживания (постэффект, glsl) (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
12:47, 19 июля 2018

barnes, ну так скинь)


#31
14:02, 19 июля 2018

vindast
Найденный тобой документ описывает алгоритм по версии ближе к 3.11.
Код 3.11 объемистый тк универсальный для PC, консолей, GLSL и HLSL. Дефайны в нем прокомментированы, включи нужные, открой файл например в VS и лишний код будет виден.

#32
3:19, 22 июля 2018

С горем на пополам разобрался с FXAA. Нашел это, перевел и частично разобрался. Там все сходится с официальным кодом 3.11

Может быть кто нибудь сможет разобраться почему градиент по вертикали и по горизонтали считается так как он считается (edgeHorizontal  и edgeVertical ), и что за магия происходит с  subPixelOffset1 и subPixelOffset2?
В оф. коде по этим моментам тоже ничего нет.

#33
4:57, 22 июля 2018

Код с комментариями на русском не влез.

Пока буду курить taa.

#34
10:41, 22 июля 2018

vindast
Нашлась отличная статья, должна ответить на оставшиеся вопросы по FXAA.

#35
18:09, 22 июля 2018

vindast
> и что за магия происходит с  subPixelOffset1 и subPixelOffset2?
Asaq ситуацию со второй проблемой не прояснило никак.

#36
18:15, 22 июля 2018

Все, все, я понял.
Вот это вот:

  float subPixelOffset1 = clamp( abs(lumaAverage - lumaCenter) / lumaRange, 0.0, 1.0); 
  float subPixelOffset2 = (-2.0 * subPixelOffset1 + 3.0) * subPixelOffset1 * subPixelOffset1;
  float subPixelOffsetFinal = subPixelOffset2 * subPixelOffset2 * SUBPIXEL_QUALITY;
Ничто иное как, smoothstep * SUBPIXEL_QUALITY.

Только с учетом того, что нам нужен модуль lumaAverage - lumaCenter.

#37
4:22, 23 июля 2018

Есть вопросы по taa.

Как подсчитать скорость точки относительно камеры?
Не понятно.
Можно взять текущую и предыдущую матрицу камеры, посчитать координаты p1 и p2 для текущей мировой координаты. Их разность будет скоростью и смещением текстурных координат.
Такой вариант подойдет? Или сделать velocity buffer и в нем все считать.
А как быть с прозрачностью? 

#38
6:18, 23 июля 2018

А правда пишут, что TXAA мылит картинку?

#39
16:27, 23 июля 2018

Daniil Petrov, правда. У него концепция действия сходная с блюром.

#40
17:04, 23 июля 2018

Так как подсчитать скорости относительно камеры?

#41
20:19, 23 июля 2018

Daniil Petrov
> А правда пишут, что TXAA мылит картинку?
Все АА алгоритмы так или иначе "мылят" картинку.

vindast
> У него концепция действия сходная с блюром.
У него концепция сходная с суперсемплингом, но семплить пытаются  накапливая результат с предыдущих кадров.

> Так как подсчитать скорости относительно камеры?
Ну у тебя есть матрица проекции с прошлого кадра, то есть ты можешь найти координаты пикселя в прошлом кадре. Есть дельта тайм, который ты будешь передавать в TAA. Вот и считай S = v*t

#42
20:52, 23 июля 2018

vindast
> Можно взять текущую и предыдущую матрицу камеры, посчитать координаты p1 и p2
> для текущей мировой координаты. Их разность будет скоростью и смещением
> текстурных координат.

MrShoor
> > Так как подсчитать скорости относительно камеры?
> Ну у тебя есть матрица проекции с прошлого кадра, то есть ты можешь найти
> координаты пикселя в прошлом кадре. Есть дельта тайм, который ты будешь
> передавать в TAA. Вот и считай S = v*t


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

Вопрос с прозрачностью остается.

#43
22:15, 23 июля 2018

MrShoor
> Ну у тебя есть матрица проекции с прошлого кадра, то есть ты можешь найти
> координаты пикселя в прошлом кадре. Есть дельта тайм, который ты будешь
> передавать в TAA. Вот и считай S = v*t
Во-первых, + jitter на пол-пикселя, во-вторых, на одной матрице далеко не уедешь, надо всё-таки буфер скоростей, в третьих никто сейчас не хранит один кадр, обычно 2-3, Remedy вон вообще 7 хранили.

#44
22:49, 23 июля 2018

Dimich
> надо всё-таки буфер скоростей
попробую пока что менее затратный вариант с двумя матрицами реализовать. Потом буду курить буфер скоростей.

Dimich
> jitter
Что за зверь такой?

Dimich
> в третьих никто сейчас не хранит один кадр
Пол любому, если таки доберусь до taa x 4 и тд, то хранить придется больше кадров.

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

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

Тема закрыта.