![]() |
Ответ: DOF (Depth of Field)
Шейдерами, рендеришь дептх карту в 32 битный, одно канальный формат.
Далее, рендеришь сцену тоже в текстуру (нормальную, 8 бит на канал, rgb). Затем пост обработка, биллбоард перед экраном, уменьшенное разрешение вьювпорта, используя шейдер gaussian blur, выводишь отрендеренную сцену, и это запекаешь ещё в другую текстуру. Затем финальный рендер, биллбоард перед камерой, нормальный вьювпорт, смещаешь данное с дептх карты текущего пикселя, исходя из дистанции от камеры, до точки акцента (отнимаешь от исходного значения). Делишь на радиус обзора, от этой точки, и затем это данное используешь как коэффицент размытия, чем он больше тем больше должно быть размыто. Таким образом используя lerp, фейдишь, между нормальной текстурой экрана, и размытой, исходя из коэффицента размытия. Я не думаю что тебе это краткое описание что-то дало. Это про шейдеры. Но ты спросил как реализовать - я ответил. Фастэкс вроди как использует дептх карту, но это достигнуто на уровне DirectX. |
Ответ: DOF (Depth of Field)
Цитата:
Думаю сделать может черезжопство конешно но все же.... Рендер сцены в текстуру(256х256) - Заблюрить ее - И вывести текстуру на плоскость которая на определенном радиусе? |
Ответ: DOF (Depth of Field)
Угу, можно и так, будет правда резкая грань отсечения размытой текстуры.
|
Ответ: DOF (Depth of Field)
хм интересно бы зашейдерить реальный доф
который не гауссит а типа разбивает все на такие увеличивающиеся круги (многоугольники, в зависимости от линзы) ![]() |
Ответ: DOF (Depth of Field)
Цитата:
ООчень ресурсоёмко.. |
Часовой пояс GMT +4, время: 05:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot