Главная » Статьи » 3DS Max |
![]() Результат ![]() Исходное изображение В общем, смысл такой: нам нужна маска, по которой в исходное изображение будет, при помощи постобработки, добавляться 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" (я обычно его применяю, хотя можно использовать и другое размытие) с такими параметрами: ![]() Вот и все, псевдодоф готов. НО... не во всех случаях этот способ возможно использовать, или использовать "вчистую". Например, если объект в фокусе частично перекрывается размытым объектом, то этот объект (размытый), неправильно размывается в местах пересечения... ![]() Сцену к уроку можно взять сдесь. | |
Категория: 3DS Max | Добавил: Nocel (04.04.2009) | |
Просмотров: 2322 | Комментарии: 2 | Рейтинг: 0.0/0 | |