Результат
Исходное изображение
В общем, смысл такой: нам нужна маска, по которой в
исходное изображение будет, при помощи постобработки, добавляться DOF.
Она должна выглядеть так:
Все что светлое будет размываться, а то, что темное
нет. Такую маску можно создать из двух карт глубины. Дальше я расскажу
что, где и как.
Покажу на примере вот такой сцены с чайниками, камерой и боксом вокруг этого всего (с вывернутыми внутрь нормалями).
Первым делом нужно определить три расстояния: 1 –
расстояние от камеры до места, откуда будет начинаться переход от
размытого до четкого (у меня это расстояние до первого видимого
объекта), 2 - расстояние от камеры до фокуса (средний чайник) и 3 –
соответственно, расстояние от камеры до места, откуда будет начинаться
переход от четкого размытого до размытого (задняя стенка бокса). Для
это можно воспользоваться инструментом Tape (Create -> Helpers ->
Tape -> указать на экране две точки измерения). Для более точного
определения расстояния я воспользовался выравниванием, выделил начало
Tape, нажал “alt+A” (или Tools -> Align) и указал на камеру, также
выровнял конец Tape со средним чайником. Далее померил два других
расстояния.
У меня получились следующие расстояния: 1 - 86,682; 2 – 192,187; 3 – 316,604.
Далее создал два «VrayZDepth» (покажу на примере
виреевского ZDepth), для этого вошел в «Render Scene Dialog» (F10),
перешел на вкладку «Render Element», нажал кнопку “Add” и, в
появившемся списке, выбрал «VrayZDepth», и так два раза.
Для первого VrayZDepth я ввел следующие значения:
Т.е. zdepth min – расстояние 1, zdepth max -
расстояние 2. Обратите внимание, что должна стоять галочка invert
zdepth, так как при этом объекты которые ближе к камере будут светлее
тех которые дальше, что нам и нужно (хотя можно инвертировать и потом в
Photoshop-e).
Значения для второго VrayZDepth:
Также, обратите внимание, что в обоих случаях должна
стоять галочка Enable Filtering. Это необходимо для того, чтобы при
просчете этих карт учитывался антиалиасинг-филтр, иначе границы
объектов будут «с зазубренами». Ну и конечно галочка Enable, а то
работать не будет.
Далее нажал кнопку Render (предварительно настроив
параметры основного рендера конечно), по истечении какого то времени у
меня «вышли» три картинки: первая, исходное изображение (см. выше),
вторая:
и третья:
Сохранил все три и закрыл 3ds Max.
Пришло время, собственно, постобработки.
Открыл в Photoshop две полученные карты глубины,
перенес обе картинки в один «документ» на разные слои, так, чтобы слой
с первой (та на которой ближние объекты светлее) был сверху слоя с
второй картинкой (та на которой дальние объекты светлее). Поставил для
первого слоя режим «Screen».
Объединил слои и сохранил новое изображение, получилась маска для блюра:
Ну а дальше дело техники. Открыл основное
изображение, сделал выделение по только что полученной маске, я это
делаю так: открываю изображение с маской, выделяю все и копирую в буфер
обмена (Ctrl+C), открываю основное изображение, перехожу в режим “Edit
in Quick Mask Mode” щелкая по соответствующей кнопке (Q) или
вставляю изображение из буфера обмена, должно выглядеть так:
И перехожу обратно в “Edit in Standard Mode” (Q) или
Ну а дальше применил фильтр «Lens Blur» (я обычно
его применяю, хотя можно использовать и другое размытие) с такими
параметрами:
Вот и все, псевдодоф готов.
НО… не во всех случаях этот способ возможно
использовать, или использовать «вчистую». Например, если объект в
фокусе частично перекрывается размытым объектом, то этот объект
(размытый), неправильно размывается в местах пересечения…
|