3D Studio MAX: первые шаги. Урок 25. Визуализация в Mental Ray
Настройка глобального освещения (Global Illumination, GI)
Примеры визуализации сцен в Mental Ray
Солнечные лучи, проходящие сквозь стекло
Визуализация представляет собой завершающий этап подготовки трехмерного проекта и имеет не меньшее значение, чем проведенные перед этим моделирование, освещение и текстурирование сцены, поскольку от результата рендеринга зависит эффектность и реалистичность итогового изображения. Осуществляется данный процесс с помощью визуализаторов — по умолчанию в качестве такового в 3D Studio MAX установлен визуализатор Scanline. Вместе с тем возможно проведение просчета сцены и средствами альтернативных визуализаторов: Mental Ray, VRay, Brazil и др., обеспечивающих большую реалистичность получаемых изображений. Одним из наиболее широко используемых визуализаторов является Mental Ray, который ранее существовал как дополнительный модуль, но начиная с шестой версии был интегрирован в пакет. Некоторым особенностям визуализации сцен с помощью Mental Ray и посвящен данный урок.
Теоретические аспекты
Использование визуализатора Mental Ray ускоряет просчет обычных сцен (без визуальных эффектов), а также позволяет получать изображения со всеми основными визуальными эффектами. То есть добиваться формирования реалистичного зеркального отражения, прозрачности и преломления световых лучей, включая эффект каустики* (Caustics), который приводит к появлению световых бликов в результате прохождения света через прозрачные объекты криволинейной формы. Моделировать рассеянное освещение сцены путем имитирования эффекта поверхностного рассеивания света, что реализуется за счет настройки так называемого глобального освещения (Global Illumination). Повышать реалистичность путем использования эффекта глубины резкости (Depth of field) — при данном эффекте размываются передний и задний планы сцены в зависимости от установленной точки фокусировки (то есть те фрагменты сцены, которые находятся вне фокуса камеры). Создавать эффект размытого движения, с помощью которого быстро движущиеся объекты получаются размытыми (как в реальном мире на снимке или в кинокадре), и потому их движение выглядит более естественным. Визуализация в Mental Ray также обеспечивает детальную прорисовку карты смещения (Displacement), позволяет использовать шейдеры камеры (Camera Shaders) для получения эффектов линз (Lens Effect), может применяться для создания «рисованных» изображений при помощи шейдеров контура (Contour Shaders) и т.д.
Основным принципиальным отличием Mental Ray (равно как и других альтернативных визуализаторов) от Scanline является то, что при просчете сцен в нем учитываются физические свойства света, что и обеспечивает большую реалистичность получаемых изображений. Реализовано это в первую очередь благодаря фотонному анализу сцены, применяемому как для создания эффекта глобального освещения, так и для просчета эффектов рефлективной и рефрактивной каустики. Расположенные в трехмерной сцене источники света излучают фотоны, обладающие некоторой энергией. Данные фотоны в процессе движения попадают на поверхности трехмерных объектов и отскакивают от них, теряя часть своей энергии. Визуализатор Mental Ray отслеживает путь таких фотонов, собирает информацию об их поведении и количестве фотонов в каждой точке пространства, суммирует энергию всех фотонов в каждой точке и на основании полученных данных производит расчет освещенности сцены. Стоит заметить, что наиболее точную картину освещенности можно получить лишь при очень большом количестве фотонов, однако визуализация в таком случае потребует много времени. Поэтому обычно вначале проводят многократные тестовые рендеринги при относительно небольшом числе фотонов, подбирая разнообразные параметры и настройки, и только на заключительном этапе устанавливают их количество, необходимое для окончательной визуализации.
Для проведения визуализации в Mental Ray сначала необходимо сделать его активным визуализатором. Выбор визуализатора осуществляется в диалоговом окне RenderScene (Визуализация сцены), которое вызывается командой Rendering=>Render (Визуализация=>Визуализировать) либо нажатием клавиши F10. В данном окне следует открыть вкладку Common, раскрыть свиток AssignRenderer (Назначить визуализатор), в строке Production (Выполнение) щелкнуть на кнопке с изображением многоточия и в открывшемся списке выбрать визуализатор mentalrayRenderer (рис. 1). После этого закладки окна RenderScene изменят свои названия: если ранее в нем присутствовали закладки Common, Render Elements, Raytracer, Advanced Lighting и Renderer, то теперь на смену закладкам Raytracer и Advanced Lighting придут закладки Processing и Indirect Illumination. Самая важная из них — последняя, поскольку она содержит параметры, отвечающие за просчет каустики и глобального освещения. Помимо изменения вида окна RenderScene назначение MentalRay активным визуализатором приведет также к возможности использования дополнительных источников света и материалов. К числу первых относятся источники mrAreaOmni и mrAreaSpot (рис. 2), которые более корректно просчитываются визуализатором и предназначены для замены стандартных источников света Omni и TargetSpot. Что касается материалов, то появляется девять новых типов материалов: mental ray, DGS Material, Arch & Design Material, Glass, SSS Fast Material и т.д. (рис. 3) — все они в списке отмечены желтой сферой и позволяют текстурировать любые поверхности, включая металл, дерево и стекло. Кроме того, визуализация через модуль MentalRay позволяет применять для формирования теней не только стандартные карты (ShadowMap, RayTracedShadows и т.д.), но и собственную карту MentalRayShadowMap, которая обеспечивает получение более реалистичных теней.
Рис. 1. Назначение Mental Ray активным визуализатором
Рис. 2. Список источников света (источники модуля Mental Ray выделены)
Рис. 3. Окно редактора материалов с дополнительными материалами Mental Ray
В просчете глобального освещения и каустики могут участвовать не все из присутствующих в сцене объектов. Расширение списка участвующих в расчетах объектов приводит к существенному увеличению времени визуализации, а это не всегда оправданно, поскольку не для всех объектов такие расчеты необходимы. Чтобы определить, требуется ли при визуализации конкретного объекта учитывать физические свойства света, необходимо подкорректировать свойства объекта, выделив его, вызвав из контекстного меню команду ObjectProperties (Свойства объекта) и изменив требуемым образом состояние флажков на вкладке mentalray (рис. 4). Например, для всех объектов с эффектами каустики следует включить флажки GenerateCaustics (Генерировать каустику) и ReceiveCaustics (Принимать каустику), а для объектов, которые должны имитировать отраженный свет, — флажки GenerateGlobalIllumination (Генерировать общее освещение) и ReceiveGlobalIllumination (Принимать общее освещение). Если необходимо, чтобы при имитации каустических эффектов и глобального освещения принимали участие все объекты сцены, то вместо настроек свойств отдельных объектов можно на вкладке IndirectIllumination окна RenderScene установить флажок AllObjectsGenerateandReceiveGI andCaustics (Все объекты сцены излучают и принимают глобальное освещение и каустику).
Рис. 4. Корректировка свойств объекта
Имитация каустики (Caustics)
Каустические эффекты — эффекты, основанные на вторичном (отраженном или преломленном) свете, могут быть рефлективными и рефрактивными. Первые основаны на свете, отраженном от объектов сцены, а вторые — на свете, прошедшем через преломляющую среду. Примером каустического эффекта могут служить блики солнечного света на дне бассейна или блики на освещенной ярким светом прозрачной стеклянной посуде.
Попробуем воссоздать подобные блики на примере обычного стеклянного примитива, в роли которого выступит TorusKnot. Создайте сцену с плоскостью и лежащим на ней торусом (рис. 5). Добавьте три источника света: ключевой, с помощью которого будет создаваться эффект каустики (в его роли задействуем TargetDirect — рис. 6), и два второстепенных: заполняющий и контурный. Первый создаст общее освещение сцены и смягчит тени и полутени, а второй обеспечит подсвечивание объекта со стороны: в качестве первого задействуем источник Skylight, а в качестве второго — TargetDirect. В свитке Intensity/Color/Attenuation увеличьте уровень яркости ключевого источника примерно до 1,3 (параметр Multiplier) и включите для него генерацию теней, установив в качестве карты теней карту RayTracedShadows (Трассированные тени), — рис. 7. У вспомогательных источников уменьшите яркость (Multiplier) примерно до 0,5 и 0,7, а у контурного дополнительно отключите флажок Specular (вкладка Advanced Effects), поскольку генерировать блики данный источник не должен. Создайте стеклянный материал — активируйте тип материалов Architectural, установите шаблон Glass — Clear и определите цвет материала (рис. 8). Замените цвет заднего плана сцены с черного на белый, воспользовавшись командой Rendering=>Environment.
Рис. 5. Исходный вид сцены
Рис. 6. Появление источников света (ключевой источник выделен)
Рис. 7. Настройка параметров ключевого источника
Рис. 8. Настройка стеклянного материала
Попробуйте визуализировать сцену стандартным визуализатором, нажав клавишу F9, — никаких эффектов каустики, разумеется, наблюдаться не будет (рис. 9), да и просчет сцены займет очень много времени. Установите Mental Ray в качестве текущего визуализатора сцены — нажмите клавишу F10, в открывшемся окне RenderScene разверните свиток AssignRenderer, щелкните в строке Production на кнопке с изображением многоточия и выберите mentalrayRenderer. Если сразу после этого провести рендеринг, то вы увидите, что и в этом случае каустические эффекты отсутствуют (рис. 10), поскольку по умолчанию их просчет отключен. Однако вид визуализированной сцены все же будет отличаться от предыдущего варианта в лучшую сторону, так как просчет света от источников осуществлялся по совершенно иным алгоритмам. Да и результат окажется достигнутым гораздо быстрее — в нашем случае на визуализацию через Scanline было затрачено 1 мин 45 с, а при визуализации Mental Ray — всего 18 с.
Рис. 9. Вид сцены при визуализации стандартными средствами
Рис. 10. Визуализация в Mental Ray (эффект каустики отключен)
Активируйте в окне RenderScene вкладку Indirect Illumination и в области Caustics (Каустика) включите флажок Enable (Использовать) — рис. 11. Попробуйте визуализировать сцену — появится предупреждение о том, что в сцене отсутствуют объекты, вызывающие эффект каустики. Поэтому выделите объект TorusKnot, вызовите из контекстного меню команду ObjectProperties и на вкладке mentalray включите флажки GenerateCaustics и ReceiveCaustics и выключите флажки GenerateGlobalIllumination и ReceiveGlobalIllumination (рис. 12). Вновь проведите визуализацию и убедитесь в том, что теперь эффект каустики присутствует — это видно по отбрасываемой объектом тени, которая освещена уже неравномерно и имеет блики (рис. 13).
Рис. 11. Активирование просчета каустики
Рис. 12. Назначение TorusKnot объектом, вызывающим эффект каустики
Рис. 13. Визуализация в Mental Ray (эффект каустики включен)
При желании эффектом каустики можно управлять через параметры свитка mental ray: Indirect Illumination (данный свиток включен в перечень свитков параметров источника света — рис. 14), а также свитка Caustics and Global Illumination (GI), присутствующего на вкладке IndirectIllumination (окно RenderScene). В первом свитке можно изменить число испускаемых источником света фотонов кустики (CausticsPhotons) и их энергию (Energy), а во втором — регулируется целый список параметров. Отметим наиболее важные из них:
- в области Caustics — интенсивность фотонов (Multiplier); максимальное количество фотонов, которые должны использоваться при вычислении каустики в конкретной точке (Maximum Num Photons per Sample); радиус фотонов (Maximum Sampling Radius) и фильтр, применяемый к образцам при рендеринге (Filter). По умолчанию установлен фильтр Box, приводящий к формированию у световых пятен каустики резких границ и обеспечивающий более быстрый рендеринг. Как правило, при окончательной визуализации данный фильтр заменяют на фильтр Cone, применение которого позволяет получать более мягкий эффект благодаря размытию появляющихся при каустике световых бликов. При использовании фильтра Cone еще можно регулировать резкость эффекта каустики (Filter Size) — при увеличении данного параметра формируются более размытые световые пятна каустики, при уменьшении световые пятна имеют более резкие границы и оказываются более зашумленными (по умолчанию данный параметр равен 1,1);
- в области TraceDepth — максимальную глубину распространения эффекта (Max. Depth), максимальное отражение (Max. Reflections) и максимальное преломление (Max. Refractions);
- в области LightProperties — число испускаемых источником света фотонов каустики (Average Caustic Photons per Light) и степень затухания эффекта каустики (Decay).
Рис. 14. Панель Modify с раскрытым свитком mentalray: IndirectIllumination
Для примера увеличьте энергию фотонов (параметр Energy) до 2 и их радиус до 3 (параметр Maximum Sampling Radius) — освещенность вырастет, а сами фотоны станут явно заметны (рис. 15 и 16). Уменьшите значение величины Decay (Затухание) до 1,9 — распространение эффекта увеличится (рис. 17). Верните первоначальное значение параметра Energy, который по умолчанию равен 1, установите фильтр Cone, увеличьте значение Filter Size до 1,6 и количество фотонов каустики (AverageCausticPhotonsperLight) до 30 тыс. — световые пятна станут более размытыми (рис. 18). Для окончательной визуализации установите значение параметра Caustics Photons равным 1000, Multiplier — 1,3; Sampling Radius — 6 и установите фильтр Cone. В итоге результат окажется гораздо более интересным и реалистичным (рис. 19), но на его получение потребуется намного больше времени (48 мин 47 с).
Рис. 15. Настройка параметров эффекта каустики
Рис. 16. Визуализация в Mental Ray после первой корректировки параметров каустики
Рис. 17. Визуализация в Mental Ray после второй корректировки параметров каустики
Рис. 18. Визуализация в Mental Ray после третьей корректировки параметров каустики
Рис. 19. Окончательный результат визуализации в Mental Ray (эффект каустики включен)
* Каустика — световые пятна, возникающие на объектах сцены при освещении поверхностей с высокими отражающими и (или) преломляющими характеристиками. Возврат