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

Depth-based blur (комментарии)

#0
18:39, 12 июня 2009

Depth-based blur (комментарии)

Это сообщение сгенерировано автоматически.

#1
18:39, 12 июня 2009

Sergio666

Есть пару вопросов по шейдеру:

для чего вообще переменная fMultiplier? Особенно непонятна последняя
строчка в цикле - fMultiplier += fScale * (fPrevDiff + fNextDiff); И почему
цвет в финале делится на значение этой переменной.. Это что-ли
типа такой мудрёный расчёт среднего значения цвета?

И ещё - если радиус фильтра 4 - то весовые коэффициенты вроде
должны быть 1/16, 2/16, 3/16, 4/16, 3/16, 2/16, 1/16, а в коде начальная
                        -3      -2      -1        0      1      2      3

точка имеет вес 5..

Поясни плз - может я чего не понимаю...

#2
19:22, 12 июня 2009

Ок. Объясняю.
Если радиус фильтра 4, то это значит, что мы движемся влево и впрао на 4 точки. Т.е получается такая последовательность весов:
1 2 3 4 5 4 3 2 1
Крайние точки - единица, значит средняя получается 5 :))

>для чего вообще переменная fMultiplier?
вот как раз для размытия по Гауссу
>Это что-ли типа такой мудрёный расчёт среднего значения цвета?
Да, типа того.

>fMultiplier += fScale * (fPrevDiff + fNextDiff);
fScale — это вес текущей точки.
fPrevDiff, fNextDiff - это коэффициенты, с учетом глубины фрагмента

Вроде бы так :)

#3
8:02, 13 июня 2009

Sergio666
OK, ясно..
Только судя по циклу будет не по 4 шага влево и вправо, а по 3, т.к. в условии выполнения цикла стоит знак "<", а должен по идее стоять "<=", иначе текселей с весом 1 не будет, только 5 (начальный) и 4, 3, 2 :)

#4
8:44, 13 июня 2009

DEN 3D
> Только судя по циклу будет не по 4 шага влево и вправо, а по 3, т.к. в условии
> выполнения цикла стоит знак "<", а должен по идее стоять "<=", иначе текселей с
> весом 1 не будет, только 5 (начальный) и 4, 3, 2 :)
Спасибо. Пофиксю. Я как-то на это не обратил внимания :)))

#5
10:15, 13 июня 2009

Sergio666
Бывает :)

Прошло более 2 лет
#6
23:58, 9 окт 2011

1) что запиасано в depth_texture; - gl_FragCoord.z ??
2) texel_clipplane.zw - что за расстояния такие до плоскостей? - near far ? то что в перспективе было установлено
в момент генерации depth_texture ??
3) texture2D можно по идее переделать в рект.. тогда бужет не 1.0 / texture_size - а w / texsize
4) что еще почтиать про это и где посмотреть?

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

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