Перейти к содержанию

Добро пожаловать в сообщество творческих людей - ARTTalk.ru!

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

Для новых пользователей доступна регистрация.

Тема для обсуждения новой версии сообщества.

Если возникают какие либо проблемы с восстановлением старого аккаунта, вы можете воспользоваться формой обратной связи.

RIDDICK

Maya Render Layers

Рекомендуемые сообщения

Автор урока: swn

 

Render Layers — это система для послойного и пообъектного рендеринга. Это означает, что любой объект может быть отрендерен отдельным проходом в отдельный файл. Один и тот же объект может находиться на разных слоях, но при этом иметь разные шейдеры, кроме того, каждый слой может быть отрендерен с разными настройками просчета и даже разными визуализаторами!

 

Сделаем простой пример:

 

1) Создадим плоскость и сферу, а также два источника света (spotLight — главный источник с включенными тенями, и ambientLight с интенсивностью 0.3 для подсветки).

 

2) К плоскости применим простой шейдер lambert с шахматной текстурой (все остальное по умолчанию).

 

3) К сфере применяем blinn и меняем на цвет «повеселее».

 

pic01.jpg

 

Далее переходим непосредсвенно к организации рендера. Для начала давайте посмотрим что мы имеем:

 

pic03.jpg

 

Если в шарике нет отражений необходимо включить Raytracing:

 

pic02.jpg

 

Итак, что же мы будем делать? Или правильней будет спросить, что же мы хотим контролировать на этапе композитинга?

 

а) Цвет каждого объекта в отдельности

 

б) Мягкость и интенсивность тени

 

в) Мягкость и силу отражений

 

г) Мягкость и интенсивность блика

 

д) Сделаем Ambient Occlusion

 

е) Depth of Field

 

Создание Render Layers

 

Редактор Render Layers прост. В нем уже присутствует один слой — masterLayer.

 

pic04.jpg

 

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

 

Создадим новый слой для контроля цвета плоскости:

 

1) Выделяем плоскость

 

2) Нажимаем Layers ➭ Create Layer from Selected

 

3) Переименуем новый слой: дважды щелкаем по названию и вводим новое имя planeDiffuse.

 

4) Мы забыли добавить в слой источники света, поэтому выделяем их в Outliner, жмем правой кнопкой мыши на слое planeDiffuse ➭ Add Selected Objects.

 

При выделенном слое мы видим что в нижней части вьюпорта появилось название текущего слоя. И в верхней части Render View также отображается имя выделенного слоя.

 

Так как сфера не принадлежит слою planeDiffuse она не отображается ни во вьюпорте ни в Render View после просчета. Из сцены она никуда не пропала, если выделить слой masterLayer она вновь покажется.

 

Таким же образом создаем слой для контроля цвета сферы (не забудьте добавить в слой источники света).

 

 

Далее создадим слой для контроля тени:

 

1) Выделяем объекты spotLight1, pSphere1 и pPlane1.

 

2) Создаем для них новый слой и назовем его shadow.

 

Нам не нужно видеть сами объекты, а только тень от сферы на плоскости, поэтому:

 

3) Выделяем сферу и открываем Attribute Editor ➭ вкладка pShereShape1 ➭ свиток Render Stats ➭ снимаем галочку Primary Visibility.

 

pic05.jpg

 

Это исключит сферу из прямой видимости, но она все еще будет отбрасывать тень. После снятия галочки аттрибут Primary Visibility приобрел оранжевый цвет. Это называется Layer Override и означает, что галочка снята только для текущего выделенного слоя.

 

Теперь если просчитать слой shadow мы не увидим саму сферу, но тень никуда не денется.

 

Спрятать таким же образом плоскость и оставить тень не выйдет, воспользуемся шейдером useBackground:

 

Открываем Hypershade, создаем шейдер useBackground и назначаем на плоскость.

 

Настройки шейдера useBackground1 следующие:

 

а) Specular Color = черный

 

б) Reflectivity = 0

 

в) Reflection Limit = 0

 

г) Shadow Mask = 1

 

Результат рендера может вам не понравиться — все черное! Однако, на самом деле все в порядке, нажмите кнопку отображения альфа-канала в Render View — тень на месте.

 

pic06.jpg

 

На очереди слой для отражений:

 

1) Выделяем все объекты сцены и создаем новый слой, назовем его reflection

 

2) Для плоскости снимаем галочку Primary Visibility, благодаря чему она будет исключена из прямой видимости, но будет видна в отражении сферы

 

3) Сфере назначаем новый материал useBackground

 

Настройки шейдера useBackground2 следующие:

 

а) Specular Color = белый

 

б) Reflectivity = 1

 

в) Reflection Limit = 2

 

г) Shadow Mask = 0

 

Результат рендера слоя отражений должен быть таким:

 

pic07.jpg

 

С бликом шейдер useBackground нас не выручит, поэтому используем обычный blinn:

 

1) Выделим spotLight1 и pShere1 и создадим новый слой с названием specular

 

2) Назначим сфере новый материал blinn со следующими настройками:

 

а) Color = черный

 

б) Eccenricity = 0.2

 

в) Specular Roll Off = 1

 

Остальное по умолчанию.

 

Итог таков:

 

pic08.jpg

 

Вернемся на время к слою sphereDiffuse. Так у нас есть отдельный слой для контроля блика в слое sphereDiffuse он будет лишним. Чтобы убрать его можно просто назначить сфере новый lambert материал, который не имеет бликов, но я пойду немного другим путем и воспользуюсь функцией Layer Override:

 

1) Выбераем слой sphereDiffuse. Не будем трогать материал сферы, лучше отключим способность источника света spotLight1 генерировать блики на поверхностях.

 

2) Выделяем spotLight1. Если снять галочку Emit Specular прямо сейчас это отключит способность источника света генерировать блики на всех Render Layers. Поэтому сначала нажимаем правой кнопкой мыши на аттрибут Emit Specular ➭ Create Layer Override. Аттрибут примет оранжевый цвет и теперь можно снять галку.

 

Теперь Ambient Occlusion…

 

Ambient Occlusion лучше всего сделать средствами Mental Ray. Но ведь до сих пор мы обходились только стандартным Maya Software. Как же просчитать отдельный слой другим рендером? Ответ — Layer Override. Да, он может даже переключать систему визуализации для конкретного слоя!

 

Продолжим:

 

1) Выделим сферу и плейн (в этом слое источники света нам не понадобятся)

 

2) Создадим новый слой с именем AO

 

3) Открываем окно Render Settings и кликаем над строчкой Render Using ➭ Create Layer Override

 

pic09.jpg

 

4) Теперь можно переключиться на Mental Ray и пользоваться его преимуществами в текущем слое. Зайдем на вкладку Quality и переключим Quality Presets на Production.

 

5) Выделяем сферу и плоскость, над ними кликаем правой кнопкой мыши ➭ Assign New Material ➭ Surface Shader

 

6) В Out Color назначаем текстуру mib_amb_occlusion (она находится по этому пути в Hypershade: Create ➭ mental ray Textures ➭ mib_amb_occlusion)

 

7) Заходим в настройки mib_amb_occlusion и немного повысим качество: Samples = 64

 

Этого должно хватить.

 

Ну и наконец слой для контроля глубины резкости:

 

1) Также выделяем только сферу и плоскость

 

2) Создаем для них новый слой DoF

 

3) Назначаем им новый материал Surface Shader

 

4) Открываем HyperShade ➭ Create ➭ 2D Textures ➭ и выбераем метод наложения 2D Projection

 

5) Выбераем surfaceShader2 и в Out Color назначаем Ramp текстуру, верхний цвет которой должен быть белым, а нижний черным.

 

Так как мы выбрали метод наложения 2D Projection у нас в сцене появился новый объект place3dTexture1, который собственно и управляет наложением. Выделите его в Outliner,

 

поверните и отмасштабируйте:

 

rotateX = -90

 

rotateY = -90

 

rotateZ = 0

 

scaleX = 12

 

scaleY = 12

 

scaleZ = 12

 

Результат должен быть следующим:

 

pic10.jpg

 

Ну вот! Организация рендера данной сцены закончена! У нас есть семь слоев для контроля (не считая masterLayer), готовых к рендеру. Нам остается только нажать Render ➭ Batch Render

 

После окончания просчета в папке Документы ➭ maya ➭ projects ➭ default ➭ images должно появиться семь папок, названия которых соответствуют названиям слоев рендера, а в каждой из этих папок лежит по одному файлу — это наши слои.

 

pic11.jpg

 

pic12_small.jpg

 

Остался только композитинг, и вот тут мы уже можем почувствовать всю мощь послойного контроля, обратите внимание на методы смешивания слоев, как делается DoF — качественный и быстрый, как изменилась картинка по сравнению с майским рендером: цвет, мягкость теней, бликов и отражений, их интенсивность. Мы можем контролировать практически все что угодно и не пересчитывать сцену заново!

 

Послесловие: В настоящее время ведется работа над PDF-версией данного урока с оригинальным оформлением, а также продолжение «Организации рендера», предисловие к которому появится уже в скором времени.

 

Метки: композитинг, Maya, слои рендера, урок, эффективность, Render Layers

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
о пасиб.. но есть способы проще..

Render Passes? Знаю-знаю... урок по ним уже пишется. :)

Просто, прежде чем к ним переходить, надо познакомиться с Render Layers, я считаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тоже верно.. но всяко молодец.. оч полезно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, пожалуйста! Когда происходит рендер Pass-ов — ресурсы расходуются только на этот pass (например, diffuse) или всё-таки вычисляются всякие преломления, отражения, дисплейсы? Я к чему это спрашиваю: когда в сцене сотни объектов и несколько миллионов треугольников — расскидывать всё по рендер слоям, а потом гемороится с каждым слоем в фотошопе порождает уныние. Возможно ли pass-ами рендерить сразу всю сцену (без fur-а, конечно, а только геометрию)? Т.е. кинул всю многомиллионную геометрию сцены в один рендер-слой и отрендерил сначала один pass цвета этого слоя, потом pass отражений и т.д. Или всё равно придётся рендерить объекты по отдельности, даже если и pass-ами? Просто я хочу получить картинку с большим разрешением (несколько тысяч пикселей), а ждать сутками неудовлетворительный (как в последствии оказывается) результат мне надоело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прекрасный толковый урок для начала. Остальное понимаешь по ходу дела.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Условия использования