Только то, что видно (или «Стыдно - когда видно»)
Этот прием очевиден, но удивительно, насколько редко он применяется на практике. Не нужно включать в просчет то, чего все равно никто не увидит!
Если какая-то часть сцены не попадает в камеру и не участвует в отражениях или в ambient occlusion - удаляйте ее, вручную или при помощи скриптов. Если вместо огромного города, смоделированного до последнего гвоздика на подоконнике, вполне пройдет текстура или matte-рисунок на заднике - удаляйте город. Считаете тени? Удаляйте все, что не видно из этого источника света. Считаете отражения? Удаляйте все, что по другую сторону зеркала. В конечном счете, рендерер это сделает и сам - но зачем заставлять его прокачивать гигабайты мусора, из которого не получится ни одного полезного пикселя?
Особую пользу этот совет принесет вам в случае, если вы используете RAT. MTOR известен своей втыкучестью в момент экспорта сцены ("втыкучесть»- слово «нехорошее», «нелитературное», но зато очень хорошо иллюстрирующее суть процесса); небольшой скрипт на MEL, который пробежится по сцене перед экспортом и выключит ту геометрию, какая в данный момент из камеры не видна, ускорит генерацию RIBoe для действительно сложных сцен на порядки.
По СЛОЯМ
Рендеринг "по слоям” уже давно стал обязательным требованием работы в продакшн хаусах. Обычно в отдельные файлы (“слои”) выводятся все персонажи; отдельно от них считаются спецэффекты (огонь, вода и прочие медные трубы); отдельно записываются environment. Затем все эти отдельные слои сводятся воедино уже на этапе композинга; это снимает ограничения на всевозможные настройки освещения и удаление-добавление персонажей в сцену, которые так любят проделывать заказчики в самый последний момент.
Более того, в большинстве студий в отдельные слои выводятся не только персонажи, но тени от них, карты нормалей для персонажей, Z-buffer - толковые двухмерщики всегда найдут, где применить эту информацию, благо на время рендеринга сцены это влияет не сильно.
Более того, Renderman дает возможность выводить в отдельные изображения переменные, определенные внутри шейдеров - как глобальные (например, нормаль поверхности, цвет поверхности), так и локальные (например, диффузную составляющую освещенности конкретного персонажа). Остановимся поподробнее на этом «финте ушами».
Откройте в MAYA сцену, которую мы использовали при тестировании RAT’a - ту самую, с овечкой (файл step2.ma вполне подойдет). Убедитесь, что все в порядке и сцена нормально рендерится - RenderMan=> Render.
Воспользуемся встроенными возможностями MTOR для того, чтобы показать, как вывести в отдельный слой информацию о цвете модели, без учета ее освещенности. Для этого вызываем окно настроек RenderMan=>RenderMan Globals…, в нем в табе Display переключаемся в локальный таб второго уровня Secondary:
Выбираем канал, который мы хотели бы вывести - нажимаем на кнопку New, после этого настраиваем параметры, как указано на скриншоте:
Что мы с вами только что сделали? Мы указали, что хотим отрендерить в отдельный файл значение Cs (выбранное из длинного списка доступных переменных в поле Mode), которое в языке шейдеров соответствует цвету объекта до того, как мы в шейдере применили к нему какие-то операции. Вызываем рендерер и видим на экране вот это: