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

[DX9] Быстрый качественный блюр с изменяемым радиусом?

Страницы: 1 2 3 4 5 Следующая »
#0
15:43, 27 мар. 2013

Посоветуйте как лучше реализовать качественный блюр всей сцены с изменяемым радиусом (от четкой картинки до полного размытия). Хотя бы идею.

Прочитал совет сделать гауссовое размытие раздельно по осям. Но там ведь фиксированный радиус в шейдере? Если делать много проходов, то скорости не хватит.

Может еще есть варианты?

Очень важно избежать муара при анимации внутри сцены (движение, увеличение). Мы пробовали разные варианты - некоторые при качественном блюре выдавали муар даже при сильном размытии.


#1
15:50, 27 мар. 2013

Malder1
> Но там ведь фиксированный радиус в шейдере?

Но сделать не фиксированный

#2
16:03, 27 мар. 2013

Разве так можно? Видел во многих примерах ps 2.0 гауссова блюра таблицу значений под фиксированный радиус.

#3
16:06, 27 мар. 2013

можно попробовать summed area tables. эффект чуть поунылее гауса (бокс блюр), зато любой радиус фильтра за 4 выборки.

#4
16:23, 27 мар. 2013

Malder1
> Разве так можно? Видел во многих примерах ps 2.0 гауссова блюра таблицу
> значений под фиксированный радиус.

sm3.0, динамикбранчинг

#5
16:32, 27 мар. 2013

Mr F
Бокс блюр вроде дает квадратные контуры? Если так то не годится.

innuendo
Интересная, идея, спасибо. Но куча карт за бортом, включая Intel? И скорость наверное будет похуже чем у фиксированного радиуса?

#6
16:53, 27 мар. 2013

Malder1
> И скорость наверное будет похуже чем у фиксированного радиуса?

Тебе нужно качество ? За него нужно платить :)

#7
16:57, 27 мар. 2013

> Как же я ненавижу быстрый и качественный блюр в играх

#8
17:27, 27 мар. 2013

bazhenovc
Логично :)

innuendo
Это не для игры, для мультимедийного приложения.

#9
12:12, 28 мар. 2013

Malder1
> Бокс блюр вроде дает квадратные контуры?
ну это не так прям палится
http://rghost.ru/44835432/image.png
другого способа я не знаю - либо бокс, либо гаусс но за много-много проходов (возможно даже растянутый на несколько кадров)

а есть ещё такая штука - на шейдерах не курил как делать, но выглядит неплохо: http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html
http://incubator.quasimondo.com/processing/fast_blur_deluxe.php

#10
17:10, 28 мар. 2013

Mr F
Спасибо, я сейчас посмотрю.


P.S. Summed area tables не получается нормально на шейдеры 2.0 переложить.

#11
17:42, 28 мар. 2013

Malder1
> P.S. Summed area tables не получается нормально на шейдеры 2.0 переложить.

Что именно тебе надо ? На sm2.0 можно до 11-15 отсчётов делать для гаусса ... делаешь юбер шейдер с N параметров и крутить вертишь как надо ... или как не надо :)

#12
19:26, 28 мар. 2013

Нужен переменный динамический радиус до 200.

#13
20:02, 28 мар. 2013

Malder1
> не получается нормально на шейдеры 2.0
Malder1
> Нужен переменный динамический радиус до 200.

И рыбку сьесть и в дамки влезсть ...

#14
15:32, 29 мар. 2013

На самом деле мы придумали динамический блюр очень похожий на gaussian вплоть до больших радиусов (200-300). Работает в реальном времени. Но из-за специфики нашего приложения возникает муар на движущихся объектах, т.к. блюр накладывается на сцену, а не на отдельные объекты.

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

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