|
17.02.2010, 03:20
|
#16
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: DOF (Depth of Field)
Шейдерами, рендеришь дептх карту в 32 битный, одно канальный формат.
Далее, рендеришь сцену тоже в текстуру (нормальную, 8 бит на канал, rgb).
Затем пост обработка, биллбоард перед экраном, уменьшенное разрешение вьювпорта, используя шейдер gaussian blur, выводишь отрендеренную сцену, и это запекаешь ещё в другую текстуру.
Затем финальный рендер, биллбоард перед камерой, нормальный вьювпорт, смещаешь данное с дептх карты текущего пикселя, исходя из дистанции от камеры, до точки акцента (отнимаешь от исходного значения). Делишь на радиус обзора, от этой точки, и затем это данное используешь как коэффицент размытия, чем он больше тем больше должно быть размыто.
Таким образом используя lerp, фейдишь, между нормальной текстурой экрана, и размытой, исходя из коэффицента размытия.
Я не думаю что тебе это краткое описание что-то дало. Это про шейдеры. Но ты спросил как реализовать - я ответил.
Фастэкс вроди как использует дептх карту, но это достигнуто на уровне DirectX.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.02.2010, 03:35
|
#17
|
ПроЭктировщик
Регистрация: 03.05.2009
Адрес: г.Волгоград
Сообщений: 136
Написано 32 полезных сообщений (для 53 пользователей)
|
Ответ: DOF (Depth of Field)
Сообщение от MoKa
Шейдерами, рендеришь дептх карту в 32 битный, одно канальный формат.
Далее, рендеришь сцену тоже в текстуру (нормальную, 8 бит на канал, rgb).
Затем пост обработка, биллбоард перед экраном, уменьшенное разрешение вьювпорта, используя шейдер gaussian blur, выводишь отрендеренную сцену, и это запекаешь ещё в другую текстуру.
|
Этого в полне хватило)
Думаю сделать может черезжопство конешно но все же....
Рендер сцены в текстуру(256х256) - Заблюрить ее - И вывести текстуру на плоскость которая на определенном радиусе?
|
(Offline)
|
|
17.02.2010, 03:47
|
#18
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: DOF (Depth of Field)
Угу, можно и так, будет правда резкая грань отсечения размытой текстуры.
|
(Offline)
|
|
17.02.2010, 09:42
|
#19
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: DOF (Depth of Field)
хм интересно бы зашейдерить реальный доф
который не гауссит а типа разбивает все на такие увеличивающиеся круги (многоугольники, в зависимости от линзы)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
|
ARA (17.02.2010), moka (18.02.2010)
|
18.02.2010, 01:54
|
#20
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: DOF (Depth of Field)
Сообщение от Mr_F_
хм интересно бы зашейдерить реальный доф
который не гауссит а типа разбивает все на такие увеличивающиеся круги (многоугольники, в зависимости от линзы)
|
Видел пейперы таких блуров.. Но из-за пикселизации, не так и просто. Нада будет сперва блурить картинку на 50%, а затем использовать дополнительный шейдер, выделяющий такие "кружочки"..
ООчень ресурсоёмко..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:22.
|