Как отрендерить тень в 3ds max

Обновлено: 04.07.2024

Среди стандартных источников света три источника (а именно Spot, Direct и Omni) позволяют нам выбрать тип просчитываемых теней. Если мы используем штатный стандартный визуализатор Default Scanline Renderer (DSR), то интерес для нас будут представлять: Advanced ray-traced shadows, Area shadows, Ray-traced shadows, Shadow maps.

При выборе типа тени среди свитков параметров ИС появляется свиток параметров тени, название которого начинается с наименования типа.

Shadow Map

Самый простой и нетребовательный к расчетным ресурсам тип теней.


  1. Расстояние объекта от отбрасываемой тени
  2. Размер карты, на основе которой расчитывается тень. Чем больше карта, тем качественнее расчитываемая тень. Лучше использовать числа порядка 2n
  3. Размытие кромки тени. Увеличение параметра позволяет избавиться от зубчатого края кромки при низком разрешении карты
  4. Параметр, отвечающий за управление значением Bias. По умолчанию отключено (наилучший результат в большинстве случаев). В случае с анимацией может помочь включение опции
  5. Если выключено, то свет проходит через поверхность, если натыкается на полигоны, обращенные от него нормалями. Включение опции позволяет получить корректные тени

На Рис.1 верхний ряд изображений наглядно показывает изменение качества тени при увеличении параметра Size. Даже значительное увеличение размера карты не решает проблемы зубцов на краях тени, хотя безусловно рисунок тени становится более проработанным.

Во втором ряду во всех трех случаях размер карты остается одинаковым, но меняется параметр Sample Range. Постепенно увеличивая его, мы избавились от зубчатости, размыв кромку тени.

Рис.1 Изменение качества тени типа Shadow Map при различных параметрах

Ray-Traced Shadows

Тени этого типа расчитываются на основе алгоритма трассировки. Имеют четкие края и практически не поддаются настройке.

Тень Ray-Traced Shadow более точная относительно Shadow Map. К тому же она способны учитывать прозрачность объекта, но тем временем «сухая» и четкая, что смотрится не очень естественно в большинстве случаев. Ray-Traced Shadow более требовательна к ресурсам компьютера, чем Shadow Map.


  1. Расстояние объекта от отбрасываемой тени
  2. Если выключено, то свет проходит через поверхность, если натыкается на полигоны обращенные от него нормалями. Включение опции позволяет получить корректные тени
  3. Глубина трасировки – параметр, отвечающий за проработку тени. Увеличение этого значения может значительно увеличить время визуализации

Ray-Traced Shadows с ИС типа Omni займут больше времени на визуализацию чем связка Ray-Traced Shadows + Spot (или Directional)

Рис.2 Тени Ray-Traced Shadows от непрозрачного и прозрачного объектов

Advanced Ray-Traced Shadows

Тени этого типа очень похожи на тени Ray-Traced Shadows, но как понятно из названия имеют более продвинутые настройки, позволяющие получать более естественные и корректные расчеты.


  1. Метод генерации тени
    Simple – одиночный луч выходит из ИС. Тень не поддерживает какого-либо сглаживания и настройки качества
    1-Pass Antialias – иммитируется испускание пучка лучей. Причем такое же кол-во лучей отражается от каждой освещенной поверхности (Кол-во лучей регулируется Shadow Quality).
    2-Pass Antialias – Аналогично, но испускается два пучка лучей.
  2. Если выключено, то свет проходит через поверхность, если натыкается на полигоны обращенные от него нормалями. Включение опции позволяет получить корректные тени
  3. Количество лучей испускаемых освещенной поверхностью
  4. Количество вторичных лучей испускаемых освещенной поверхностью
  5. Радиус (в пикселях) размытия кромки тени. Увеличение параметра повышает качество размытия. Если приразмытии кромки потерялись мелкие детали, скорректируйте сей казус увеличением Shadow Integrity
  6. Расстояние объекта от отбрасываемой тени
  7. Параметр, управляющий хаотичностью лучей. Изначально лучи направляются по строгой сетке, что может вызвать неприятные артефакты. Внесение хаоса сделает изображение тени более естественным
    Рекомендуемые значения 0,5-1,0. Но более размытые тени потребуют большего значения Jitter Amount

Area Shadows

Этот тип теней позволяет учитывать габариты источника света, благодаря чему можно получать естественные протяженные тени, которые «расщепляются» и размываются при удалении от объекта. Такие тени 3dsMax получает путем смешения ряда «сэмплов» (образцов) теней. Чем больше «сэмплов» и лучше смешение, тем качественнее просчитанная тень.


  1. Форма мнимого источника света, позволяющая определить характер тени.
    Simple – одиночный луч выходит из ИС. Тень не поддерживает какого-либо сглаживания и настройки качества.
    Rectangle Light – иммитируется испускание света с прямоугольной области.
    Disc Light – ИС ведет себя так, как если бы он приобрел форму диска.
    Box Light – имитация кубического ИС.
    Sphere Light – имитация сферического ИС.
  2. Если выключено, то свет проходит через поверхность, если натыкается на полигоны, обращенные от него нормалями. Включение опции позволяет получить корректные тени.
  3. Управляет количеством испускаемых лучей (нелинейно). Чем выше число, тем больше лучей, тем выше качество тени.
  4. Параметр, отвечающий за качество тени. Для рационального расчета, всегда устанавливайте число выше, чем Shadow Integrity.
  5. Радиус (в пикселях) размытия кромки тени. Увеличение параметра повышает качество размытия. Если приразмытии кромки потерялись мелкие детали, скорректируйте сей казус увеличением Shadow Integrity.
  6. Расстояние объекта от отбрасываемой тени.
  7. Параметр, управляющий хаотичностью лучей. Изначально лучи направляются по строгой сетке, что может вызвать неприятные артефакты. Внесение хаоса сделает изображение тени более естественным.
  8. Габариты мнимого источника. Length - длина, Width – ширина, Height (активна только для Box Light и Sphere Light) - высота.

Взглянем на Рис.3. На первом фрагменте. Несколько «сэмплов» тени наложены друг на друга без какого-либо смешения. На втором фрагменте они уже смешаны (Jitter Amount изменен с 0,0 на 6,0). Смешанные «сэмплы» воспринимаются как более естественная тень, но качество ее оставляет желать лучшего. Третий фрагмент показывает тень с отличным качеством (Shadow Integrity и Shadow Quality изменены с единичных значений на 8 и 10 соответственно).

Второй ряд на Рис.3. иллюстрирует, как меняется характер тени, если мы увеличиваем размеры мнимого источника. В данном случае у нас мнимый источник типа Rectangle Light (плоский прямоугольный). При увеличении площади источника размытие тени увеличивается.

Рис.3 Изменение качества тени типа Area Shadow при различных параметрах

Некоторые значения параметров имеют рекомендательный характер, но все ограничивается лишь вашей фантазией. Самый лучший способ разобраться – это эксперимент. Не бойтесь проводить опыты со светом. Уловите настроение будущей картинки и сдаитесь за настройки.

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

Рис.4 Шахматная фигура «Конь». Предметная визуализация

Резюме

Освещение – один из важнейших этапов в работе над трехмерной сценой. С первого взгляда может показаться, что сухую информацию урока невозможно приложить к творческой работе. Однако же при должной смекалке и трудолюбии можно добиться невероятных результатов. В конце концов все цифровые изображения всего лишь наборы нулей и единиц, а 3dsMax всего лишь ваш очередной инструмент, ровно как карандаш или кисть.


Данный мануал поможет создавать спрайты для игр посредством программы 3ds max. В этой статье я хочу описать главные моменты при рендере (экспорт 3d модели в картинки). Многие, наверное сталкивались с такой проблемой, как рендерить спрайт вместе с тенью, и я хочу показать, как можно этого добиться, не пользуясь практически другими графическими программами.

Изображение

И что же это теперь дает - спросите вы? Если рендерить без этой функции, то контур, к примеру, нашего юнита и т.п. получается с артефактом, т.е. края будут размытые и могут смешаться с фоном, на котором будет отображаться будущая тень. И поэтому, сразу ставим галочку. Ниже см. примеры с краями.

Изображение

Изображение

Далее, делаем настройки в закладке Rendering > Render - тут просто нажимаем F10. Появится окошко со множеством настроек, перед тем, как будем проводить рендеринг, нужно выставить фильтр четкости в закладке Renderer > Filter > Catmull-Rom, см. картинку ниже.

Изображение

Изображение

Изображение

Изображение

Теперь я покажу на примере, как отрендерить обычный куб с тенями.(далее сможете скачать эту сценку). Делаем куб 20х20х20, выставляем его по оси 0 0 0. Запускаем скрипт ultra_final_ver2, появится окошко, нажимаем кнопки, которые помечены на рисунке, должно получиться вот так, см. ниже.

Изображение

Потом можно выставить расстояние камеры до объекта, т.к. экспорт рендера у меня 100х100, я сделал объект поближе - Lens 96mm, см. ниже.

Изображение

Вот теперь можно сделать пробный рендер одного кадра. При просмотре в фотошопе, мы можем увидеть сам куб и естественно его тень, которую можно будет сконвертировать в самой игре в альфу. Куб не смазан с фоном, т.к. его нет, и также тень не смазывается с фоном и самим кубом. Таким способом можно рендерить без проблем сразу с тенью.

Привет всем читателям блога Olston3D! Это очередной урок Сергея Романова. Многим будет полезно.

Многие из вас, наверняка, задумывались над тем, как можно встроить 3D-объект в реальное изображение. Например в фотографию. Не смотря на то, что в интернете есть такого рода уроки, я покажу вам, как можно проделать подобный трюк, используя специальный материал VRay и его тени и прозрачность.

VRay - тени и прозрачность

Весь фокус заключается в том, что тени от трёхмерного объекта должны проецироваться на саму фотографию, то есть на бэкграунд. Это хорошо видно на картинке выше. Так как же это сделать, если нам известно, что тень отбрасывается только на поверхность.

Сегодня я вам покажу легкий способ отрендерить модель с тенью, но с прозрачной поверхностью.

Для данного урока вам понадобятся: 3ds Max (у меня версия 2014) и VRay (у меня версия 3,0, но можно и 2,0)

1. В программе 3ds Max создаем всеми любимый ЧАЙНИК (Teapot).

В 3ds Max создаем чайник

Параметры для чайника у меня получились следующие:

2. Создаем под чайником Plane (удобнее это делать в окне вида Top)

Создаем Plane в окне вида Top

Параметры объекта Plane следующие:

ДАЛЕЕ СОЗДАДИМ НЕОБХОДИМЫЕ МАТЕРИАЛЫ:

3. Первым у нас будет стандартный Виреевский материал VrayMtl, который мы применим к чайнику.
Создаем материал:

Стандартный материал VrayMtl

Изменяем Diffuse Color (по моей задумке он должен быть красный).

Красный цвет чайника


Также изменим Reflection Сolor (Reflect). Сделаем его почти белым, чтобы отражения были сильнее (люблю, знаете ли, глянец). 🙂

Цвет глянца


Вот такой красивый материальчик должен у вас получиться:

Материал чайника


ПРИМЕНЯЕМ ПОЛУЧИВШИЙСЯ МАТЕРИАЛ К ЧАЙНИКУ.

4. Скопируем, перетащив и переименовав наш материал, в любой свободный слот и назначим ему Diffuse белый, но не полностью белый, а вот такой:

Белый глянец

По сути, у нас получился белый глянцевый материал.

5. Приступим к созданию материала для плейна. Как вы, наверное, уже догадались именно на нем будут отображаться тени, но как нам сделать, чтобы тени были видны, а плейн – нет!? Для этого мы будем использовать специальный виреевский материал VRayMtlWrapper.

VRay Mtl Wrapper


Тут я хочу немного отвлечься от основного повествования и описать некоторые параметры этого интересного и самого незаметного материала:

Материал VRayMtlWrapper


Base material: Базовый материал, настройки которого будут влиять на тени: матовый, глянцевый, белый, серый, красный.. Считайте что тени будут падать именно на тот материал, который мы назначили плейну.

Далее идет раздел Additional surface properties (Дополнительные свойства поверхности).
Эти параметры показывают: принимать ли нашему материалу GI (Global Illumination) и просчитывать ли на нем каустику. Данные галки я бы советовал не трогать, во избежании проблем с просчетом нашей тени.

Раздел Matte properties отвечает за то, как данный материал будет замаскирован и как он будет отображаться на Альфа-канале.

Включенные чекбоксы Matte Surface (делает материал масочным, то есть покрывающим поверхность но не видимым) и «Matte for refl/refr» (делает его также масочным для отражений и преломлений).

Параметр Alpha contribution определяет как тени будут отображаться в Альфа-канале:

Значение 1.0 – альфа-канал будет наследовать прозрачность Base material (то есть в нашем случае будет абсолютно не прозрачным)

Значение 0.0 – объект вообще не появится в Альфа-канале.

Значение -1.0 – прозрачность объекта (в данном случае тени) будет вычитаться из альфа-канала, и тень у нас получится, при выделении альфы с необходимой прозрачностью! (НАШ ВАРИАНТ)

Чекбокс Shadows, как не трудно догадаться, включает тени.

Affect alpha – влияние на Альфа-канал. Отображение на Альфа-канале, если так понятнее будет.

Reflection amount (Сила отражений) делает видимыми отражения от BASE MATERIAL. Это работает только если в качестве базового использован материал VRayMtl

Refraction amount (Сила преломлений) делает видимыми преломления в BASE MATERIAL. Это работает только если в качестве базового использован материал VRayMtl

ВОТ ТАКИЕ У НАС ДОЛЖНЫ БЫТЬ ПАРАМЕТРЫ МАТЕРИАЛА VRayMtlWrapper.

Параметры материала VRayMtlWrapper


Но в нем у нас нет самого главного – базового материала. Берем созданный нами белый базовый материал и перетаскиваем его как Instance на плашечку базового материала где написано None.

Вот что должно получиться:

Добавляем базовый белый материал


ПРИМЕНЯЕМ ДАННЫЙ МАТЕРИАЛ К НАШЕМУ ПЛЕЙНУ.

6. Теперь нам надо создать источник света, который будет давать тень.
В качестве такого источника мы возьмем VrayLight – плоский виреевский источник света. Чтобы создать его идем во вкладку Create, выбираем там Lights. В выпадающем меню находим Vray. Ну и там VrayLight.


Создаем источник VrayLigh (плейн) в виде сверху.

Создаем источник VrayLigh


Параметры источника света выставляем такие:

Параметры источника VrayLigh


7. Поворачиваем объект света на 45 0 по оси Y и на 45 0 по оси X.

Поворачиваем объект света


Поднимаем вверх и переносим назад и вправо:

Поднимаем и переносим объект света


Вот какие параметры получились у меня:

Параметры переноса


8. Устанавливаем цель данному источнику (ставим галочку в чекбокс Targeted в панели Parameters)

Цель источника света


Перетаскиваем появившуюся цель к краю нашего чайника.
Координаты у меня получились следующие:

Координаты цели источника света

Координаты цели


9. Создадим текстуру отражения, чтобы было видно что наш чайник глянцевый.

Для этого выбираем любой пустой слот в редакторе материалов, жмем Get Materials/VrayHDRI

VrayHDRI


Во вкладке Bitmap выбираем Cumpus.jpg c ярким изображением улицы или города (ссылка на этот файл внизу статьи).

10. Не буду долго задерживаться на настройках рендринга, скажу лишь что данную карту нам надо скопировать как Instance в Reflection/Refraction Environment во вкладке рендринга VRay.

Перетаскиваем материал


11. Рендерим и видим результат:

Результат рендера

12. Сохраняем изображение как TIFF с Альфа-каналом:

Сохраняем изображение TIFF с Альфа-каналом


13. Запускаем Photoshop и открываем в нем сохраненный файл. В палитре «CHANNELS» видим наш Альфа-канал:

Альфа-канал


Что же мы можем с его помощью сделать? Все просто! Мы можем быстро отделить наш объект от фона.

14. Кликаем по Альфа-каналу с зажатой клавишей Ctrl и Альфа-канал превращается в выделение.

15. Переходим в палитру Layers и делаем маску по выделению:

Маска по выделению


При этом ваш слой Background превращается в слой типа Layer с маской:

Слой с маской


Теперь фон замаскирован, но тень осталась.

Теперь мы можем делать с данным изображением все, что захотим. Накладывать его на другие фотографии или класть на любые фоны. Фотография ОТРЕНДЕРИЛАСЬ С АЛЬФА-КАНАЛОМ ПО ТЕНИ.

Часто бывает необходимо получить рендер какого-либо объекта с отбрасываемой им тенью на прозрачном фоне. Такая задача возникает если требуется реалистично встроить 3D-объект в фотографию или же при использовании полученного изображения в качестве спрайта в компьютерной игре.


Рассмотрим, как можно получить рендер тени на прозрачном фоне средствами Blender:

Для начала соберем простейшую сцену, в которую нужно включить собственно объект, который нужно отрендерить вместе с тенью, плоскость, на которую будет падать тень от этого объекта, небольшой и достаточно удаленный источник света (мешлайт), который дает четкую, хорошо различимую тень.


Для удобства работы, все объекты распределим по слоям сцены. На первом слое сцены нужно оставить только плоскость-основание, на второй слой сцены нужно перенести ветрогенератор, а мешлайт поместить на третий слой сцены.

  1. Слой с фоном (бекграундом) без ветрогенератора и без тени
  2. Слой с бекграундом и падающей на него тенью без ветрогенератора
  3. Слой с ветрогенератором без бекграунда

Создадим необходимые рендер-слои:

  1. В подпанели Layer
    1. Scene
      1. Отмечены все три слоя сцены
      1. Отметить только первый слой.

      Сформировав все нужные рендер-слои, для получения нужного результата осталось правильно соединить их в композитинге.

      Чтобы видеть результат сразу, можно предварительно запустить рендер нажатием на клавишу f12.

      Бонус: использование Shadow path

      Если в сцене не используются мешлайты, а только стандартные источники освещения типа Lamp, можно немного облегчить процесс, сократив количество рендер-слоев и упростив дерево нодов композитинга.


      Таким образом получен нужный результат. Рендер-слоев меньше и дерево нодов проще, следовательно общий рендер будет проходить быстрее. Однако проход Shadow просчитывается только для стандартных источников освещения и не считается для мешлайтов, следовательно, если в сцене для освещения используются мешлайты, данный способ не даст нужного результата.

      Читайте также: