3ds Max в дизайне среды
 9785941577798

Table of contents :
Оглавление
Благодарности
Введение
Для кого эта книга
Предлагаемый подход к компьютерному проектированию
Цель этой книги
Структура книги
Терминология
Требования к компьютеру
Глава 1. Основы 3ds Max
Основные этапы работы над проектом в 3ds Max
Основные принципы построения 3ds Max
Преимущества и недостатки 3ds Max по сравнению с другими пакетами
Интерфейс 3ds Max
Сцена
Объекты
Типы объектов
Точка привязки (Pivot Point)
Геометрические объекты
Принципы построения геометрических объектов в 3ds Max
Параметрические объекты
Базовые типы геометрических объектов
Модификаторы
Работа с объектами в окнах проекций
Выделение объектов
Перемещение, вращение и масштабирование объектов (трансформации)
Размножение объектов
Работа с числовыми параметрами
Системы координат
Центры трансформации
Работа с окнами проекции
Выбор видеодрайвера
Настройка расположения окон проекции
Отображение объектов в окнах проекции
Выбор вида в окне проекции
Перемещение вида в окнах проекции Pan
Вращение вида в окнах проекции Arc Rotate
Масштабирование вида в окнах проекции Zoom
Навигация в окнах вида из камеры и источника света
Дополнительные команды навигации
Работа с файлами
Настройка отката и "спасение" проекта
Материалы, освещение и рендеринг
Алгоритмы рендеринга
Алгоритм Scanline
Алгоритм Raytrace
Материалы и текстуры
Понятие материала
Текстуры и карты
Прямое освещение и источники света
Тени
Тени типа Shadow Map (Карта теней)
Тени типа Raytrace (Трассировка лучей)
Глобальное освещение
Методы прямой трассировки
Методы сбора
Каустика
Антиалиасинг
Другие методы рендеринга
Физически корректные методы рендеринга
Аппаратный рендеринг
Контрольные вопросы
Глава 2. Моделирование
Предварительные установки
Настройка рабочего пространства
Создание и установка папки проекта
Установка единиц измерения и шага сетки
Отображение дополнительных панелей инструментов
Дополнительные настройки
Моделирование ландшафта
Подготовка и использование в проекте плана ландшафта
Подготовка и импортирование файла изолиний
Использование изолиний для построения ландшафта
Перенос топологии ландшафта на полигональный объект
Редактирование ландшафта на полигональном уровне
Создание ландшафта при помощи лоскутов (Patches)
Создание ландшафта по растровой карте высот
Моделирование объектов среды
Подъездная дорога и стоянка
Моделирование заднего двора и фундамента
Бордюры для террас
Беговая дорожка
Бассейн
Окружение пруда
Моделирование мостика
Варианты пляжной и садовой мебели
Элементы ограды и ворот
Моделирование беседки
Фонтан
Моделирование и размещение фонарей
Спортивная площадка
Моделирование дома
Подготовка и размещение чертежей
Стены дома и эркера
Моделирование наличников, оконных рам и стекол
Веранда и лестница
Моделирование крыши
Моделирование водосточного желоба
Окончательная доводка модели дома
Моделирование и размещение растительности
Контрольные вопросы
Глава 3. Визуализация
Освещение
Освещение с использованием mental ray
Подготовка сцены и настройка параметров mental ray для черновых расчетов
Дневное освещение с использованием физически корректных источников света mental ray
Дневное освещение с использованием стандартных источников света и источников mental ray
Вечернее освещение
Освещение с использованием VRay
Настройка VRay для быстрого рендеринга
Дневное освещение с использованием физически корректных источников света и камеры VRay
Дневное освещение с использованием стандартных источников света и средств VRay
Вечернее освещение в VRay
Материалы и текстуры
Общие замечания
Редактор материалов
Использование текстур из внешних растровых файлов
Назначение и редактирование текстурных координат
Использование автоматического назначения текстурных координат
Текстурирование объектов при помощи модификатора UVW Map
Текстурирование сложных объектов с использованием модификатора Unwrap UVW
Использование процедурных трехмерных карт
Материалы
Основные материалы
Материалы с использованием смещения (displacement)
Материалы с использованием карты прозрачности
Металлы
Материал оконных стекол
Материалы воды в бассейне
Материалы водопада
Материалы растений и деревьев
Материалы светящихся фонарей
Декоративные злаки
Газонная трава
Рендеринг и постобработка
Общие настройки рендеринга
Настройки mental ray
Вкладка Renderer
Вкладка Processing (Обработка)
Вкладка Indirect Illumination (непрямое освещение)
Настройки гаммы и шейдера управления экспозицией
Настройки в материале Arch+Design для оптимизации рендеринга и постобработки
Оптимизация расчета травы, созданной смещением
Настройки VRay
Вкладка VRay
Вкладка Indirect Illumination (непрямое освещение)
Вкладка Settings (настройки)
Настройки гаммы 3ds Max и VRay
Использование VRay Frame buffer (экранный буфер VRay)
Использование VRayProxy
Дополнительные возможности рендеринга
Поэлементный рендеринг и использование его результатов в постобработке
Пакетный рендеринг
Рендеринг из командной строки
Рендеринг по сети
Анимация
Настройка параметров анимации
Анимация облета камерой
Анимация ряби
Особенности настроек рендеринга анимации
Контрольные вопросы
Приложение 1. Основные материалы mental ray и VRay
Материал Arch & Design (mr)
Материал Car Paint (mr)
Материалы для создания эффекта подповерхностного рассеяния
Материал VRayMtl
Материал VRayFastSSS
Материал VRayBlendMtl
Приложение 2. Пакеты и плагины к 3ds Max и Autodesk VIZ для создания растительности
OnyxGARDEN Suite и OnyxTREE STORM
Bionatics NatFX и EASYnat
Другие пакеты для создания растений
Приложение 3. Создание различных текстур
Текстуры с каналом прозрачности
Создание текстуры с каналом прозрачности в редакторах векторной графики
Создание текстуры с каналом прозрачности в редакторах растровой графики
Бесшовная повторяющаяся текстура
Создание карты высот по изолиниям
Сшивание изображений в Adobe Photoshop CS3
Сферическая панорама в формате HDRI
"Запекание" текстур в 3ds Max
Создание карты высот и карты нормалей в 3ds Max
Создание анимированной текстуры, зацикленной по времени
Приложение 4. Генераторы текстур
Плагины для Photoshop от Alien Skin Software
Плагины для Photoshop от Flaming Pear
Panopticum Fire 3 для Photoshop
Texture Anarchy для Photoshop
Digital Elements Aurora
Genetica Pro
DarkTree Textures
Filter Forge
Приложение 5. Vue 6 Infinite и Vue 6 xStream
Обзор пакета
Предварительные установки
Интерфейс
Редактор атмосферы
Редактор ландшафтов
Редактор материалов
Редактор растительности
Экосистема
Анимация
Рендеринг
Примеры совместного использования Vue и 3ds Max
Создание сферического окружения в формате HDRI
Синхронизация положения и анимации объектов в 3ds Max и Vue
Совместный рендеринг в 3ds Max и Vue xStream
Приложение 6. Полезные программы
Right Hemisphere Deep Paint 3D 2.x и Maxon BodyPaint 3D 3.x
Autodesk Mudbox
3D-Brush 2.0
RealVIZ Stitcher 5.5 Unlimited
RealVIZ ImageModeler 4.x
Informatix Piranesi 5
Приложение 7. Нововведения в 3ds Max 2008
Нововведения в mental ray
Изменения в алгоритмах и настройках
Фотографическое управление экспозицией
Изменения в материале Arc + Design
Источник света mr Sky Portal
Библиотека шейдеров Production
Шейдер mr Raytype Switcher (environment)
Шейдер mr Raytype Switcher
Материал Matte/Shadow/Reflection и шейдер mr Camera Map
Улучшения в работе с объектами в окнах проекции
Обновленная система адаптивной деградации
Режим отображения эффектов освещения и материалов в реальном времени
Scene Explorer
Улучшения в моделировании и текстурировании
Новые режимы выделения подобъектов при редактировании полигонов
Изменения в модификаторе Unwrap UVW
Приложение 8. Описание DVD
Описание видеокурса по основам работы в 3ds Max 2008
Предметный указатель

Citation preview

Áîðèñ Êóëàãèí Îëüãà ßöþê

Допущено Учебно-методическим объединением по специальности "Дизайн архитектурной среды" в качестве учебного пособия для студентов архитектурных и дизайнерских специальностей

Ñàíêò-Ïåòåðáóðã «ÁÕÂ-Ïåòåðáóðã» 2008

УДК 681.3.06 ББК 32.973.26-018.2 К90

Кулагин, Б. Ю. К90

3ds Max в дизайне среды / Б. Ю. Кулагин, О. Г. Яцюк. — СПб.: БХВ-Петербург, 2008. — 976 с.: ил. + Видеокурс (на DVD) ISBN 978-5-94157-779-8 Книга посвящена проектированию средовых объектов с использованием графического редактора 3ds Max. Рассматриваются все этапы создания трехмерной сцены — от моделирования до визуализации и анимации. Описаны приемы моделирования на основе сплайнов и полигонов, настройки освещения и создание сложных материалов с использованием шейдеров mental ray и VRay. На DVD содержатся все необходимые сцены и текстуры для выполнения проекта и дополнительных уроков, цветные иллюстрации рисунков, приведенных в книге, а также видеокурс по основам работы в 3ds Max 2008. Для дизайнеров интерьеров, разработчиков игр, Web-дизайнеров, а также пользователей, увлекающихся трехмерной графикой

Группа подготовки издания: Главный редактор Зам. главного редактора Зав. редакцией Редактор Компьютерная верстка Корректор Дизайн обложки Зав. производством

УДК 681.3.06 ББК 32.973.26-018.2

Екатерина Кондукова Наталья Таркова Григорий Добин Юрий Рожко Ольги Сергиенко Зинаида Дмитриева Елены Беляевой Николай Тверских

Рецензенты: Мелодинский Д. Л., доктор искусствоведения, профессор кафедры основ архитектурного проектирования МАРХИ (Государственной архитектурной академии) Григорьев Э. П., доктор технических наук, кандидат архитектуры

Ëèöåíçèÿ ÈÄ ¹ 02429 îò 24.07.00. Ïîäïèñàíî â ïå÷àòü 29.04.08. Ôîðìàò 70×1001/16. Ïå÷àòü îôñåòíàÿ. Óñë. ïå÷. ë. 78,69. Òèðàæ 2500 ýêç. Çàêàç ¹ "ÁÕÂ-Ïåòåðáóðã", 194354, Ñàíêò-Ïåòåðáóðã, óë. Åñåíèíà, 5Á. Ñàíèòàðíî-ýïèäåìèîëîãè÷åñêîå çàêëþ÷åíèå íà ïðîäóêöèþ ¹ 77.99.60.953.Ä.002108.02.07 îò 28.02.2007 ã. âûäàíî Ôåäåðàëüíîé ñëóæáîé ïî íàäçîðó â ñôåðå çàùèòû ïðàâ ïîòðåáèòåëåé è áëàãîïîëó÷èÿ ÷åëîâåêà. Îòïå÷àòàíî ñ ãîòîâûõ äèàïîçèòèâîâ â ÃÓÏ "Òèïîãðàôèÿ "Íàóêà" 199034, Ñàíêò-Ïåòåðáóðã, 9 ëèíèÿ, 12

ISBN 978-5-94157-779-8

© Кулагин Б. Ю., Яцюк О. Г., 2008 © Оформление, издательство "БХВ-Петербург", 2008

Îãëàâëåíèå Благодарности ....................................................................................................... 1 Введение .................................................................................................................. 3 Для кого эта книга................................................................................................................ 3 Предлагаемый подход к компьютерному проектированию ............................................. 3 Цель этой книги.................................................................................................................... 7 Структура книги ................................................................................................................... 9 Терминология ..................................................................................................................... 10 Требования к компьютеру ................................................................................................. 11

Глава 1. Основы 3ds Max ................................................................................... 13 Основные этапы работы над проектом в 3ds Max........................................................... 16 Основные принципы построения 3ds Max ....................................................................... 17 Преимущества и недостатки 3ds Max по сравнению с другими пакетами ................... 19 Интерфейс 3ds Max ............................................................................................................ 22 Сцена ................................................................................................................................... 25 Объекты .............................................................................................................................. 25 Типы объектов ............................................................................................................ 25 Точка привязки (Pivot Point) ..................................................................................... 25 Геометрические объекты ........................................................................................... 28 Принципы построения геометрических объектов в 3ds Max ............................. 28 Параметрические объекты .................................................................................... 30 Базовые типы геометрических объектов ............................................................. 32 Модификаторы ................................................................................................................... 39 Работа с объектами в окнах проекций.............................................................................. 43 Выделение объектов .................................................................................................. 43 Перемещение, вращение и масштабирование объектов (трансформации) ........... 45 Размножение объектов............................................................................................... 47 Работа с числовыми параметрами ............................................................................ 52 Системы координат............................................................................................................ 54 Центры трансформации ............................................................................................. 60

IV

Îãëàâëåíèå

Работа с окнами проекции................................................................................................. 62 Выбор видеодрайвера ................................................................................................ 62 Настройка расположения окон проекции ................................................................ 64 Отображение объектов в окнах проекции ................................................................ 65 Выбор вида в окне проекции ..................................................................................... 71 Перемещение вида в окнах проекции Pan ............................................................... 72 Вращение вида в окнах проекции Arc Rotate ........................................................... 72 Масштабирование вида в окнах проекции Zoom ..................................................... 73 Навигация в окнах вида из камеры и источника света............................................ 73 Дополнительные команды навигации ...................................................................... 74 Работа с файлами ............................................................................................................... 75 Настройка отката и "спасение" проекта ........................................................................... 78 Материалы, освещение и рендеринг ................................................................................ 80 Алгоритмы рендеринга .............................................................................................. 80 Алгоритм Scanline.................................................................................................. 80 Алгоритм Raytrace ................................................................................................. 82 Материалы и текстуры ............................................................................................... 83 Понятие материала ................................................................................................ 83 Текстуры и карты................................................................................................... 84 Прямое освещение и источники света...................................................................... 88 Тени ............................................................................................................................. 90 Тени типа Shadow Map (Карта теней) .................................................................. 90 Тени типа Raytrace (Трассировка лучей) ............................................................. 91 Глобальное освещение ............................................................................................... 92 Методы прямой трассировки ................................................................................ 93 Методы сбора ......................................................................................................... 94 Каустика ................................................................................................................. 96 Антиалиасинг.............................................................................................................. 97 Другие методы рендеринга ....................................................................................... 99 Физически корректные методы рендеринга ........................................................ 99 Аппаратный рендеринг ....................................................................................... 100 Контрольные вопросы ..................................................................................................... 100

Глава 2. Моделирование .................................................................................. 103 Предварительные установки ........................................................................................... 107 Настройка рабочего пространства .......................................................................... 107 Создание и установка папки проекта ..................................................................... 112 Установка единиц измерения и шага сетки ........................................................... 113 Отображение дополнительных панелей инструментов ........................................ 117 Дополнительные настройки .................................................................................... 118 Моделирование ландшафта ............................................................................................. 118 Подготовка и использование в проекте плана ландшафта ................................... 118 Подготовка и импортирование файла изолиний ................................................... 131 Использование изолиний для построения ландшафта .......................................... 139 Перенос топологии ландшафта на полигональный объект .................................. 153

Îãëàâëåíèå

V

Редактирование ландшафта на полигональном уровне ........................................ 157 Создание ландшафта при помощи лоскутов (Patches) .......................................... 175 Создание ландшафта по растровой карте высот ................................................... 183 Моделирование объектов среды ..................................................................................... 185 Подъездная дорога и стоянка .................................................................................. 186 Моделирование заднего двора и фундамента ........................................................ 200 Бордюры для террас ................................................................................................. 203 Беговая дорожка ....................................................................................................... 206 Бассейн ...................................................................................................................... 213 Окружение пруда...................................................................................................... 235 Моделирование мостика .......................................................................................... 242 Варианты пляжной и садовой мебели .................................................................... 277 Элементы ограды и ворот........................................................................................ 330 Моделирование беседки .......................................................................................... 357 Фонтан....................................................................................................................... 389 Моделирование и размещение фонарей ................................................................. 397 Спортивная площадка .............................................................................................. 400 Моделирование дома ....................................................................................................... 401 Подготовка и размещение чертежей ...................................................................... 401 Стены дома и эркера ................................................................................................ 404 Моделирование наличников, оконных рам и стекол ............................................ 418 Веранда и лестница .................................................................................................. 426 Моделирование крыши ............................................................................................ 428 Моделирование водосточного желоба ................................................................... 444 Окончательная доводка модели дома ..................................................................... 448 Моделирование и размещение растительности ............................................................. 449 Контрольные вопросы ..................................................................................................... 459

Глава 3. Визуализация ..................................................................................... 461 Освещение ........................................................................................................................ 465 Освещение с использованием mental ray................................................................ 465 Подготовка сцены и настройка параметров mental ray для черновых расчетов ................................................................................................................ 465 Дневное освещение с использованием физически корректных источников света mental ray .................................................................................................... 470 Дневное освещение с использованием стандартных источников света и источников mental ray....................................................................................... 483 Вечернее освещение ............................................................................................ 496 Освещение с использованием VRay ....................................................................... 506 Настройка VRay для быстрого рендеринга ....................................................... 506 Дневное освещение с использованием физически корректных источников света и камеры VRay ........................................................................................... 509 Дневное освещение с использованием стандартных источников света и средств VRay ..................................................................................................... 520 Вечернее освещение в VRay ............................................................................... 525

VI

Îãëàâëåíèå

Материалы и текстуры..................................................................................................... 530 Общие замечания ..................................................................................................... 530 Редактор материалов................................................................................................ 533 Использование текстур из внешних растровых файлов........................................ 537 Назначение и редактирование текстурных координат .......................................... 549 Использование автоматического назначения текстурных координат ............. 549 Текстурирование объектов при помощи модификатора UVW Map ................ 549 Текстурирование сложных объектов с использованием модификатора Unwrap UVW ........................................................................................................ 556 Использование процедурных трехмерных карт .................................................... 576 Материалы ........................................................................................................................ 578 Основные материалы ............................................................................................... 578 Материалы с использованием смещения (displacement) ....................................... 590 Материалы с использованием карты прозрачности ......................................... 596 Металлы................................................................................................................ 601 Материал оконных стекол................................................................................... 610 Материалы воды в бассейне ............................................................................... 613 Материалы водопада ........................................................................................... 618 Материалы растений и деревьев ........................................................................ 626 Материалы светящихся фонарей ........................................................................ 633 Декоративные злаки ................................................................................................. 635 Газонная трава .......................................................................................................... 644 Рендеринг и постобработка ............................................................................................. 657 Общие настройки рендеринга ................................................................................. 657 Настройки mental ray................................................................................................ 667 Вкладка Renderer ................................................................................................. 667 Вкладка Processing (Обработка) ......................................................................... 671 Вкладка Indirect Illumination (непрямое освещение) ........................................ 672 Настройки гаммы и шейдера управления экспозицией.................................... 675 Настройки в материале Arch+Design для оптимизации рендеринга и постобработки ................................................................................................... 676 Оптимизация расчета травы, созданной смещением ........................................ 678 Настройки VRay ....................................................................................................... 679 Вкладка VRay ....................................................................................................... 679 Вкладка Indirect Illumination (непрямое освещение) ........................................ 685 Вкладка Settings (настройки) .............................................................................. 692 Настройки гаммы 3ds Max и VRay..................................................................... 697 Использование VRay Frame buffer (экранный буфер VRay) ............................ 697 Использование VRayProxy .................................................................................. 701 Дополнительные возможности рендеринга ........................................................... 703 Поэлементный рендеринг и использование его результатов в постобработке ................................................................................................... 703 Пакетный рендеринг............................................................................................ 718 Рендеринг из командной строки......................................................................... 721 Рендеринг по сети ................................................................................................ 722

Îãëàâëåíèå

VII

Анимация .................................................................................................................. 725 Настройка параметров анимации ....................................................................... 725 Анимация облета камерой .................................................................................. 726 Анимация ряби ..................................................................................................... 732 Особенности настроек рендеринга анимации ................................................... 734 Контрольные вопросы ..................................................................................................... 736

ПРИЛОЖЕНИЯ ................................................................................................ 739 Приложение 1. Основные материалы mental ray и VRay ......................... 741 Материал Arch & Design (mr) .......................................................................................... 741 Материал Car Paint (mr) ................................................................................................... 762 Материалы для создания эффекта подповерхностного рассеяния .............................. 763 Материал VRayMtl ........................................................................................................... 766 Материал VRayFastSSS ................................................................................................... 778 Материал VRayBlendMtl ................................................................................................. 779

Приложение 2. Пакеты и плагины к 3ds Max и Autodesk VIZ для создания растительности ......................................................................... 781 OnyxGARDEN Suite и OnyxTREE STORM .................................................................... 781 Bionatics NatFX и EASYnat ............................................................................................. 788 Другие пакеты для создания растений ........................................................................... 790

Приложение 3. Создание различных текстур .............................................. 795 Текстуры с каналом прозрачности ................................................................................. 795 Создание текстуры с каналом прозрачности в редакторах векторной графики .... 796 Создание текстуры с каналом прозрачности в редакторах растровой графики..... 799 Бесшовная повторяющаяся текстура .............................................................................. 802 Создание карты высот по изолиниям ............................................................................. 808 Сшивание изображений в Adobe Photoshop CS3 ........................................................... 811 Сферическая панорама в формате HDRI ....................................................................... 813 "Запекание" текстур в 3ds Max ....................................................................................... 826 Создание карты высот и карты нормалей в 3ds Max .................................................... 832 Создание анимированной текстуры, зацикленной по времени .................................... 838

Приложение 4. Генераторы текстур .............................................................. 839 Плагины для Photoshop от Alien Skin Software .............................................................. 839 Плагины для Photoshop от Flaming Pear ......................................................................... 841 Panopticum Fire 3 для Photoshop...................................................................................... 844 Texture Anarchy для Photoshop ........................................................................................ 845 Digital Elements Aurora..................................................................................................... 846 Genetica Pro ....................................................................................................................... 846 DarkTree Textures ............................................................................................................. 853 Filter Forge ........................................................................................................................ 862

VIII

Îãëàâëåíèå

Приложение 5. Vue 6 Infinite и Vue 6 xStream.............................................. 865 Обзор пакета ..................................................................................................................... 866 Предварительные установки ................................................................................... 866 Интерфейс ................................................................................................................. 867 Редактор атмосферы ................................................................................................ 868 Редактор ландшафтов .............................................................................................. 872 Редактор материалов................................................................................................ 874 Редактор растительности ......................................................................................... 876 Экосистема................................................................................................................ 878 Анимация .................................................................................................................. 878 Рендеринг .................................................................................................................. 881 Примеры совместного использования Vue и 3ds Max .................................................. 883 Создание сферического окружения в формате HDRI ........................................... 883 Синхронизация положения и анимации объектов в 3ds Max и Vue .................... 888 Совместный рендеринг в 3ds Max и Vue xStream.................................................. 892

Приложение 6. Полезные программы ........................................................... 897 Right Hemisphere Deep Paint 3D 2.x и Maxon BodyPaint 3D 3.x ................................... 897 Autodesk Mudbox .............................................................................................................. 902 3D-Brush 2.0 ...................................................................................................................... 909 RealVIZ Stitcher 5.5 Unlimited ......................................................................................... 911 RealVIZ ImageModeler 4.x ............................................................................................... 916 Informatix Piranesi 5 .......................................................................................................... 927

Приложение 7. Нововведения в 3ds Max 2008 ............................................. 937 Нововведения в mental ray ............................................................................................... 937 Изменения в алгоритмах и настройках .................................................................. 937 Фотографическое управление экспозицией ........................................................... 938 Изменения в материале Arc + Design ..................................................................... 939 Источник света mr Sky Portal .................................................................................. 941 Библиотека шейдеров Production .................................................................................... 942 Шейдер mr Raytype Switcher (environment) ............................................................ 943 Шейдер mr Raytype Switcher ................................................................................... 943 Материал Matte/Shadow/Reflection и шейдер mr Camera Map .............................. 945 Улучшения в работе с объектами в окнах проекции..................................................... 949 Обновленная система адаптивной деградации ...................................................... 949 Режим отображения эффектов освещения и материалов в реальном времени ...... 951 Scene Explorer ........................................................................................................... 952 Улучшения в моделировании и текстурировании ......................................................... 954 Новые режимы выделения подобъектов при редактировании полигонов .......... 954 Изменения в модификаторе Unwrap UVW ............................................................. 954

Приложение 8. Описание DVD ....................................................................... 957 Описание видеокурса по основам работы в 3ds Max 2008 ........................................... 957

Предметный указатель .................................................................................... 959

Áëàãîäàðíîñòè Мы благодарны всем тем, без кого эта книга не была бы возможна. Прежде всего, мы благодарим Ирину Дурихину, автора проекта, рассматриваемого в книге, за помощь и критику, и просим у нее прощения, что несколько отошли от первоначального замысла. Это было сделано с исключительной целью — показать, как делаются объекты, не присутствующие в проекте. Благодарим Павла Ледина и Игоря Сивакова за помощь, касающуюся рендеринга в mental ray. Разобраться с VRay нам помогли Алексей Дук, Артур Абидинов, Антон Стець и Юрий Копылов, за что мы им очень благодарны. Мы благодарим дистрибутора VRay в России, Realtime Studio (www.realtime.ru/studio), за предоставленную лицензионную версию VRay. Отдельную благодарность мы выражаем Андрею Шпагину за материалы по пакету 3D Brush (www.3dbrush.com). Благодарим руководство и коллектив издательства "БХВ-Петербург" за понимание и терпение, без которых эта книга не появилась бы в том виде, в котором мы ее задумывали. И, наконец, благодарим вас, наших читателей, и надеемся, что книга окажется для вас полезной. Борис Кулагин, Ольга Яцюк

2

Ïðèëîæåíèå 7

Ââåäåíèå Äëÿ êîãî ýòà êíèãà Эта книга написана для тех, кто использует, пытается или помышляет использовать компьютер как инструмент проектирования. Круг дизайнеров, владеющих графическими редакторами и программами моделирования, стремительно расширяется, но потребность в подобных специалистах растет еще быстрее. Меняются и требования, предъявляемые к компьютерным проектам. Предлагаемое издание отличается от книг, раскрывающих узкие технические проблемы 3D-визуализации. Мы рассматриваем компьютерные технологии как новое мощное средство художественного проектирования. В последнее время словосочетание "художественное проектирование" выходит из речевого обращения, заменяясь коротким термином дизайн. При этом, возможно, утрачивается, нивелируется некий очень важный аспект проектной деятельности, и активное, но непрофессиональное использование компьютера, непонимание его возможностей ускоряет этот процесс. Вместе с тем, развивающиеся цифровые технологии несут в себе мощный эстетический потенциал. В проектной деятельности они выполняют не только технические, сугубо утилитарные функции. Эмоциональное воздействие экранной виртуальной реальности, оказывается, зачастую, более ярким, чем выразительность традиционных художественных образов, поэтому в книге мы пытаемся показать, что грамотно используемый компьютер является эффективным художественным инструментом.

Ïðåäëàãàåìûé ïîäõîä ê êîìïüþòåðíîìó ïðîåêòèðîâàíèþ Закономерность и оправданность включения цифровых технологий в сферу искусства подтверждается всей историей художественной культуры. Точные

4

Ââåäåíèå

науки и техника издревле влияли на развитие эстетических принципов и зачастую определяли возникновение новых видов творчества: скульпторы и архитекторы Древнего Египта, Античной Греции, Средневековья привлекали математику для поиска логических закономерностей гармонии. Художники Возрождения пользовались циркулем и линейкой наряду с кистью. Индустриальная эпоха вызвала цепную реакцию трансформирования всей художественной сферы. Воздействуя на материальные аспекты цивилизации, техника изменила образное мышление и раздвинула границы творческой деятельности. Достижения точных наук инициировали поиски новых эстетических концепций. Интерес к гармоничным внешним формам сменился стремлением выразить подсознательное, интуитивное. Примечательно, что именно "технические" виды искусства, фотография и кино, продолжили работу с объектами материального мира, исследуя различные аспекты реальности. В это же время "чистое искусство", открывая новые средства выразительности, стало развиваться в совершенно неожиданных направлениях. Абстракционисты, в стремлении передать внутреннюю суть объектов, отказались от миметической связи с действительностью и сконцентрировались на возможностях художественного воздействия геометрических форм, цвета и света. Фигуративное искусство также отступило от рационально-логических принципов построения изображения и погрузилось в рискованные эксперименты, безжалостно ломая форму и раскладывая цвет на составляющие. Если в Античности и Возрождении математика была необходима для анализа принципов гармонизации внешних форм, то искусство индустриальной эпохи использовало техническое мышление и логический подход для проникновения вглубь художественного образа, исследования его внутренней структуры. Кризисный, переломный XX век превзошел все остальные по драматичности и парадоксальности. Отличительными чертами искусства стали тиражируемость, активное использование в качестве предмета и средства машин и механизмов, экспериментирование с новыми материалами и технологиями. Постоянные поиски новых рецепторов эстетического воздействия, новых каналов художественно-смыслового пространства сопровождались попытками уйти от традиционных приемов и техник, классических инструментов и материалов. Художественная деятельность больше не могла полноценно развиваться на старой материальной базе, она стремилась перейти рубеж, открывающий иные творческие горизонты. Новый "компьютерный" импульс развития искусства дали цифровые технологии, и огромную роль в стремительном эстетическом их освоении сыграл художественный опыт, накопленный в арт-экспериментах XX века. Формирование новых концепций в изобразительном искусстве прошедшего столетия и генезис компьютерных графических технологий удивительным образом совпали как по используемым методам, так и по типологии. Концепции формообразования в абстрактной живописи (геометрическая форма и

Ââåäåíèå

5

цвет) оказались близки сути базовых алгоритмов векторной графики. Растровые технологии смогли безупречно воплотить идеи нового фигуративного искусства: футуризма, с его симультантным изображением разновременных событий, наложением последовательных фаз движения на одно изображение; сюрреализма, снимающего различие между реальным и мистическим; гиперреализма, вписывающего подчеркнуто натуралистические детали в ирреальный контекст. Зародившийся в середине столетия поп-арт, основанный на принципах коллажа и тиражировании заимствованных образов реальности, вплотную подошел к реализации идеи синтетического искусства с помощью компьютера. Принципы кинетизма легли в основу эстетики компьютерной анимации. Минимальное искусство, с его "небытием реальности", и концептуализм, трактующий искусство как информацию и сводящий работу художника к работе мысли, подготовили почву для принятия искусства виртуального мира, вхождение в который стало возможным благодаря мультимедийным технологиям. Арт-практики конца XX века, специфические пространственновременные арт-действия, такие как перформанс1 и хэппенинг2, дали импульс развития интерактивному искусству. В динамичной мультимедийной компьютерной среде смог оптимально реализоваться игровой подход, характерный для постмодернизма. К концу XX века практически все художники согласились с тем, что компьютер — это инструмент, способный технически виртуозно реализовывать современные арт-идеи. Однако уникальные возможности электронной визуализации, анимация и интерактивный режим взаимодействия человека с компьютером позволяют говорить о зарождении принципиально новой эстетики. Почти сто лет назад Василий Кандинский писал: "Искусство выходит из границ, в которые его хочет втиснуть время, и указывает содержание будущего". Сегодня мы констатируем изменение самого понятия искусства, а цифровые технологии, став универсальным посредником многих форм творчества, определяют новый вектор его развития. В компьютерной виртуальной среде дистанция между художественным миром и действительностью размывается. Эстетические особенности виртуальной реальности определяются временной, незаконченной, динамической природой мультимедийных структур, основанной на возможности компьютерного синтеза трансформируемого пространства и нелинейного времени. "Вторичный" процесс наблюдения уже готового, созданного кем-то произведения, заменен интерактивным взаимодействием с художественным пространством. Пластичность компьютерных образов позволяет и автору, и зрителю ощутить новый мир изнутри, погрузиться в него и стать активным участником арт-процесса благодаря иллюзии 1

Перформанс (performance) — искусство акций, производимых художниками перед зрителями.

2

Хэппенинг (happening) — вид театрального представления, в котором событие и действие являются самоцелью, а не частью драматического сюжета.

6

Ââåäåíèå

трехмерности экранного изображения, возможности перемещения в пространстве и во времени, способности трансформировать объекты виртуальной среды. Компьютерное творчество основано на объединении противоположных начал: объективного и субъективного, рациональной технической базы и иррациональной художественной фантазии. Пожалуй, наиболее органично компьютер включился в дизайн-деятельность, которая вычленилась из сферы искусства на волне технического прогресса в ответ на "индустриализацию" жизни. Этот вид творческой деятельности априори близок как материальным, так и эстетическим потребностям людей. Адаптируя человека к техногенной среде, защищая его от индустриального стресса, приспосабливая к новым реалиям жизни и производства, дизайн стал доминирующей частью художественного творчества XX века. Сегодня дизайн — приоритетная сфера эстетического освоения виртуальной реальности, т. к. проектность генетически присуща компьютерному творчеству, а сам дизайн всегда базируется на практическом и теоретическом опыте прошлого и на технологиях настоящего. Компьютеризация дизайна позволяет оптимально решать задачи художественно-образного моделирования и композиционного формообразования. Интерактивная реализация классических композиционных приемов (пропорциональность, ритм, симметрия, контраст, нюанс), максимально удобный режим комбинаторных перестановок, трансформаций, поворотов дает возможность добиваться равновесия, единства и соподчинения всех частей проектируемого объекта. Компьютерные технологии параметризации позволяют оптимально моделировать композиционную и конструктивную неоднозначность формы. В многовариантном типовом проектировании изменение значений параметров позволяет получить различные размерные, цветовые, текстурные модификации. Необходимый и достаточный набор параметров компьютерной модели определяется поставленной задачей и зависит от структуры проектируемого объекта. Зачастую виртуальная модель более наглядна, чем материальный макет. Беря на себя выполнение рутинных операций и предоставляя невиданные ранее возможности, компьютер снижает временные затраты и стимулирует интеллектуальные ресурсы для решения творческих задач дизайна. Главное достоинство цифровых технологий в том, что экранный образ пластичен и изменяем. Интерактивное проектирование позволяет не только повысить профессиональную эффективность работы дизайнера, но и активизировать участие заказчика в проекте. Это особенно актуально в условиях нынешней системно-средовой концепции проектирования и субъектного подхода в дизайне. Возникшая в предметном и средовом дизайне тенденция создания максимально реалистичного компьютерного изображения обусловлена тем, что заказчик хочет увидеть "реализованный" проект и понять, действительно ли это то, что ему нужно. Создание "виртуальной базы" дизайн-

Ââåäåíèå

7

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

Öåëü ýòîé êíèãè Мультимедийная система проектирования, основанная на интеграции художественных средств, естественного и искусственного интеллекта, требует владения высокими технологиями. В этом контексте задача разработчиков мультимедиа — создание максимально комфортных с точки зрения пользователя интерфейсов, интуитивно понятных и не противоречащих традиционным методам работы художников и дизайнеров. Развитие мультимедиа в значительной степени должно зависеть от требований выдвигаемых дизайнерами и художниками. Вместе с тем, объективен и встречный процесс: адаптировать компьютерные технологии можно только при активном участии дизайнеров, а для этого они вынуждены освоить существующие аппаратные и программные средства. Интеллект специалиста подобного типа должен характеризоваться синтезом художественно-гуманитарного и логико-математического типов мышления. Наша задача — помочь дизайнерам полноценно освоить цифровые технологии, адаптировать их в среде стремительно развивающихся технических средств. Предлагаемая в книге методика компьютерного моделирования дается в поле разработки средовых объектов на базе 3ds Max — общепризнанного, наиболее универсального и эффективного на сегодняшний день программного продукта для решения подобных задач. Анализируя особенности 3ds Max необходимо отметить, что это достаточно сложный пакет трехмерного моделирования, анимации и визуализации, несущий на себе груз всей истории развития мультимедийных систем проектирования. С момента появления первой версии 3ds Max, и по сей день, смени-

8

Ââåäåíèå

лось не менее трех поколений аппаратной части компьютера (процессоров, видеосистем и т. д.), и то, что было необходимо десять лет назад, например упрощение моделей при выводе на экран, сейчас воспринимается как анахронизм. По ряду позиций 3ds Max уступает более поздним редакторам, в нем не реализованы многие естественные для новых программных продуктов вещи (например, "умные привязки", направляющие (Guide Lines) и т. д.). Велико количество команд, меню, окон, есть некоторая запутанность во взаимодействиях и переходах между ними. Некоторые считают, что интерфейс пакета "недружелюбный", и в этом есть доля правды. Однако сложность 3ds Max — следствие широких возможностей. Разработчики создали "интеллектуальную" программу, позволяющую решать задачи почти любой сложности во всех областях, будь то дизайн интерьеров, среды, техническая или художественная визуализация или анимация. Конечно, программисты создавали этот редактор в какой-то мере "под себя", но при этом учитывались пожелания огромной армии пользователей 3D Studio для DOS. К сожалению, все это происходило более 10-ти лет назад, и отношение к компьютеру тогда было совсем иным, каждый, кто имел с ним дело, был немного программистом, сетевиком и знал, сколько байт в одном килобайте. Взрывообразный рост популярности и упрощение процесса общения с компьютером привели к тому, что большинство современных пользователей с большим трудом представляют, что же происходит за экраном, причем некоторые "свято верят" в то, что именно монитор и есть компьютер. Это усложняет процесс освоения сложных программ, вплоть до отторжения их "гуманитариями". Но, с другой стороны, живопись на холсте с помощью кистей и красок — это тоже технология, со своими требованиями и законами. Вряд ли художник сможет достичь высот, зная только в какую часть холста нужно положить краску определенного цвета. Нужно еще знать, как это сделать, какой кистью, на какой грунт и т. д. Компьютерная программа — это тот же инструмент, со своими законами и принципами, со своими достоинствами и недостатками. Знание их хотя бы в первом приближении позволяют избежать многих проблем и сделать работу более эффективной. Дизайнеры (особенно "промдизайнеры", "средовики" и "интерьерщики") вынуждены осваивать пакеты трехмерного моделирования, как вынуждены востоковеды учить китайский или японский язык. В противном случае им придется постоянно взаимодействовать с компьютерщиком, реализующим проектные идеи, а это далеко не лучший вариант творческого процесса. Все большее число дизайнеров решается на этот трудный шаг, и мы хотим помочь им справиться со столь сложной задачей. Мы выбрали метод "погружения" известный людям, изучающим иностранные языки. Погружение происходит в среду реальных задач, стоящих перед дизайнерами. Свободная форма изложения позволяет снять психологический барьер, вместе с тем, книга, по

Ââåäåíèå

9

сути, является учебником. Контрольные вопросы в конце разделов не только проверяют степень усвоения материала, но и помогают структурировать информацию и являются встроенным в книгу справочником по 3ds Max.

Ñòðóêòóðà êíèãè Книга состоит из трех глав и восьми приложений. Первая глава посвящена основам 3ds Max и не превязана к проекту. В ней мы постарались в краткой и сжатой форме представить логическое и технологическое построение 3ds Max. При этом мы старались не просто переводить справку, но и дать некоторый анализ и рекомендации по применению тех или иных средств 3ds Max, основанных на более чем десятилетнем опыте работы. Вторая и третья главы, "Моделирование" и "Визуализация", посвящены непосредственно работе над проектом, так, как ее выполняет дизайнер "трехмерщик-универсал", т. е. от начала до конца в одиночку. Следует отметить, что если при моделировании нет разницы, какой модуль рендеринга (или визуализации) будет использован в дальнейшем, то уже начиная с постановки света, пути при работе над проектом расходятся, и весьма существенно. Но, как вы увидите, прочитав соответствующие разделы книги, принципиальных отличий нет, поэтому некоторые разделы (например, посвященные материалам) мы объединили, обсуждая настройки материалов и для модулей рендеринга mental ray, и VRay. Каждый из этих модулей обладает своими преимуществами, и мы надеемся, что такой подход позволит вам овладеть ими обоими. В приложениях рассматриваются вопросы, которые так или иначе касаются материала книги, но не вошли в основной текст. Мы надеемся, что эта дополнительная информация будет вам полезна. Текст в книге структурирован следующим образом. Прежде всего, дается задание, что нужно сделать. Это часть никак не выделяется, т. к. вся книга, по сути, набор микроуроков. Далее идет пошаговое описание того, что вы должны сделать, с форматированием текста как списка.  Откройте файл Project-start.max.

Для того чтобы упростить процесс поиска нужной команды, предусмотрен уровень "как сделать", выделенный соответствующим способом. В некоторых случаях этот уровень может содержать несколько строк, например: Главное меню  File  Open Найдите файл Project-start.max

10

Ââåäåíèå

Такая форма записи была использована много лет назад, и, по отзывам читателей, предпочтительнее практикуемой многими авторами формы "Откройте в главном меню подменю File (Файл), щелкните левой кнопкой мыши на пункте Open (Открыть) и т. д.". И, наконец, в тексте встречается множество замечаний, пояснений и советов, иногда достаточно обширных, которые выделены следующим образом:  ЗАМЕЧАНИЕ Текст, выделенный таким образом, вы можете читать или не читать, по вашему усмотрению. Как правило, это никак не отразится на выполнении текущего упражнения. Но мы все же советуем вам обращать внимание на информацию, особенно помеченную "Пояснение" и "Очень важно!".

Òåðìèíîëîãèÿ Несмотря на то, что в обиходе мы совершенно не задумываясь, применяем заимствованные слова, например, "телефон-автомат", а не "голосовое переговорное устройство общественного пользования", "компьютер", а не "счетнорешающая машина", как раз в компьютерной литературе, и по трехмерной графике в частности, до сих пор слова, применяемые специалистами уже более полутора десятка лет, заменяются на не совсем подходящие по смыслу русские эквиваленты. Например, "полигон" (Polygon) — это совсем не "многоугольник", тем более что в 3ds Max есть такой примитив, N-Gone. И рендеринг (rendering) это нечто большее, чем просто "визуализация", тем более что последнее слово тоже не русское. Да, конечно, не стоит доходить до абсурда, например, фраза "выделить фейсы, отдетачить с копи, отмиррорить, приаттачить, и свелдить вертексы" — это явный перебор, хотя профессионалы"максисты" прекрасно поймут эту фразу, так же как врачи понимают, что значит "активная биорезонансная терапия". В книге мы постарались легализовать несколько терминов, общеупотребительных в среде специалистов по трехмерной графике (что важно, в том числе, и для того, чтобы и вы, и вас понимали в дальнейшем на соответствующих форумах в Интернете). Это рендеринг, меш, сплайн и еще несколько десятков слов, переводить которые мы считаем неразумным. Как правило, при первом появлении этих терминов мы даем им пояснение, опуская эту процедуру в дальнейшем. Большинство команд 3ds Max записано в двойной форме: дано название на английском языке и в скобках — перевод (например, Merge (Объединить)). Это не относится к разделам "как сделать", как правило, все переводы даны до этого, и скобки усложнили бы поиск команды. В некоторых случаях перевод опущен, например, в фразе "снятие флажка Cast Shadow позволяет объекту не отбрасывать тени" русский перевод в скобках только усложнил бы чтение.

Ââåäåíèå

11

Òðåáîâàíèÿ ê êîìïüþòåðó В общем, пакет 3ds Max, в отличие от других пакетов трехмерной графики высшего класса, способен работать на компьютерах, которые по нынешним меркам можно отнести к "слабеньким". Но для того, чтобы работа была в радость, а не превратилась в мучение, ваш компьютер должен быть построен на базе процессора Intel Pentium 4 (или аналогичного AMD), с тактовой частотой не меньше 2 ГГц, оснащен оперативной памятью не меньше 1 Гбайта (не менее 2 Гбайт при использовании под OC Windows Vista), видеокартой, поддерживающей аппаратный Direct3D, с объемом видеопамяти не меньше 128 Мбайт (для 3ds Max 2008 желательна поддержка шейдеров D3D третьего уровня). Операционная система — Windows XP SP2 или Vista. В последнем случае обязателен пакет обновлений SP2 для 3ds Max 9 или Extension 1: Productivity Booster rev. 3. Если вы используете 3ds Max 2008, то для работы в Vista никакие дополнительные средства не нужны.

12

Ââåäåíèå

Глава 1 Основы 3ds Max

3

ds Max — большой универсальный пакет с огромными возможностями. Описание всех этих возможностей занимает объемные книги, подчас очень сложные для освоения, причем многие из возможностей являются весьма специфическими и нормальному человеку, "не фанату" трехмерной графики, вряд ли придет в голову их использовать, даже если он о них будет знать. С другой стороны, за обилием кнопок и команд иногда теряется суть. В этой главе сделана попытка дать наиболее необходимую информацию о логической структуре 3ds Max, без понимания которой достаточно трудно разобраться, в чем заключается та или иная ошибка. Кроме того, даны основные сведения об организации интерфейса, манипуляциями с объектами и стеком модификаторов, а также некоторые принципы рендеринга. Следует учитывать также, что многое из того, что входит в 3ds Max, на сегодняшний момент не актуально. Например, это некоторые атмосферные и линзовые эффекты, такие как туман, воздушная перспектива, объемный свет, эффекты смазывания изображения при движении ("смаз", moution blur) и глубины резкости (ГРИП — глубины резко изображаемого пространства, DOF — Depth of fields). Все эти эффекты могут быть реализованы значительно быстрее в пакетах для постобработки (Photoshop, Combustion, After Effects и т. д.), при этом с качеством, если и уступающим результатам, которые можно получить при рендеринге этих эффектов, то не намного. В этой главе не обсуждаются или обсуждаются на уровне принципов вопросы моделирования, текстурирования, освещения, рендеринга и анимации, т. к. все эти вопросы будут рассмотрены в проектах, которые, собственно, и являются основным материалом в этой книге. Многие теоретические вопросы также будут обсуждаться в процессе выполнения практических примеров.

16

Ãëàâà 1

Îñíîâíûå ýòàïû ðàáîòû íàä ïðîåêòîì â 3ds Max Работу над проектом можно разделить на несколько этапов. Следует иметь в виду, что это деление по этапам несколько условное, т. к. многое приходится делать параллельно, особенно в том случае, если вы работаете в одиночку. 1. Подготовка исходных материалов. Этот этап включает в себя сбор или разработку материалов, необходимых для выполнения проекта, а именно — эскизы, чертежи, текстуры, карты окружения, фотографии для справки, технические требования к окончательному результату. Если речь идет о ролике, то обязательно продумывается и прописывается сценарий, вплоть до создания раскадрировки. Конечно, некоторые детали можно опустить, но очень важно, чтобы к тому моменту, как вы приступите к работе непосредственно в 3ds Max, в самом проекте для вас как исполнителя не должно быть слишком больших "белых пятен". 2. Моделирование. На этом этапе создаются геометрические модели. Желательно каждую модель или набор моделей, объединенных по смыслу, создавать в отдельном файле, так значительно эффективнее. К тому же, после нескольких проектов вы накопите внушительную библиотеку моделей, которые можно будет использовать в последующей работе. На этом этапе постарайтесь отредактировать текстурные координаты хотя бы в первом приближении. 3. Сборка сцены. Сборка сцены как заключительный этап моделирования — это весьма отвественная операция. Постарайтесь четко структурировать сцену, используя информативные имена для объектов, слоев и впоследствии материалов. 4. Постановка света и выбор ракурсов. Уже на этом этапе нужно решить, какой модуль рендеринга вы будете использовать (если, конечно, у вас есть выбор). Это важно потому, что каждый внешний модуль рендеринга превносит в 3ds Max свои источники света, материалы и т. д., и, как правило, наиболее эффективно работает именно с ними. На этом этапе нужно настроить хотя бы в первом приближении все элементы рендеринга (глобальное освещение и т. д.), чтобы минимизировать количество тестовых расчетов на последнем этапе, т. к. с настроенными материалами и присвоенными текстурами время рендеринга увеличивается в разы и даже десятки раз.

Îñíîâû 3ds Max

17

5. Создание и присвоение материалов, текстурирование. На этом этапе очень важно позаботиться о возможности быстрого изменения настроек материалов. Постарайтесь свести применение сложных по структуре материалов к минимуму. Так же минимизируйте и оптимизируйте различные эффекты, замедляющие рендеринг (displacement — смещение, bump — шероховатость, glossy — эффекты размытия и т. д.) 6. Анимация. При создании анимации также постарайтесь избежать ненужных просчетов. Например, при фиксированном ракурсе совершенно необязательно для того, чтобы показать смену дня и ночи, анимировать положение солнца и включать или выключать источники искусственного освещения. Вполне возможно, что для создания такого ролика вам понадобится всего десяток кадров, плавный переход между которыми вы сделаете в программе видеомонтажа. 7. Настройка рендеринга и рендеринг. Обязательно позаботьтесь о выводе необходимых элементов — глубины, маски наиболее критичных объектов, маски для создания эффектов в пакетах для постобработки. Все это избавит вас от необходимости пересчета. Не используйте без необходимости различные линзовые и атмосферные эффекты! Эти эффекты замедляют процесс рендеринга, и для их переделки или отмены требуется повторный рендеринг. 8. Постобработка. Этот этап многие начинающие дизайнеры игнорируют, и зря! Именно на этапе постобработки "сухая" компьютерная картинка превращается в шедевр! Не бойтесь дорисовывать недостающее, подкрашивать и перекрашивать уже готовый рендеринг, добавлять уместные эффекты. Если вы позаботились о выводе масок, вам будет очень просто выделять нужные объекты. Конечно, это только принципиальная схема процесса. В каждом конкретном случае некоторые этапы можно опустить.

Îñíîâíûå ïðèíöèïû ïîñòðîåíèÿ 3ds Max При создании 3D Studio MAX (именно так назывался пакет изначально) его создателями, Томом Хадсоном и Гэри Йостом (Tom Hadson, Gary Yost), были введены новаторские на тот момент принципы построения пакета. Кратко рассмотрим основные из них.  Принцип "все в одном". 3D Studio для DOS, который был предтечей 3ds Max, представлял собой пакет из пяти программ, модулей, каждый из

18

Ãëàâà 1

которых выполнял свою собственную функцию, объединенных единой оболочкой. Например, создание плоских форм (Shapes, и они действительно были плоскими, в отличие от Shapes в 3ds Max!) было сосредоточено в модуле 2D Shaper, анимация — 3D Keyframer и т. д. В 3ds Max весь процесс от моделирования до анимации сосредоточен в рамках одного интерфейса, что позволяет оперативно вносить изменения в сцену "на лету". К сожалению, все это хорошо при работе с несложным проектом. Некоторое разделение интерфейса на специализированные рабочие пространства (workspace) для моделирования, анимации и т. п. не помешало бы. Например, так сделано в Autodesk Maya, Autodesk MotionBuilder и др. При желании, вы сами можете сделать такие шаблоны, т. к. 3ds Max обладает большими возможностями по настройке интерфейса.  Объектно-ориентированный принцип построения. Основной структурной единицей в 3ds Max является объект. Тип объекта, его набор параметров определяет все возможные операции, которые можно с ним произвести, и набор модификаторов, которые можно применить к этому объекту. Логика работы с объектами весьма жесткая, в отличие от 3D Studio, что дает возможность эффективно работать даже в том случае, когда объектов в сцене много. С другой стороны, эта жесткая логика иногда приводит к излишней усложненности тех или иных действий.  Модификаторы и стек модификаторов (Modifiers Stack). Модификаторы — это набор процедур, применяемых к объектам и наделяющих объект новыми свойствами. Аналогом модификаторов можно считать фильтры в пакетах растровой графики, таких как Adobe Photoshop, наделяющие объекты, к которым они применяются, новыми свойствами. Но в отличие от указанных фильтров, модификаторы являются недеструктивными, т. е. позволяют вернуться к исходному объекту в любой момент, т. к. не приводят к необратимым последствиям (аналогия — фильтры в After Effects или Smart Filters в Aldobe Photoshop CS3).  Модульность и расширяемость. С самого начала и по сей день 3ds Max построен так, чтобы дать возможность без труда расширить возможности пакета за счет подключаемых модулей (или "плагинов", plug-ins). Практически пакет представляет собой ядро и большое количество модулей, входящих в поставку (рис. 1.1). Несмотря на то, что первые версии 3ds Max были далеки от совершенства, 3ds Max завоевал популярность во многом и потому, что в поставке с самого начала присутствовал SDK — Software Development Kit. Благодаря этому уже в начале развития 3ds Max последовал целый вал дополнительных модулей, расширяющих возможности пакета. На сегодняшний момент количество их превышает полтысячи, причем в этом списке присутствуют как большие коммерческие проекты, так и бесплатные разработки, зачастую написанные для внутреннего использования. Многие из них сейчас входят в поставку 3ds Max.

Îñíîâû 3ds Max

19

Рис. 1.1. Схема построения 3ds Max

К сожалению, такая архитектура имеет и негативные стороны. Чтобы обеспечить совместимость проектов "снизу вверх", при выпуске каждой новой версии разработчикам приходится перекомпилировать все старые модули. Достаточно медленным является интерпретатор языка MAXScript уже по той причине, что не встроен в ядро (как, например, в Maya), а также является плагином.

Ïðåèìóùåñòâà è íåäîñòàòêè 3ds Max ïî ñðàâíåíèþ ñ äðóãèìè ïàêåòàìè Как уже указывалось выше, 3ds Max относится к классу универсальных пакетов трехмерной графики, т. е. пакетов, в которых процесс создания окончательного продукта, будь то статическое изображение или анимационный ролик, не требует привлечения дополнительных пакетов. Моделирование, текстурирование, создание материалов, анимация и окончательный рендеринг (визуализация) проводятся в самом 3ds Max. Исключение составляет только подготовка текстур, для этого, как правило, используются редакторы растровой графики, такие как Adobe Photoshop. До сих пор в 3ds Max нет модуля для рисования по поверхности модели. Кроме того, окончательный монтаж ролика проводится в специализированном пакете (например, Adobe AfterEffects или Autodesk Combustion), хотя в самом 3ds Max имеется модуль VideoPost, позволяющий проводить несложный видеомонтаж в случае отсутствия подходящего пакета. Универсальность 3ds Max — это одно из самых важных его достоинств. Но именно это и является одновременно и самым большим недостатком, и не только 3ds Max, но и любого другого универсального пакета. В 3ds Max реализовано очень много методов моделирования, анимации и т. д., но, к сожалению, не всегда лучшим образом. Например, если вас интересует моделиро-

20

Ãëàâà 1

вание с помощью NURBS (Non-Uniform Rational B-Spline — неоднородные рациональные B-сплайны), то, возможно, лучшим выбором являются пакеты McNeal Rhinoceros 3D или Eovia Amapi Pro, а если с помощью полигонов — то Luxology Modo или DAZ Hexagon. Если вы серьезно занимаетесь "ручной" анимацией персонажей, то, возможно, лучшими решениями являются SEGA Animanium и Messiah:studio, если используете Mocap (файлы захвата движения) — то Autodesk Motion Builder. Эти пакеты, которые относятся к специализированным, ориентированы на узкий круг задач, но сделано это значительно эффективнее, нежели чем в универсальном пакете. Такая специализация имеет и негативную сторону. Вам необходимо позаботиться о совместимости пакетов в вашей технологической цепочке, т. к. получается ситуация, при которой моделировать приходится в одном пакете, анимировать — в другом, визуализировать — в третьем (кстати, для визуализации очень часто используется как раз 3ds Max в связке с VRay). При использовании 3ds Max этих проблем, как правило, нет, т. к. все сконцентрировано в одном пакете. В результате поливариантности методов моделирования в 3ds Max вы получаете ситуацию, когда для достижения одной и той же цели можно избрать несколько путей. Например, для создания сиденья скамейки (рис. 1.2) вы можете использовать примитив ChamferBox (рис. 1.2, а) и придать нужную форму при помощи модификатора Bend, а можете воспользоваться сплайном нужной формы и придать ему объем при помощи модификатора Extrude, а закругления сделать при помощи инструмента Chamfer в модификаторе Edit Poly (рис. 1.2, б). В качестве текстуры на поверхности вы можете использовать изображение из внешнего файла, а можете применить и настроить процедурную текстуру. Вы можете пойти и комбинированным методом — начать моделирование одним методом, например, создав объект на базе лоскутов, а затем доработать его на полигональном уровне. Создать процедурную текстуру, сконвертировать ее в растровый файл, дорисовать нужное в редакторе растровой графики и вновь применить его в качестве текстуры в 3ds Max. И таких комбинаций в 3ds Max возможно очень много. Несмотря на то, что 3ds Max активно применяется для технической и дизайнерской визуализации, следует учитывать, что 3ds Max не конструкторский и не архитектурный пакет. Не требуйте от него той точности, к которой вы, возможно, привыкли, используя пакеты CAD/CAM (Computer Aided Design/Computer-Aided Manufacturing). Основная задача при работе с 3ds Max — это получение красивых и реалистичных картинок или роликов, а отнюдь не конструкторской документации.

Îñíîâû 3ds Max

21

а

б Рис. 1.2. Сиденье скамейки смоделировано двумя разными способами

22

Ãëàâà 1

Èíòåðôåéñ 3ds Max Интерфейс 3ds Max показан на рис. 1.3. На этом рисунке наименования основных интерфейсных элементов подписаны по-русски, так, как они будут называться в книге.  ЗАМЕЧАНИЕ На рисунке показана цветовая схема ame-light с маленькими кнопками, именно она будет использована для иллюстраций в книге. Как загрузить ее, рассказано в начале второй главы.

Рис. 1.3. Элементы интерфейса 3ds Max

 Окна проекции (Viewports). Собственно, в них и происходит самое инте-

ресное. В этих окнах вы создаете модели, редактируете их и анимируете.  Командная панель (Command panel). Эта панель разделена на несколько подпанелей, переключение между которыми осуществляется щелчком левой кнопки мыши на соответствующей вкладке: • Create (Создать). В этой панели сосредоточены команды для создания объектов. Они организованы по типу объектов (Geometry, Shapes

Îñíîâû 3ds Max

23

и т. д.), в свою очередь, в каждом разделе есть еще подразделы, организованные в виде выпадающего меню, и только после этого можно добраться до нужной кнопки. Иногда удобнее создавать объекты из меню Create главного меню. Но все пути все равно ведут в эту панель. • Modify (Редактирование). После того как объект создан, редактирование его параметров продолжается в этой панели. Быстрый переход к этой панели после создания объекта можно осуществить нажатием любой клавиши от до на основной клавиатуре. В этой же панели находится стек модификаторов и все команды, доступные на этом уровне. Следует помнить, что одновременно можно редактировать только один выделенный объект и параметры одного модификатора для выделенного объекта. Исключение составляют объекты и модификаторы, которые связаны отношением Reference (Ссылка) или Instance (Образец) или на уровне модификатора, примененного сразу к нескольким объектам. • Hierarchy (Иерархия). Эта подпанель разделена на три части. В разделе Pivot редактируются параметры точки привязки выделенных объектов, в частности, положение в пространстве. В разделе IK настраиваются параметры инверсно-кинематических связей, которые используются в основном только для "старой" инверсной кинематики. Раздел Link Info позволяет настроить наследование трансформаций (перемещение, вращение и масштабирование) родительских объектов дочерними объектами. • Motion (Движение) служит для настройки параметров контроллеров анимации. • Display (Отображение). Инструменты этой панели служат для управления отображением объектов. Так как большая часть команд этой панели находится в квадрупольных меню, менеджере слоев и плавающем окне Display Floater (Главное меню  Tools), эта панель почти не используется, она просто неудобная. • Utilities (Утилиты). В этой панели собрано много интересных команд и инструментов, некоторые из них вы будете использовать при выполнении примеров. Командная панель прокручивается по вертикали. Для этого просто "схватитесь" левой кнопкой мыши в любом месте (при этом курсор мыши отображается как рука) и потяните вверх или вниз. Если вы привыкли к скроллерам, то они тоже есть, попытайтесь их найти, они очень маленькие. Кроме того, панель можно организовать в несколько колонок. Для этого подведите курсор к границе панели и потяните в сторону, удерживая ле-

24

Ãëàâà 1

вую кнопку мыши. Также ее можно "оторвать", взявшись за левый или правый верхний угол панели, и превратить в плавающее окно. Это удобно, когда ваша система поддерживает два и более монитора. На одном мониторе можно разместить окна проекции, на другом — все остальное, в том числе и командную панель.  Главное меню (Menu bar) и главная панель (Main toolbar). В этих эле-

ментах интерфейса содержатся все общие команды 3ds Max. Многие из них дублируются между собой.  Контекстные меню (Right-click menu). Эти меню открываются при по-

мощи правой кнопки мыши, и их содержимое зависит от того, где в настоящий момент находится курсор.  Квадрупольное меню (Quad menu). Это меню является вариантом кон-

текстного меню. Как следует из названия, оно может состоять из четырех подменю, организованных в форме квадрата. Кроме того, что это меню открывается правой кнопкой мыши, существует еще несколько меню, которые открываются нажатием правой кнопки в сочетании с клавишами , , и просто сочетанием клавиш (например, клавишей вызывается меню выбора вида). Вы можете создавать свои собственные меню или менять содержимое существующих.  Панель навигации (Navigation controls). Панель служит для навигации в

окнах проекции. Эта панель сейчас мало используется, т. к. навигация в окнах проекции осуществляется в основном при помощи средней кнопки мыши и горячих клавиш. Исключение составляют виды из камеры (Camera View) и направленных источников света. Средняя кнопка мыши при работе в этих видах работает только на перемещение вида в окне проекции.  Панель статуса (Status bar). В панели отображается информация о теку-

щем состоянии, например, размер сетки или другая служебная информация.  Панель координат (Coordinate display). При помощи этой панели можно

контролировать или вводить координаты объекта, углы поворота в градусах и масштаб объектов в процентах, а также контролировать текущие значения.  Панель управления анимацией (Animation keying and playback

controls). Эта панель служит для записи и воспроизведения анимации в окне проекции.

Îñíîâû 3ds Max

25

Ñöåíà Основное понятие 3ds Max — это сцена (Scene), иногда называемая "миром" (World). По сути, это просто файл формата 3ds Max. В нем сохраняются все объекты с примененными модификаторами, материалы, анимация — в общем, все, что необходимо. Следует помнить о том, что некоторые элементы не записываются непосредственно в файл. Например, это касается текстур, взятых из внешних растровых файлов и объектов, загруженных как ссылки (XRef). В этом случае в сцену записываются имена и пути к этим файлам. Кроме того, в сцену могут не быть записаны некоторые специфические вещи, например результаты расчета динамики тканей или волос. Помните об этом при переносе сцены с одного компьютера на другой!

Îáúåêòû Мир 3ds Max — это мир, состоящий из объектов, и только из объектов. Для того чтобы что-то появилось в сцене, должен быть создан соответствующий объект. Некоторое исключение составляют атмосферные эффекты (туман, объемный свет и т. п.), которые, в отличие от постэффектов (эффектов, создаваемых после рендеринга), создаются в процессе рендеринга. Но эти эффекты не являются частью сцены.

Òèïû îáúåêòîâ Условно объекты можно разделить на две большие категории: геометрические и негеометрические объекты. Геометрические объекты служат для получения изображения при рендеринге либо как основа для создания модели (например, сплайны, их тоже можно отнести к геометрическим объектам). К этому же типу относятся и системы частиц, хотя зачастую они используются как основа для спецэффектов, построенных с помощью плагинов, например таких, как Sitni-Sati AfterBurn. Негеометрические объекты — это источники света, камеры и различные вспомогательные объекты, не участвующие в создании геометрии. Среди них встречаются и экзотические, такие как экранные манипуляторы. Но все это — объекты.

Òî÷êà ïðèâÿçêè (Pivot Point) Каждый объект, независимо от того, каким он является, имеет так называемую точку привязки (или опорную точку) (Pivot Point). Говоря о координатах объекта и его ориентации в пространстве, как правило, имеются в виду как

26

Ãëàâà 1

раз координаты точки привязки, хотя это и не совсем так. Почему? Об этом немного позже. Точка привязки может быть расположена в любом месте и не совпадать с центром объекта. Она вообще может находиться вне объекта, и это обстоятельство весьма полезно при создании анимации, т. к. при анимации вращения и масштабирования в качестве центра используется как раз точка привязки. Для работы с точками привязки используются команды в подпанели Hierarchy (Иерархия) командной панели (рис. 1.4).  Включение режима Affect Pivot Only (Действовать только на точку при-

вязки) приводит к тому, что перемещение и вращение будет влиять только на точку привязки, т. е. вы можете переставить ее в необходимое место и ориентировать так, как вам нужно. При этом вы можете вводить координаты с клавиатуры и использовать команду Align (Выравнивание), например, для того чтобы совместить точку привязки одного объекта с точкой привязки другого.

Рис. 1.4. Команды для работы с точками привязки

 Команда Center to Object совмещает точку привязки с геометрическим

центром объекта.  Команда Align to Object выравнивает ориентацию точки привязки по

объекту.

Îñíîâû 3ds Max

27

 Команда Align to World ориентирует оси точки привязки по осям мировой

системы координат.  Команда Reset Pivot отменяет изменения точки привязки, сбрасывая ее в

изначальное положение. Команда Align to Object требует некоторого дополнительного обсуждения. Дело в том, что ориентация объекта и ориентация точки привязки — это не одно и то же. Вращая точку привязки, вы не изменяете ориентацию самого объекта. Поясним это на конкретном примере. Достаточно часто возникает ситуация, когда модификатор Extrude вытягивает поверхность из сплайна не в ту сторону (рис. 1.5). Обычно это бывает со сплайнами, восстановленными из ребер полигональных объектов, как в случае, показанном на этом рисунке. Локальная ось Z исходного объекта и его точки привязки направлены вверх, и полученный сплайн наследует и то, и другое. При этом модификатор Extrude вытягивает поверхность именно по этой оси. Поворот точки привязки не дает нужного результата, добиться желаемого можно, только повернув содержимое объекта (например, при помощи поворота контейнера (Gizmo) модификатора XForm).

Рис. 1.5. Проблема, связанная с несовпадением ориентации объекта и точки привязки (на примере модификатора Extrude)

В этом же свитке есть аналогичные команды для работы с объектом без изменения точки привязки, которые включаются нажатием на кнопку Affect Object Only. Это может пригодиться в том случае, если нужно переместить

28

Ãëàâà 1

объект, не затрагивая точку привязки, например, в случае сегмента роботаманипулятора.

Ãåîìåòðè÷åñêèå îáúåêòû Так как для моделирования используются именно эти объекты, то стоит подробнее остановиться на рассмотрении их некоторых принципов и особенностей.

Ïðèíöèïû ïîñòðîåíèÿ ãåîìåòðè÷åñêèõ îáúåêòîâ â 3ds Max Что нужно помнить, начиная моделировать в 3ds Max? Прежде всего, в 3ds Max нет гладких кривых линий — есть ломаные, построенные из отрезков прямых. Нет гладких поверхностей — есть поверхности, построенные из треугольных плоскостей, граней, на жаргоне называемых "фейсами" (faces). На рис. 1.6 показаны окружности и сферы с различной степенью приближения, интерполяции. Несмотря на то, что средние и особенно правые объекты нельзя назвать ни окружностями, ни сферами, именно ими они и являются с точки зрения 3ds Max. На сферах видно, что 3ds Max пытается придать им сглаженность, и ему это удается, но все портят контуры.

Рис. 1.6. Зависимость вида объекта от интерполяции

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

Îñíîâû 3ds Max

29

Pixar PhotoRealistic RenderMan и в Realsoft3D), но для большинства задач соотношение "время рендеринга/качество" получается в пользу традиционных алгоритмов. Для того чтобы на окончательном изображении окружность была окружностью, а сфера — сферой, вы должны позаботиться об этом заранее. Эти вопросы будут обсуждаться в практических примерах. Сейчас же стоит только подчеркнуть, что вы должны руководствоваться принципом "необходимости и достаточности". При создании видеоролика формата PAL и плаката формата A3 с разрешением 300 dpi, вполне возможно, вам придется использовать разные по сложности (с точки зрения интерполяции) модели, т. к. модели, неплохо смотрящиеся на видео, будут недостаточно сложны для полиграфии. И наоборот, прекрасно детализированные модели могут привести к тому, что видеоролик с их использованием вы не увидите никогда, т. к. время рендеринга будет очень большим. Поверхности в 3ds Max (как, впрочем, и в любом другом пакете трехмерной графики) не обладают толщиной и имеют только одну сторону. Сделано это все с той же целью — оптимизировать время рендеринга. Это необычно, но к этому нужно привыкнуть и научиться этим пользоваться, т. к. преимуществ от этого обстоятельства больше, чем неудобств. Например, поверхность с обратной стороны прозрачна не только для взгляда, но и для света. Стороны поверхности — видимая (Front) или обратная (Back) — определяются вектором, называемым нормалью к поверхности, или просто нормалью (Normal). Как следует из названия, она должна бы быть перпендикулярна поверхности. Но не всегда это так, для сглаженной поверхности нормаль в каждой точке поверхности рассчитывается с учетом этой сглаженности и перпендикулярна этой "виртуальной" поверхности (рис. 1.7). Кроме того, при помощи модификатора Edit Normals можно редактировать нормали к поверхности, создавая иллюзию криволинейности на физически совершенно плоской поверхности. Конечно, это уже экзотика, но, тем не менее, это возможно, и в моделях для игр этот прием используется весьма часто.  ЗАМЕЧАНИЕ Начиная с версии 9, объекты в 3ds Max по умолчанию отображаются в окнах проекции как двусторонние, при этом обратная сторона отображается черным цветом. Сделано это исключительно для удобства пользователей, при рендеринге все односторонние поверхности таковыми остаются.

Работая с геометрическими объектами, вы работаете с поверхностями, но не с объемами. В 3ds Max нет так называемого "твердотельного моделирования", вся ответственность за корректность топологии ложится на вас. Если вы пересекли или наложили друг на друга полигоны, инвертировали (вывернули) нормали или не замкнули поверхность, не создав замкнутый объем —

30

Ãëàâà 1

3ds Max позволит вам это сделать, но результаты могут быть непредсказуемыми. Иногда это не очень страшно, но при применении алгоритмов глобального освещения или трассировки лучей для создания эффекта стекла, как правило, такие объекты выдают весьма причудливые артефакты.

Рис. 1.7. Реальные и виртуальные нормали к поверхности

Понятие материала в 3ds Max относится, как правило, только к реакции поверхности на освещение. Исключение составляют некоторые каналы, например, применение карты на канал Displacement (Смещение) приводит к созданию реального рельефа при рендеринге. Но все равно внутри объекта пусто, там нет ни гранита, ни дерева, ни стекла. И этим также можно пользоваться, например, если поместить источник света внутрь непрозрачного объекта, то вы получите имитацию освещения этим объектом.

Ïàðàìåòðè÷åñêèå îáúåêòû Как правило, моделирование в 3ds Max начинается с создания объекта, называемого параметрическим объектом, или примитивом. Правда, некоторые примитивы не так уж и примитивны, например лестницы, окна и двери, поэтому их мы будем называть "параметрическими объектами". В 3ds Max параметрических объектов достаточно много. На рис. 1.8 показаны некоторые из них. Объединяет их одно — все они описываются несколькими параметрами, и в них нет доступа к вершинам, сегментам или поверхностям. Например, для окружности есть всего один параметр — радиус. Как правило, у каждого параметрического объекта есть параметр или несколько параметров, определяющих сложность объекта. Для сплайнов это параметры в свитке Interpolation (рис. 1.9, а), для объемных примитивов — количество сегментов, сторон и т. п. (рис. 1.9, б).

Îñíîâû 3ds Max

31

Рис. 1.8. Примеры параметрических объектов

а

б Рис. 1.9. Параметры, определяющие сложность объекта

32

Ãëàâà 1

 ВАЖНО! Следует взять за правило, что пока есть возможность задать размеры объекта при помощи параметров, нужно это делать. Избегайте масштабирования командой Scale параметрических объектов в целях достижения нужных размеров! Во-первых, вы не добьетесь точных размеров. А во-вторых, впоследствии вы можете получить ряд проблем, о некоторых из которых рассказано в разд. "Системы координат" этой главы.

Áàçîâûå òèïû ãåîìåòðè÷åñêèõ îáúåêòîâ Любой параметрический объект может быть преобразован к одному из пяти базовых типов, конечно, в том случае, если это возможно. Например, кубик (Box) нельзя преобразовать к типу Editable Splines (редактируемые сплайны), а вот в NURBS (неравномерный рациональный би-сплайн) он конвертируется прекрасно, преобразуясь к объекту, состоящему из шести NURBS-поверхностей. Преобразование производится при помощи команд Convert to, которые вызываются либо в квадрупольном меню, либо в контекстном меню стека модификаторов. После преобразования становятся доступными элементы объекта, называемые подобъектами (Sub-Objects), которые можно перемещать, вращать, а также применять различные команды. Для каждого базового типа набор подобъектов свой и свой набор команд для работы с ними. Быстрое переключение между подобъектами осуществляется клавишами от до на основной клавиатуре.  ЗАМЕЧАНИЕ В какой-то мере это аналогично тому, как организован процесс работы с объектами в некоторых пакетах векторной графики, например, CorelDRAW или Xara Xtreme. После создания окружности вы не можете редактировать отдельные вершины, а должны преобразовать объект с помощью команды Convert to Editable Curves в редактируемые кривые.

После преобразования объект "забывает" о том, чем он был изначально — окружностью, сферой или чайником. Это просто набор вершин, ребер и т. д. Если вам важно сохранить возможность возврата на уровень параметрического объекта, то воспользуйтесь соответствующим модификатором (например, Edit Spline, Edit Poly и т. п.). Редактируемые сплайны (рис. 1.10), или кривые (Editable Splines), или формы (Shapes), должны быть хорошо знакомы тем, кто работает с пакетами векторной графики. Основных отличий два. Как указывалось ранее, кривые построены из отрезков прямых, и за качество их отображения отвечают параметры в свитке Interpolation. Второе отличие — кривые построены не на плоскости, а в трехмерном пространстве. Поэтому мы считаем не совсем

Îñíîâû 3ds Max

33

Рис. 1.10. Редактируемые сплайны

корректным термин "плоские формы". Как можно считать плоской формой, например, спираль (Helix) с параметрами радиусов и высоты? Подобъектов у сплайнов три: вершины (vertex), сегменты (segment) и сплайны (spline). Последние представляют собой связанные в единую цепочку сегменты.  ЗАМЕЧАНИЕ К сожалению, до сих пор для сплайнов не предусмотрены подобъекты типа Handles (ручки Безье), хотя для лоскутов этот тип существует, начиная с 3ds Max 6.

Редактируемые лоскуты (Editable Patches) основаны на тех же алгоритмах и принципах, что и сплайны, только все это относится уже не к кривым, а поверхностям. Начиная с версии 6, в 3ds Max лоскуты имеют пять типов подобъектов (рис. 1.11, а):  вершины (Vertex, аналогичны вершинам в сплайнах);  ручки Безье (Handles, к сожалению, в сплайнах этот тип отсутствует);  ребра (Edges, аналогичны сегментам);  лоскуты (Patches, аналогичны сегментам, но уже в виде поверхностей);  элементы (Elements, аналогичны сплайнам).

34

Ãëàâà 1

а

б Рис. 1.11. Подобъекты лоскутов (а) и результат применения различных настроек лоскутов для отображения в окне проекции и рендеринга (б)

Îñíîâû 3ds Max

35

Идея лоскутов заключается в том, что вы работаете с каркасом, состоящим из четырехугольников и треугольников, а поверхности создаются автоматически, в зависимости от настроек, количества шагов разбиения (steps), причем для работы и рендеринга вы можете использовать разное количество шагов, получая на выходе значительно более гладкую поверхность (рис. 1.11, б). В общем, лоскуты — неплохой инструмент, если бы не ряд следующих недостатков, которые делают работу с ними очень трудоемкой при достаточно сложной геометрии:  У вершин отсутствуют типы, аналогичные Corner и Smooth в сплайнах,

есть только Corner, что соответствует Bezier Corner в сплайнах, и Coplanar (Bezier). При большом количестве вершин весьма трудно добиться хорошей гладкой поверхности, поэтому мы советуем вам, если вы все же решите осваивать этот метод моделирования, добиваться нужного результата на этапе создания каркаса, т. е. на уровне редактируемых сплайнов, сведя доработки на уровне лоскутов к минимуму.  Количество углов ограничено тремя или четырьмя, что тоже не добавляет

удобств при моделировании.  Поверхности в лоскутах являются регулярными, на большую и малую

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

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

Тем не менее, лоскуты можно использовать в качестве заготовки для дальнейшего моделирования с использованием полигонов. Поверхности и кривые NURBS (NURBS Curves and Surfaces), неравномерные рациональные B-сплайны (NURBS — Non-Uniform Rational B-Splines), появившись в версии 3ds Max 2 и улучшенные в версии 2.5, с тех пор почти не изменялись. По сути, они очень похожи на сплайны и лоскуты, но в их основе лежат другие алгоритмы и уравнения. К сожалению, реализованы NURBS в 3ds Max не лучшим образом, слишком много труда нужно приложить и слишком много параметров нужно "подкрутить", чтобы поверхность приняла нужную форму. Особенно сложен интерфейс, т. к. почти нет дополнительных экранных манипуляторов, позволявших бы не обращаться к параметрам в "простынях" (так злые языки конкурентов окрестили свитки в командной панели). Кроме того, в окне проекции в затененном режиме с отображением ребер (Smooth + Highlight + Edged Faces) показывается треугольная сетка, а хотелось бы видеть изопармы (каркас) (рис. 1.12). Математический аппарат и возможности великолепны, но как раз поэтому NURBS-моделирование свя-

36

Ãëàâà 1

зано с большим объемом вычислений и, как следствие, очень "медлительно" в работе.

Рис. 1.12. Отображение NURBS-поверхности в окне проекции

В принципе, это неплохой инструмент, но перечисленные недостатки в совокупности с достоинствами полигонального моделирования сокращают область их применения почти до нуля, за исключением случаев создания поверхностей по нескольким сложным сечениям без последующей доработки. Если вас привлекает данный метод моделирования, задумайтесь об освоении более "продвинутых" и одновременно дружественных в этой области пакетов, например, Rhinoceros 3D, Amapi или набирающий обороты пакет Moment of Inspiration (MoI). А вершиной NURBS-моделирования, несомненно, является Autodesk AliasStudio. По мнению специалистов, по сравнению с этим пакетом можно считать, что NURBS в других пакетах просто нет. Редактируемые сетки (Editable Mesh, "меш" — именно так уже скоро два десятка лет называют эти объекты профессионалы трехмерной графики) и редактируемые полигоны (Editable Poly, Polymesh, "полимеш") — мы неслучайно объединили обзор этих двух различных между собой состояний объекта, т. к., на первый взгляд, это одно и то же. И там, и там вершины (Vertex), ребра (Edge), полигоны (Polygon), элементы (Elements) (рис. 1.13, а, б). И лишь одно отличие (подобъекты Border не в счет) — наличие в Editable

Îñíîâû 3ds Max

37

а

б Рис. 1.13. Подобъекты в Editable Mesh (а) и Editable Poly (б)

38

Ãëàâà 1

Mesh подобъектов Face (треугольная грань) и отсутствие их в Editable Poly (редактируемом полигоне), на самом деле, является принципиальным и требует небольшого экскурса в историю вопроса. В 3D Studio для DOS существовали только "меши" — объекты, созданные из треугольных граней. Почти без изменений этот механизм был перенесен в 3D Studio MAX. При создании 3D Studio MAX разработчики полагали, что моделирование на низком уровне не будет востребовано, делая упор на модификаторы, но практика показала, что без этого не обойтись, особенно при моделировании для 3D-игр, где каждый треугольник был (и остается) на вес золота. Постепенно Editable Mesh усложнялся, появились подобъекты "полигоны" — грани, ограниченные видимыми ребрами, даже присутствует некоторая интеллектуальность. Например, при разрезании полигона в старых версиях Editable Mesh появлялись паразитные вершины в том месте, где разрез происходил по невидимым ребрам. Начиная с 3-й версии, это автоматически корректируется, правда, не всегда успешно (рис. 1.14). Вычищать геометрию приходилось постоянно, что очень замедляло процесс моделирования.

Рис. 1.14. Вершины, помеченные кружками, являются паразитными и должны быть удалены

Видимо, в какой-то момент времени дальнейшее усложнение Editable Mesh было признано нецелесообразным, тем более что нужно было сохранить совместимость с предыдущими версиями, иметь возможность загрузки моделей, сделанных в более ранних версиях. Дело в том, что в файле 3ds Max нет

Îñíîâû 3ds Max

39

ни мешей, ни сплайнов, ни чего-то подобного. Есть данные для плагина Editable Mesh, данные для плагина Editable Spline и т. д. По сути, при загрузке файла сцена воссоздается заново на основе этих данных, и несоответствие новых алгоритмов старым может привести к некорректному результату, весьма далекому от оригинала. Кстати, именно это и происходит с объектами типа Boolean, которые подвергались ревизии несколько раз. Поэтому был разработан модуль, Editable Poly, который, по сути, делает то же самое, но принципиально по-другому. Треугольники скрыты от пользователя, нет понятия видимых или невидимых ребер — ребра либо есть, либо их нет. В процессе моделирования 3ds Max постоянно следит за корректностью геометрии и при необходимости "подправляет" ее, триангулируя модель так, чтобы поверхность полигона была наиболее близка к плоскости. Кроме этого, Editable Poly постоянно следит за текстурными координатами и делает еще многое другое, что скрыто от пользователя. Все это делает Ediatable Poly значительно более привлекательным для моделирования, чем Editable Mesh. Обратная сторона медали — относительная медлительность полимеша, по сравнению с мешем, особенно при анимации деформаций (например, при помощи костей). Эта проблема очень часто решается так: моделирование проводится с использованием полимеша, а для анимации модель предварительно преобразуется в меш. Это преобразование, как правило, безболезненно в обоих направлениях. Инструментарий Editable Mesh на момент написания книги остался на уровне версии 3, в то время как все силы разработчиков были направлены на создание инструментария для работы с полимешами, и им это удалось, в текущей версии полигональное моделирование можно считать близким к идеальному. Кроме того, в 3ds Max 9 были сделаны весьма большие шаги в сторону оптимизации полимешей, увеличения скорости работы с ними в окне проекции за счет более интенсивного использования возможностей Direct3D. В сочетании с современными средствами сглаживания (Turbosmooth), полигональное моделирование можно считать наиболее подходящим для создания сложных, прежде всего органических и аморфных, моделей в 3ds Max, да и не только в нем. Да и для моделирования, казалось бы, совсем неорганических объектов (например, сложные крыши) также предпочтительно использовать полигональное моделирование.

Ìîäèôèêàòîðû Неформально модификатор можно определить как процедуру, применяемую к объекту или подобъектам, наделяющую его новыми свойствами. При этом исходный объект не подвергается изменениям. Вы всегда можете к нему вернуться и подправить что-нибудь на нижнем уровне.

40

Ãëàâà 1

Модификаторы, примененные к объекту, образуют структуру, называемую стеком модификаторов. Рассмотрим особенности работы модификаторов в стеке на конкретном примере. На рис. 1.15 показана заготовка модели прибора ночного видения со стеком модификаторов, примененных к нему.

Рис. 1.15. Объект и его стек модификаторов

Изначально объект представлял собой замкнутый сплайн, о чем говорит строка Editable Spline в самом низу стека модификаторов. После применения модификатора Extrude (Вытягивание) получилась поверхность. Теперь к объекту нельзя применить второй модификатор Extrude, т. к. этот модификатор применяется только к сплайнам, а объект уже таковым не является. Вы можете вернуться вниз по стеку и подправить изначальный сплайн, модификатор Extrude безболезненно воспримет любые изменения. Для того чтобы видеть результат, находясь на нижнем уровне стека, можно нажать кнопку с пробиркой, она называется Show end result on/off toggle (Вкл/выкл отображение результата действия модификаторов выше по стеку). После этого для формирования линз был применен модификатор Edit Poly, в котором редактирование велось на уровне полигонов, в частности, были добавлены ребра командой Cut и созданы новые полигоны командами Inset и Bevel.

Îñíîâû 3ds Max

41

Вот теперь при попытке вернуться вниз по стеку вы получите предупреждение о том, что ваши действия внизу стека могут привести к непредсказуемым результатам для модификаторов выше по стеку, в данном случае проблемным является модификатор Edit Poly (рис. 1.16, а). Каковы возможные проблемы?

а

б Рис. 1.16. Предупреждение о возможных проблемах (а) и собственно проблемы (б) при редактировании на нижнем уровне стека

Например, при возвращении вниз по стеку к сплайну и изменению интерполяции (вместо 6 шагов установлено 8), результат выше по стеку изменяется до неузнаваемости (рис. 1.16, б)! В чем дело? Изменив интерполяцию сплайна, тем самым было изменено не просто количество вершин и полигонов, получаемых в результате модификатора Extrude, была изменена их нумерация. Для модификатора Extrude это не критично. А вот команды модификатора Edit Poly были применены к неко-

42

Ãëàâà 1

торым полигонам (на самом деле, к одному верхнему, предположим, номер 123). После того, как нумерация изменилась, полигон номер 123 уже совсем не тот, который был раньше. Но модификатор Edit Poly об этом "не знает", он продолжает "честно" отрабатывать команды с полигоном номер 123, что и приводит к такому результату. Вывод: будьте очень осторожны при перемещениях по стеку и всегда четко представляйте, какое действие что может за собой повлечь. Еще одной особенностью модификаторов является возможность применения не ко всему объекту, а к выделенным подобъектам ниже по стеку. При этом очень часто возникает ситуация, когда, работая на уровне подобъектов, забывают выйти из этого режима, а модификатор хотят применить ко всему объекту. В этом случае применение модификатора может вообще не оказать никакого действия, т. к. часто ни один подобъект не выбран. Далее приведены некоторые команды для работы со стеком. Почти все они есть в контекстном меню стека модификаторов (рис. 1.17), но удобнее пользоваться кнопками в стеке.  Rename — переименовать модификатор. Это бывает полезно в том слу-

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

Рис. 1.17. Команды для работы со стеком модификаторов

 Delete — удалить модификатор из стека. Сделать это можно, нажав на

кнопку с мусорным ведром.  On/Off — включить или отключить действие модификатора. Отменить действие модификатора можно, "погасив" лампочку слева от модификато-

Îñíîâû 3ds Max

43

ра. Обратите внимание, что вы можете отключить действие модификатора только в окне проекции или только при рендеринге (Off in Viewport/Off in Renderer).  Cut/Copy/Paste/Paste Instanced — вырезать, копировать и вставлять мо-

дификаторы. Делать это можно не только в стеке одного объекта, но и переносить модификаторы с объекта на объект. Модификаторы можно переносить по стеку методом drag-and-drop. Также методом drag-and-drop можно переносить модификаторы с объекта на объект, при этом происходит копирование модификатора. Если вы хотите именно перенести модификатор, удалив его из стека текущего объекта, то удерживайте клавишу . Удерживая клавишу , вы создадите образец (Instance) модификатора для другого объекта. Изменяя параметры одного из них, вы будете менять и параметры другого.  ВАЖНО! При переносе модификаторов в пределах стека одного объекта всегда помните, что от положения модификатора в стеке зависит результат! Принцип "от перемены мест слагаемых сумма не изменяется" в этом случае не применим!

 Make Unique позволяет разорвать связи, созданные с отношением Instance

или Reference.  Collapse All/Collapse To — первая команда сворачивает весь стек и приводит объект к одному из базовых типов, вторая — сворачивает модификаторы ниже выбранного, оставляя модификаторы выше по стеку нетронутыми.  Show end result on/off toggle (помечена цифрой 1) позволяет контролировать результат изменений, сделанных ниже по стеку.  Pin Stack (цифра 2) позволяет сохранить возможность работы с каким-

либо объектом, при этом выбрав в сцене любой другой. Это удобно, например, при настройке камеры, когда одновременно нужно перемещать объекты, в сцене и менять параметры камеры (фокусное расстояние и т. д.).

Ðàáîòà ñ îáúåêòàìè â îêíàõ ïðîåêöèé Âûäåëåíèå îáúåêòîâ Выделять объекты можно по одному или сразу несколько. Выделение единичных объектов и подобъектов осуществляется с помощью простого наведения курсора и нажатия левой кнопки мыши на объекте. При этом если объекты отображаются в затененном виде (shaded), то для выбора объекта достаточно щелкнуть по поверхности, если в кар-

44

Ãëàâà 1

касном (Wireframe) — то нужно попасть в ребро каркаса. Несколько объектов можно выделить, удерживая левую кнопку мыши и очертив прямоугольник, окружность, область или воспользоваться для выделения кистью, в зависимости от типа выделения, задаваемую выбором в выпадающем меню пиктограмм: Главная панель  Type Selection Region

Вы можете добавить объект к уже выделенным, удерживая клавишу , и удалить его из выборки, удерживая клавишу . В 3ds Max предусмотрено два способа выделения нескольких объектов и подобъектов — с помощью окна (window) и пересечения (crossing). В первом случае выделяются все объекты, полностью попадающие в выделение, во втором — попадающие частично. Переключение между этими режимами осуществляется с помощью кнопки Crossing/Window Selection. В 3ds Max есть удобная возможность менять этот режим "на лету". Для этого в параметрах программы необходимо установить соответствующие флажки (рис. 1.18): Главное меню  Customize  Preferences...  вкладка General  группа Scene Selection

Рис. 1.18. Установка параметров для смены типа выделения "на лету" и размера кисти

В этом случае выделение будет осуществляться окном при движении курсора мыши слева направо и пересечением при движении в обратном направлении. При выделении с помощью области, лассо или кисти учитывается направление первого движения. Там же находится и параметр, определяющий размер кисти. В 3ds Max определены комбинации клавиш для выделения всех объектов и подобъектов (Select All), сброса выделения (Select None) и инвертирования выделения (Select Invert). Эти комбинации общеприняты, соответственно: +, + и +.

Îñíîâû 3ds Max

45

Ïåðåìåùåíèå, âðàùåíèå è ìàñøòàáèðîâàíèå îáúåêòîâ (òðàíñôîðìàöèè) Для этих действий с объектами в 3ds Max предусмотрены контейнеры трансформации (Transform Gizmo) (рис. 1.19, а—в) с большим количеством настроек (рис. 1.19, г). Главное меню  Customize...  Preferences  вкладка Gizmos

а

б Рис. 1.19, а и б. Контейнеры трансформации перемещения (а), вращения (б)

46

Ãëàâà 1

в

г Рис. 1.19, в и г. Контейнеры масштабирования (в) и параметры для настроек контейнеров (г)

Îñíîâû 3ds Max

47

В 3ds Max для выбора типа манипуляции с объектами и подобъектами предусмотрены клавиши , , и , которые соответствуют режимам выделения (Smart Selection), выделения и перемещения (Select and Move), вращения (Select and Rotate) и масштабирования (Select and Scale). Клавиша служит также для перебора способа выделения, а — типа масштабирования (Uniform — равномерное, Non-Uniform — неравномерное и Squash — масштабирование с сохранением объема). Иногда полезно отключить отображение контейнеров, для этого используют клавишу . Эта же клавиша, зачастую нажимаемая случайно, включает их отображение. Иногда удобнее и быстрее работать без "стрелочек". В этом случае стоит запомнить клавиши , , и , которые соответствуют привязкам по осям X, Y, Z и плоскостям XY, XZ и YZ.

Ðàçìíîæåíèå îáúåêòîâ Для размножения (или клонирования, Clone) объектов наиболее часто используемой командой является команда Clone (Клонирование) либо простое перемещение объекта с нажатой клавишей . Главное меню  Edit  Clone или сочетание клавиш +

При ее активизации открывается диалоговое окно Clone Options (Опции клонирования) (рис. 1.20), в котором можно выбрать количество и задать имя для новых объектов. Но самое важное — это тип клонированных объектов.

Рис. 1.20. Диалоговое окно Clone Options

48

Ãëàâà 1

Тип клонирования объектов выбирается с помощью трех переключателей в группе Object (Объект).  При выборе Copy (Копия) создается независимая копия объекта, здесь все просто.  При выборе Instance (Образец) и Reference (Ссылка) создается объект или объекты, которые не теряют связи с оригиналом, но немного по-разному. При клонировании методом Instance осуществляется двусторонняя связь — все изменения в оригинале и образцах, а именно моделирование на низком уровне, применение модификаторов и изменение их параметров, дублируют друг друга в обоих направлениях. При клонировании методом Reference это не совсем "односторонняя связь", как логично было бы предположить (и как определяют ее в некоторых книгах по 3ds Max). При методе Reference в стеке модификаторов возникает жирная черта. Те модификаторы в стеке, которые находятся ниже этой черты, ведут себя так же, как и при методе Instance, т. е. связь осуществляется в обе стороны (на рис. 1.21 TurboSmooth), а модификаторы выше черты действуют только на объект-ссылку (модификатор Twist). Модификаторы могут быть перенесены под черту и выше черты, при этом меняется вид отношения. Кроме того, любой из объектов, связанный с другим методом Instance, можно преобразовать в объект типа Reference, выбрав команду Make Reference в контекстном меню стека модификаторов.

Рис. 1.21. Связь объектов посредством метода Reference

Связь между объектами можно прервать при помощи команды Make Unique (Сделать уникальным) в контекстном меню стека модифика-

Îñíîâû 3ds Max

49

торов или нажав на соответствующую кнопку. Также связь прерывается при применении команды Collapse All (Свернуть весь стек) или преобразовании объекта к базовому типу (Convert to...). А вот команда Collapse To (Свернуть стек ниже текущего модификатора) не прерывает связей, приводя при этом объект к базовому типу. "Инстансирование" (Instance) объектов по сравнению с обычным копированием является предпочтительным при размножении объектов. Кроме того, что такие объекты удобнее редактировать (например, при инстансировании источников света в интерьере вы можете редактировать только один из них), это приносит дополнительные выгоды при рендеринге. Такие объекты транслируются в формат рендерера только один раз и занимают в памяти столько места, сколько занимает один объект. Это справедливо для всех рендереров.  ВАЖНО! Вращение, перемещение и масштабирование объекта не передается при инстансировании! Если вам нужно связать именно эти операции, примените модификатор XForm и проводите соответствующие операции над его контейнером (Gizmo).

Для размножения объектов в 3ds Max существует несколько команд, позволяющих создать копии по некоторому закону. Самый старый, очень мощный и совершенно неудобный инструмент — создание массива (Array) (рис. 1.22, а). При помощи этого инструмента можно создавать достаточно интересные конструкции, например, винтовую лестницу (рис. 1.22, б). Главное меню  Tools  Array

К сожалению, при открытом окне Array невозможно изменить вид в окне проекции. Наконец-то появившаяся кнопка Preview немного улучшает ситуацию, это лучше чем ничего. Для того чтобы расставить объекты по пути или по двум точкам, удобен инструмент Spacing Tool (рис. 1.22, в). У него очень много интересных настроек, например, объекты можно расставить на определенном расстоянии между центрами или сторонами и т. д. Жаль, что так и не преодолен "глюк" — при изменении вида в окне проекции копии перестают быть видимыми (но не пропадают). Чтобы вновь их увидеть, просто измените какой-нибудь параметр (например, количество копий), и отмените это изменение. Главное меню  Tools  Spacing Tool

 ВАЖНО! При расстановке объектов по замкнутому контуру есть вероятность, что два объекта будут установлены в одно место, т. к. начало совпадает с концом. Нужно обязательно удалить один из объектов.

50

Ãëàâà 1

а

б Рис. 1.22, а и б. Инструменты Array (a, б)

Îñíîâû 3ds Max

51

в

г Рис. 1.22, в и г. Инструменты Spacing Tool (в), Clone and Align (г)

52

Ãëàâà 1

д Рис. 1.22, д. Инструмент Snapshot (д)

Инструмент Clone and Align (Размножить и выровнять) позволяет сначала расставить простые объекты (на рис. 1.22, г это пустышки, Dummy, расставленные по поверхности сложной формы с использованием опции AutoGrid), а потом "одним кликом", используя их положение и ориентацию, расставить нужные объекты. К сожалению, нет опции "Заменить" (Replace), а хотелось бы ее иметь. А "глюк" тот же самый, что и у Spacing Tool. Главное меню  Tools  Clone and Align

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

Ðàáîòà ñ ÷èñëîâûìè ïàðàìåòðàìè В 3ds Max большинство параметров можно вводить в числовом виде в соответствующие поля. Кроме того, все эти поля имеют кнопки для прокрутки (Spinner). Использовать их можно, либо нажимая левую кнопку мыши столь-

Îñíîâû 3ds Max

53

ко раз, сколько надо, либо перемещать курсор мыши вверх или вниз, удерживая левую кнопку мыши.  ВАЖНО! При работе с некоторыми командами, например, при вытягивании (Extrude) полигона в объекте типа Editable Mesh либо скруглении или создании фаски (Fillet и Chamfer) у вершины в объектах типа Editable Spline, спиннеры нужно только тянуть! Щелчок на кнопке спиннера в этом случае приводит к выполнению этой команды на заданный шаг, что, как правило, совсем не то, что нужно!

Для того чтобы курсор при этом оставался около окна, можно включить опцию Wrap Cursor Near Spinner (Удерживать курсор вблизи окна параметра). Главное меню  Customize  Preferences...  вкладка General  группа Spinners

Для того чтобы быстро изменить параметр, можно при прокрутке удерживать клавишу . Удерживая клавишу , вы добьетесь повышения точности при прокрутке параметров с плавающей запятой, а, щелкнув на окошке правой кнопкой мыши, вы сбросите параметр в минимальное значение. В полях параметров можно производить действия сложения и вычитания с текущим значением параметра. Например, если вы хотите увеличить значение на 10 единиц, введите в поле параметра r10 (от английского relative) и нажмите . Для уменьшения используется префикс r–, например, r–10. К сожалению, других вычислений в полях параметров делать нельзя. В 3ds Max предусмотрен калькулятор, называемый Numeric Evaluator, позволяющий вычислять значение в окне ввода. Вызвать его можно, нажав сочетание клавиш + в момент, когда курсор находится в поле задания параметра (рис. 1.23). Синтаксис вводимых выражений во многом аналогичен синтаксису контроллера уравнений (Expression Controller). Подробнее о калькуляторе вы можете прочитать в Руководстве пользователя.

Рис. 1.23. Встроенный калькулятор

Нельзя не отметить приятную возможность преобразования единиц измерения. Например, если вы работаете в метрической системе и хотите ввести значение в дюймах, то введите это значение с явным указанием единицы измерения, например 8". 3ds Max автоматически преобразует дюймы к метрической шкале.

54

Ãëàâà 1

 ЗАМЕЧАНИЕ К сожалению, автоматическое преобразование единиц измерения не поддерживается калькулятором.

Ñèñòåìû êîîðäèíàò 3ds Max позволяет пользователю производить трансформации (перемещение, вращение и масштабирование) объектов и подобъектов в нескольких системах координат (СК). Как правило, эти системы ортогональные, декартовы, т. е. оси координат расположены под прямым углом относительно друг друга. Выбрать систему координат можно в выпадающем меню главной панели (рис. 1.24, а) или в квадрупольном меню +Правая кнопка мыши, квадрант Coordinates (рис. 1.24, б).

а

б Рис. 1.24. Выбор текущей системы координат

Описание систем координат приводится ниже в порядке значимости.  World (Система мировых координат) — эта СК использует координаты

"мира" и является основной. Ось X направлена на восток, ось Y — на север, а ось Z — в зенит. Точка начала координат ее находится в абсолютном нуле.  Screen (СК экрана) — эта система координат использует координаты окна

проекции. Ось X всегда направлена горизонтально вправо, ось Y — вверх и ось Z вглубь экрана от вас, независимо от проекции. Точка начала координат ее находится в центре окна проекции.  View (СК окна проекции) — эта СК является комбинацией двух предыдущих СК и, по не понятным причинам, именно эта система координат является системой по умолчанию. В "прямых" проекциях (Top, Left и т. д.) она совпадает с системой координат Screen. В окнах проекции изометрического вида (Isometric User) и перспективы используется система мировых координат. Имейте в виду, что при вводе числовых значений в панели ввода

Îñíîâû 3ds Max

55

координат используются мировые координаты независимо от выбранной системы.  Local (Локальная СК) — эта система координат привязана к объекту, точ-

нее, к его точке привязки (Pivot Point), в которой и находится точка начала координат. Каждый объект при создании как-то ориентирован в пространстве, при этом совершенно не обязательно, что его "верх" согласуется с "верхом" мировых координат, это зависит от того, как был создан первоначальный элемент объекта, например, примитив. При вращении локальные координаты вращаются вместе с объектом. Если вы хотите, чтобы объект был ориентирован точно по мировым координатам с самого начала, создавайте его в окне проекции вида сверху либо ортогональном (User) или перспективы. Немного сложнее дело обстоит с подобъектами. На рис. 1.25 показаны локальные координаты для полигонов, ребер и вершин одного объекта. С полигонами все понятно: если выделен один полигон, то его локальная ось Z направлена по направлению нормали. Если выделено несколько смежных полигонов, то ситуация меняется: ось Z направлена уже по направлению вектора, представляющего собой суперпозицию нормалей этих полигонов. А вот с ребрами и вершинами дело обстоит хуже: ось Z для них направлена по направлению векторной суммы прилегающих

а Рис. 1.25, а. Локальные координаты для полигонов (а)

56

Ãëàâà 1

б

в Рис. 1.25, б и в. Локальные координаты для ребер (б) и вершин (в)

Îñíîâû 3ds Max

57

к ним полигонов. Поэтому в локальных координатах редактировать наборы подобъектов достаточно сложно, хотя одиночные подобъекты редактируются очень неплохо.  Parent (СК родительского объекта). В случае если объект не привязан

(Link) к другому объекту, родительским объектом считается "мир", поэтому эта СК совпадает с мировой системой координат. В случае если объект привязан к другому объекту или объединен в группу (Group), СК этого типа данного объекта совпадает с локальной системой объекта-родителя. В группе таким объектом является контейнер (Gizmo) группы. Для подобъектов родителем является сам объект, поэтому в этом случае система координат совпадает с локальными координатами объекта, это бывает удобно в том случае, когда объект уже ориентирован в пространстве и надо что-то подправить на уровне подобъектов.  Grid (СК активной сетки). В 3ds Max, кроме основной сетки, существует

специальный вспомогательный объект — сетка (Grid). Таких объектов может быть несколько, и ориентированы они в пространстве могут поразному. Для того чтобы воспользоваться сеткой, необходимо ее активизировать (Квадрупольное меню  Activate Grid). При работе в системе координат сетки как раз и удобна данная СК (рис. 1.26). Во всех других случаях эта СК совпадает с мировой.  Gimbal (Шарнир) — эта система координат, теоретически, упрощает ре-

дактирование анимационных кривых при анимации вращения объекта, которому на вращение назначен контроллер Euler XYZ. Если вращение объекта вокруг одной оси в локальных или "родительских" координатах приводит к изменению двух или трех кривых, то вращение в системе координат Gimbal влияет на одну кривую. Оси при этом могут быть неортогональны. При перемещении и масштабировании эта CK ведет себя так же, как и Parent. Честно говоря, практического смысла в использовании этой СК нет.  Pick (СК объекта по выбору). На самом деле, это не система

координат, а кнопка — приглашение к действию. Зачастую очень удобно в качестве системы координат временно назначить локальную систему координат другого объекта. Процедура такова: вы выбираете пункт Pick и щелкаете левой кнопкой мыши на нужном объекте. В результате в списке систем координат появляется имя выбранного объекта. Выбрав его, вы определяете в качестве системы координат его локальную СК и начало координат переносится в точку привязки этого объекта. Таким образом, вы легко сможете повернуть один объект вокруг другого.

58

Ãëàâà 1

 ЗАМЕЧАНИЕ К сожалению, информация о СК объекта по выбору не сохраняется в проекте 3ds Max.

Рис. 1.26. Активная сетка и объект в системе координат этой сетки

 СОВЕТ Для того чтобы координатная система оставалась постоянной для перемещения, вращения и масштабирования (а так оно, как правило, и нужно), зафиксируйте ее (Главное меню  Customize  Preferences  вкладка General) и установите флажок Constant в группе Ref. Coord. System.

Хотим предупредить о некоторой особенности, связанной с идеологией 3ds Max. Эта особенность приводила в недоумение не только начинающих пользователей. Дело в том, что в случае, если объект подвергался изменениям размера (Scale), изменяются не "внутренности" объекта, а его локальная система координат. Другими словами, сантиметр СК такого объекта и СК, осно-

Îñíîâû 3ds Max

59

ванной на этом объекте, может не совпадать с сантиметром системы мировых координат, а иногда такая система не является ортогональной. На рис. 1.27 показан результат поворота и неравномерного масштабирования над объектом типа Box. Как видите, несмотря на то, что он уже далек от первоначальной формы, размеры его в Панели управления остаются равными изначальным, а углы локальной системы координат — прямые.

Рис. 1.27. Искажение локальной системы координат в результате поворотов и масштабирования

Чем это чревато? В принципе, ничем особенным, за исключением следующего:  Все модификаторы, использующие цифровые параметры, при применении

на таком объекте используют все эти изменения. Например, модификатор Extrude, примененный к сплайну, подвергнутому масштабированию, вытягивает его на высоту, несовпадающую с мировыми единицами измерения.  Процедурные карты, наложенные в пространстве Object XYZ, искажают-

ся. Искажаются и двумерные карты, наложенные с использованием реальных размеров (Real-World Scale). Если это очень критично, то помогает применение операции Reset XForm (Сброс трансформаций): Панель управления  Utilities  Reset XForm.

При этом происходит следующее — в стек модификаторов добавляется модификатор XForm, который "принимает на себя" все трансформации,

60

Ãëàâà 1

компенсирует их, и выправляет локальные координаты объекта по мировым. После применения этой процедуры либо сверните стек, либо оставьте XForm в стеке — модификаторы выше по стеку будут работать так, как надо.  Если масштабированный объект является членом иерархии, то все его по-

томки, т. е. объекты, привязанные к нему, наследуют все эти искажения. Таким образом, при повороте члена иерархий он описывает иногда весьма замысловатую траекторию, при этом искажаясь. Решить эту проблему можно сбросом трансформаций для точки привязки. Имейте в виду, что это не то же самое, что сброс трансформаций объекта! Панель Hierarhy  подпанель Pivot Point  свиток Adjust Transform  группа Reset

Öåíòðû òðàíñôîðìàöèè Центры трансформации (Transform Center) в 3ds Max определяют точку, относительно которой будет произведен поворот или изменение размера выделенных объекта, объектов или подобъектов. Выбор центра трансформации осуществляется с помощью выпадающего меню пиктограмм в главной панели. Кроме того, для перебора центров вы можете назначить сочетание клавиш (рис. 1.28). Главное меню  Customize  Customize User Interface

Рис. 1.28. Назначение клавиши на перебор центров трансформации

 Transform Coordinate Center (Центр системы координат). В зависимости

от системы координат это может быть центр экрана, начало координат — другими словами, начало координат текущей системы координат (рис. 1.29, а).  Selection Center (Центр выбранных объектов). В этом случае точкой, от-

носительно которой будут производиться трансформации, является центр

Îñíîâû 3ds Max

61

а

б Рис. 1.29, а и б. Центры трансформаций

62

Ãëàâà 1

в Рис. 1.29, в. Центры трансформаций

объемной фигуры, "построенной" на основе геометрических центров выделенных объектов (рис. 1.29, б).  Pivot Point Center (Точка привязки). Для объектов центры трансформаций совпадают с точками привязки объектов (рис. 1.29, в). Для подобъектов это не так, как правило, в этом случае используются центры выделенных подобъектов.

Ðàáîòà ñ îêíàìè ïðîåêöèè Эффективность работы в 3ds Max во многом зависит от того, насколько хорошо вы ориентируетесь в окнах проекции (ViewPorts). Далее представлены основные настройки и манипуляции с окнами проекции.

Âûáîð âèäåîäðàéâåðà Начиная с 3ds Max 9, основным режимом отображения объектов в окнах проекции стал Direct3D. Именно этот режим позволяет вам воспользоваться всеми нововведениями, направленными на ускорение отображения объектов. Правда, прирост производительности вы сможете почувствовать только в том

Îñíîâû 3ds Max

63

случае, если вы обладаете современной профессиональной или полупрофессиональной видеокартой. Если вам по какой-то причине не нравится использование Direct3D, то вы можете изменить его на другой. Для этого либо запустите 3ds Max, используя ярлык Change Graphics Mode (изменить графический режим), либо измените его непосредственно в 3ds Max (рис. 1.30). Главное меню  Customize  вкладка Viewports  Choose Driver  Revert from Direct3D

Рис. 1.30. Диалоговое окно выбора видеодрайвера

Вам будет предложено на выбор три доступных режима. Первый из них (Software) не использует возможностей современных трехмерных ускорителей, и использовать его имеет смысл только в том случае, если у вас установлено что-то "доисторическое". Два остальных режима, вполне возможно, могут оказаться равнозначными за некоторыми исключениями. Например, в режиме Direct3D возможно использовать файлы формата FX (шейдеры Direct3D) в качестве материалов для рендеринга в реальном времени. Но если вы не являетесь разработчиком компьютерных игр, то, по большому счету, все равно, что использовать, вы должны руководствоваться только возможностями своей видеосистемы и ее производительностью в различных режимах. И, как уже указывалось ранее, 3ds Max 9 оптимизирован под Direct3D. Особенно это заметно при использовании связки Windows Vista и DirectX 10. Но при этом обязательно для 3ds Max 9 должны быть установлены либо Service Pack 2, либо Productivity Booster Extension 1 Rev. 3. Последнее возможно в том случае, если вы являетесь подписчиком Autodesk.  ЗАМЕЧАНИЕ В некоторых справочниках и пособиях по 3ds Max настоятельно рекомендуется использование как раз режима Software на основании того, что в этом режиме пакет работает наиболее стабильно. Это справедливо, но только для 3D Studio MAX 1 и 2. "Детские болезни" на сегодняшний момент успешно преодолены

64

Ãëàâà 1 специалистами по "железу" и "софту", поэтому отказываться от возможностей, предоставляемых современными видеоускорителями, прежде всего, увеличения производительности в десятки раз, в пользу сомнительной стабильности, нам кажется, не стоит.

Íàñòðîéêà ðàñïîëîæåíèÿ îêîí ïðîåêöèè При первом запуске 3ds Max выводит стандартное расположение окон проекции — четыре окна проекции видов сверху, слева, спереди и перспективы. В любой момент времени вы можете развернуть каждое окно проекции на весь экран, нажав сочетание клавиш + (первая буква в слове Wide — "широкий"). Кроме этого, в 3ds Max есть возможность изменить размер любого окна проекции, подведя курсор к разделительным линиям (при этом курсор принимает вид стрелок, направленных в стороны, соответствующие возможному изменению размеров) и, удерживая левую кнопку мыши нажатой, изменить размер окна по вашему желанию. Для того чтобы вернуть вид в первоначальное состояние, щелкните правой кнопкой мыши на любой разделительной линии и выберите единственный пункт меню — Reset Layout. Это делать приходится не очень часто, но иногда это действительно полезно. 1. Откройте окно настроек окон проекции (рис. 1.31). Контекстное меню окна проекции  Configure  вкладка Layout

Рис. 1.31. Окно настроек расположения окон проекции

Îñíîâû 3ds Max

65

2. Выберите понравившуюся вам схему расположения окон и определите их содержимое, щелкая левой кнопкой мыши в окнах и выбирая нужный вид.

Îòîáðàæåíèå îáúåêòîâ â îêíàõ ïðîåêöèè В 3ds Max геометрические объекты могут отображаться различными способами. Два из них являются основными — это каркасный режим (или "проволочный", Wired) и затененный Shaded (рис. 1.32, а, б). Для переключения между ними предусмотрена клавиша . Кроме этих двух режимов, существует несколько дополнительных режимов, найти их можно в контекстном меню окна проекции. Основным при работе в 3ds Max является затененный режим с отображением ребер — Shaded Mode with Edged Faces (Затененный режим с отображением ребер) (рис. 1.32, в). Быстро переключиться на этот режим можно при помощи клавиши . Привыкайте работать в этом режиме! Интересными являются два вида, появившиеся в последних версиях, — это Flat (плоский) и Hidden Lines (скрытые линии) (рис. 1.33, а, б). Первый убирает освещение, упрощая контроль за тем, как наложены текстуры, а второй является альтернативным режиму Wireframe, отображая ребра с учетом перекрытия объектов.

а Рис. 1.32, а. Основные режимы отображения объектов в окнах проекции: Wired (а)

66

Ãëàâà 1

б

в Рис. 1.32, б и в. Основные режимы отображения объектов в окнах проекции: Shaded (б) и Shaded Mode with Edged Faces (в)

Îñíîâû 3ds Max

67

а

б Рис. 1.33. Режимы отображения: Flat (а) и Hidden Lines (б)

68

Ãëàâà 1

Далее приведем несколько полезных команд и настроек, предназначенных для изменения вида объекта в окне проекции.  Если вы хотите видеть все ребра — и видимые, и невидимые, снимите в параметрах объекта флажок Edges Only (Показывать только видимые ребра). Квадрупольное меню  Properties  Флажок Backface Cull (Отсекать грани, повернутые от наблюдателя) в 3ds

Max 9 по умолчанию снят для ускорения отображения в окнах проекции, при этом обратная сторона поверхности в затененном режиме окрашивается в черный цвет. Иногда бывает удобно включить этот режим, в этом случае установите это флажок для тех объектов, для которых необходимо. Кроме этого, вы можете задать установку Backface Cull on Object Cteation (использовать отсечение граней для вновь создаваемых объектов), если вы привыкли работать "по старинке". Главное меню  Preferences  вкладка Viewports  Вы можете установить отображение объектов в виде "кубика" (Display as

Box), это полезно в том случае, если вам нужно знать, где находится объект, но при этом он вам мешает.  Иногда переключать режимы приходится достаточно часто, поэтому в этом случае стоит использовать плавающее окно отображения объектов Display Floater (рис. 1.34).

Рис. 1.34. Плавающее окно Display Floater

Îñíîâû 3ds Max

69

В этом же окне предусмотрены команды и флажки для включения и отключения отображения объектов по их типу. Эта функция достаточно часто используется в сложных сценах. Главное меню  Tools  Display Floater  Для быстрого переключения между обычным и полупрозрачным (See-

Through) режимами используйте сочетание клавиш +. А для того, чтобы в режиме See-Through объект выглядел лучше, установите соответствующий (Best) режим прозрачности. Контекстное меню окна проекции  Transparency  Best

 ЗАМЕЧАНИЕ При установке свойств объектов By Layers (по слоям) это сочетание клавиш не работает!

 Когда в сцене появляются объекты-источники света, свет, присутствую-

щий в сцене по умолчанию, отключается. Бывает достаточно неудобно моделировать в таком режиме, поэтому в 3ds Max имеется возможность принудительно включить освещение по умолчанию. Контекстное меню окна проекции  Configure...  вкладка Rendering Method  флажок Default Lighting или сочетание клавиш +  Для ускорения отображения объектов в окне проекции при перемещении

можно использовать режим адаптивной деградации Adaptive Degradation. К сожалению, клавиша включения этого режима очень часто нажимается случайно, поэтому если у вас при повороте вида в окне проекции объекты "превращаются" в коробки, это значит, что включен этот режим. Отключите его, повторно нажав клавишу .  Появившийся в версии 7 режим с труднопереводимым названием Object

Display Culling (по сути, это выборочное отображение объектов) значительно более "разумен", по сравнению с Adaptive Degradation, и весьма полезен при работе с большими сценами. Включается и отключается он с помощью комбинации клавиш +, а настраивается посредством специальной утилиты (рис. 1.35). При показанных настройках в случае, если скорость обновления экрана уменьшается до 20 кадров в секунду, объекты, наиболее удаленные от наблюдателя, отображаются в виде "кубиков". Командная панель  подпанель Utilites  More...  Object Display Culling

 ЗАМЕЧАНИЕ В 3ds Max 2008 и выше оба эти режима заменены одним, более совершенным. Подробнее об этом вы можете узнать из приложения 7.

70

Ãëàâà 1

Рис. 1.35. Настройка режима Object Display Culling

а

б Рис. 1.36. Менеджер слоев (а) и окно настроек слоя (б)

Îñíîâû 3ds Max

71

 При работе со слоями (Layers) отображение объектов можно менять цели-

ком для слоя в менеджере слоев Layer Manager (рис. 1.36, а), открыв окно параметров слоя, шелкнув правой кнопкой мыши на имени слоя и выбрав пункт Layer Properties (свойства слоя) (рис. 1.36, б). Менеджер слоев достаточно удобен и в том случае, если вы не пользуетесь слоями в полном объеме, т. к. нулевой слой всегда присутствует. Главное меню  Tools  Layer Manager

Âûáîð âèäà â îêíå ïðîåêöèè Выбрать вид в окне проекции можно с помощью контекстного меню окна проекции (рис. 1.37). Но гораздо удобнее пользоваться горячими клавишами.

Рис. 1.37. Меню выбора вида (Views) контекстного меню окна проекции

 Клавиши , , , , соответственно, вид сверху Top, снизу

Bottom, спереди Front, слева Left. Эти команды в комментариях не нуждаются.  Клавиши

, , соответственно, вид в проекции перспективы

Perspective и изометрической проекции User. При переходе к этим видам по возможности сохраняется угол зрения (Viewing Angle) текущих видов.  Клавиши и (+) — виды, полученные с помощью каме-

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

72

Ãëàâà 1

Кроме того, существует квадрупольное меню видов Viewports Quad Menu, вызываемое клавишей . В нем выбор видов побольше, так что советую вам использовать это меню. Сочетание клавиш здесь двойное, например нажатие , а затем дает вам вызов вида справа (Right).

Ïåðåìåùåíèå âèäà â îêíàõ ïðîåêöèè Pan Перемещение вида в окнах проекции осуществляется с помощью средней кнопки мыши. Просто нажмите ее и потащите вид в окне проекции. Удерживая клавишу , вы добьетесь более быстрого перемещения вида в окне проекции, а удерживая клавишу , вы будете перемещать окно проекции только по одной координате. Если по какой-то причине вам претит пользоваться средней кнопкой мыши, или ее у вас до сих пор нет, то в режим перемещения вы можете перейти, нажав кнопку Pan в панели навигации или сочетание клавиш +

. В 3ds Max есть еще один интересный и полезный способ — использование клавиши (команда называется Pan Viewport). Подведите курсор мыши к любому месту в окне проекции и нажмите эту клавишу. Окно проекции переместится так, что курсор окажется в центре. Это удобно в ситуации, когда при построении объекта, например кривой, объект выходит за рамки окна проекции, а нажатие на среднюю кнопку приводит к завершению создания объекта.

Âðàùåíèå âèäà â îêíàõ ïðîåêöèè Arc Rotate Вращение вида в окне проекции при моделировании на конечной стадии является очень полезным, т. к. позволяет выбрать наиболее удобный ракурс. Следует помнить о том, что вращение "прямого" вида (сверху и т. д.) приводит к изменению его на изометрический вид (Isometric User). При использовании трехкнопочной мыши удобно вращать вид средней кнопкой мыши при нажатой клавише . Клавиша также может быть использована для вращения вокруг одной оси. Режим вращения в окнах проекции также вызывается нажатием кнопки Arc Rotate в панели навигации. Используя выпадающее меню кнопок Arc Rotate, вы можете определить центр вращения окна проекции: начало координат, выделенный объект Arc Rotate Selected или выделенный подобъект Arc Rotate SubObject, например, вершина или грань. К сожалению, в 3ds Max не предусмотрена возможность назначить горячую клавишу на перебор центра вращения, но, в общем-то, это и не нужно. Просто выберите вращение вокруг выделенного подобъекта. Если в сцене не вы-

Îñíîâû 3ds Max

73

брано ни одного объекта, то вращение будет осуществляться вокруг центра координат, а если выбран объект — то вокруг него.

Ìàñøòàáèðîâàíèå âèäà â îêíàõ ïðîåêöèè Zoom Этих команд в 3ds Max достаточно много и они наиболее часто используются. Давайте их рассмотрим.  При использовании трехкнопочной мыши масштабирование вида можно

производить с помощью средней кнопки мыши и одновременно нажатых клавишах и . При использовании мыши с колесиком удобно использовать его, правда, при этом масштабирование вида происходит дискретно. Настроить шаг можно в настройках 3ds Max. Главное меню  Customize  Preferences  вкладка Viewport  Wheel Zoom Increment  Клавиши и позволяют увеличивать или уменьшать вид в два раза,

соответственно.  В настройках 3ds Max есть одна интересная возможность — использовать

в качестве центра изменения размера вида в окне проекции положение курсора мыши. Использовать или нет эту возможность, зависит от ваших пристрастий. К сожалению, до сих пор не исправлена ошибка, из-за которой этот режим не работает в виде перспективы. Главное меню  Customize  Preferences  вкладка Viewport  флажки Zoom About Mouse Point  Самая используемая команда — масштабирование всех окон проекции по

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

соответствующей кнопкой в панели управления или комбинацией +.

Íàâèãàöèÿ â îêíàõ âèäà èç êàìåðû è èñòî÷íèêà ñâåòà К сожалению, в этих видах средняя кнопка мыши используется только для перемещения вида. Все остальные действия выполняются из панели навигации, которая выглядит несколько по-иному для этих видов (рис. 1.38) и содержит ряд специфических команд, например, установка поля зрения для камеры (Field-Of-View) или угла затухания света (Light Falloff) для источника

74

Ãëàâà 1

света. Для этого нужно нажать на кнопку соответствующей команды и далее выполнять команду навигации с помощью левой кнопки мыши.

а

б

Рис. 1.38. Панель навигации для вида из камеры (а) и источника света (б)

В 3ds Max существует интересная возможность управления видом из камеры или перспективы с помощью стрелок и левой кнопки мыши, аналогично игре "от первого лица". Этот режим включается автоматически при нажатии одной из стрелок в окне вида камеры или перспективы. Стрелки вверх, вниз, влево и вправо приводят к перемещению камеры или вида вперед, назад и в стороны. Нажатие и удержание клавиши совместно со стрелками вверх и вниз дают перемещение вверх и вниз. Скорость перемещения камеры регулируется клавишами и . Камера поворачивается при помощи левой кнопки мыши. Сочетание + приводит камеру в горизонтальное положение. Вполне возможно, вам понравится этот режим, он может быть полезен, например, для установки камеры в интерьере. Есть только одно замечание по использованию этого режима в 3ds Max 9: чтобы камера перемещалась корректно, переключитесь в режим использования клавиш для этого режима, нажав кнопку Keyboard Shortcut Override Toggle (Переключение наборов горячих клавиш) в главной панели.

Äîïîëíèòåëüíûå êîìàíäû íàâèãàöèè Полезными так же являются следующие команды навигации:  Откат изменений вида проекции Undo View Change позволяет вернуть

вид в окне проекции в предыдущее состояние, что иногда очень нужно. Используйте для этого сочетание клавиш +, аналогично откату (Undo, сочетание клавиш +), либо команды Undo View и Redo View в контекстном меню окна проекции.  Вы можете сохранять и восстанавливать параметры активного окна любо-

го вида командами Save и Restore Active View. Главное меню  Views  Save/Restore Active View  Иногда бывает нужна перерисовка всех окон, для этого определена кла-

виша (тильда).

Îñíîâû 3ds Max

75

Ðàáîòà ñ ôàéëàìè Все необходимые команды для работы с файлами находятся в меню File главного меню. Мы надеемся, нет смысла обсуждать команды типа Open, поэтому мы заострим ваше внимание на специфических командах и возможностях.  Команда Set Project Folder (Выбрать папку проекта) позволяет быстро

выбрать или создать структурированную папку проекта (рис. 1.39). При этом по умолчанию открытие или сохранение тех или иных компонентов будет производиться в нужную подпапку.

Рис. 1.39. Структура папки проекта

 В диалоговых окнах команд Save As (Сохранить как) и Save Copy As (Со-

хранить копию) есть интересная кнопка со знаком плюс. Эта кнопка позволяет сохранять файлы в виде scene01.max, scene02.max и т. д. — весьма полезная возможность, советуем вам пользоваться этим и сохранять промежуточные варианты сцены. Команда Save Copy As отличается от команды Save As тем, что создается копия сцены и продолжается работа с текущей сценой, в то время, как при использовании команды Save As вы продолжаете работать уже с новой версией сцены.

76

Ãëàâà 1

а

б

в Рис. 1.40. Диалоговое окно Merge (а). Предупреждение о дублировании имен объектов (б) и материалов (в)

Îñíîâû 3ds Max

77

а

б Рис. 1.41. Диалоговые окна XRef Objects (а) и File Link Manager (б)

78

Ãëàâà 1

 Команда Save Selected позволяет сохранить только выбранные объекты,

это полезно при составлении собственной библиотеки объектов.  Добавление объектов из файлов с расширением max осуществляется

обычно при помощи команды Merge. После выбора нужного файла открывается одноименное диалоговое окно Merge, в котором можно выбрать нужные объекты (рис. 1.40, а). Кроме этого, существует возможность переноса объектов из других сцен при помощи модуля Asset Browser либо Проводника Windows методом drag-and-drop.  Для загрузки объектов из файлов других форматов нужно использовать

команду Import. Для каждого типа файлов используются свои настройки импорта, с некоторыми из них вы познакомитесь в процессе выполнения проектов. При загрузке объектов из других файлов очень часто возникают ситуации, когда в сцене уже присутствуют объекты с теми же, что и у загружаемых, именами или материалами (рис. 1.40, б, в). Что делать в этой ситуации? Как ни странно, но в сцене могут присутствовать объекты с одинаковыми именами. Но, конечно, нужно избегать этого. Следует также избегать имен типа Rectangle01112 и т. п. — вам будет очень сложно разбираться с ними впоследствии. А вот материалов с одним и тем же именем в сцене не может быть, хотя в редакторе материалов такая ситуация допустима. Но при присвоении материала объектам в сцене в случае дублирования имен возникает предупреждение, в котором вам предлагается тем или иным способом преодолеть коллизию имен, как правило, имеет смысл переименовать объекты или материалы.  Команды Xref Objects и Xref Scenes позволяют загружать объекты и сце-

ны целиком в текущий проект из другого файла без потери связи с исходными файлами (рис. 1.41, а). Для файлов формата DXF/DWG предусмотрен аналогичный инструмент — File Link Manager (рис. 1.41, б).

Íàñòðîéêà îòêàòà è "ñïàñåíèå" ïðîåêòà В процессе работы часто совершаются неверные действия, которые вы хотите отменить. Вы всегда можете вернуться к предыдущему состоянию, выполнив команду Undo (Откат) (сочетание клавиш +). 3ds Max поддерживает многоуровневый откат MultiUndo, глубину которого вы можете задать произвольно. Главное меню  Customize  Preferences  вкладка General

Îñíîâû 3ds Max

79

Помните! Чем больше глубина, тем больше ресурсов требуется 3ds Max, и тем менее эффективна работа. Кроме того, не все команды попадают в этот список, и очень часто список очищается самопроизвольно. Поэтому глубина в 20—40 откатов является оптимальной. Чтобы выполнить многоуровневый откат MultiUndo, вы можете или просто нажимать комбинацию клавиш + несколько раз, или открыть список Undo в главной панели (Главная панель (Main toolbar)  Undo), нажав правой кнопкой мыши на кнопку со стрелкой влево вниз. В результате вы откроете список, в котором записаны все ваши действия, произведенные за последнее время. Найдите то действие, до которого вы хотите "откатиться", и нажмите кнопку Undo. Если вы откатились слишком далеко назад — не отчаивайтесь! Рядом находится кнопка Redo (кнопка со стрелочкой вправо вниз), которая работает аналогично, с той лишь разницей, что она восстанавливает ваши отмененные действия. В процессе работы иногда возникает ситуация, приводящая к сбою программы. Это могут быть или внутренние проблемы 3ds Max, или внешние факторы, например, в операционной системе. В этом случае появляется диалоговое окно с предложением сохранить проект под именем "имя_проекта_ recover.max". При повторном запуске 3ds Max этот файл находится в списке Open Recent. Если его там нет, то этот файл находится в каталоге AutoBack папки текущего проекта. В некоторых случаях (например, сбой питания) 3ds Max не имеет возможности сделать резервную копию. В этом случае спасает использование автосохранения. Главное меню  Customize  Preferences  вкладка Files  Auto Backup

При настройках по умолчанию, 3ds Max каждые пять минут автоматически сохраняет ваш текущий файл в подпапке AutoBack папки текущего проекта под именами Autoback#.max. Если проект очень большой, то автосохранение может занимать достаточно много времени, поэтому в этом случае можно эту опцию отключить.  ВАЖНО! Запустив 3ds Max после сбоя, сразу же загрузите автоматически сохраненный файл! Не забывайте, что производится перезапись этих файлов!

И все же самый простой и эффективный способ — просто периодически сохранять свой проект, при этом желательно сохранять промежуточные стадии при помощи команды Save Copy As.

80

Ãëàâà 1

Ìàòåðèàëû, îñâåùåíèå è ðåíäåðèíã Мы решили свести эти три понятия в один раздел, т. к. все это неразрывно связано друг с другом. И начинать нужно с главного, а не заканчивать им. В этом небольшом разделе мы сделали попытку немного прояснить положение вещей, сложившееся в настоящее время в рендеринге вообще и применительно к 3ds Max в частности. Без формул и интегральных уравнений мы постараемся донести до вас суть процессов, происходящих между нажатием на кнопку Render и появлением на экране красивой картинки. Дословный перевод слов "Render" и "Rendering" ("отдавать", "представлять" и "предоставление") достаточно точно определяет суть процесса: все то, что присутствует в сцене — объекты, материалы, освещение, эффекты и т. д. — сводится в единое целое и выдается в виде изображения. В трехмерной графике часто используется синоним — "визуализация" (Visualization). Именно в таком аспекте и будет рассматриваться этот процесс. В этом разделе будут рассмотрены только традиционные методы программного рендеринга, реализованные в стандартном рендерере 3ds Max, mental ray и VRay. На сегодняшний момент, исходя из соображений качества окончательного изображения и временных затрат, именно эти алгоритмы являются доминирующими.  ЗАМЕЧАНИЕ Если вас заинтересует более подробное рассмотрение алгоритмов, на которых построены современные рендереры, то вы можете углубить свои знания, например, изучив цикл статей Игоря Сивакова на сайте www.ixbt.com. Материал в книге частично был подготовлен на основе этих статей с разрешения автора. Кроме этого, некоторые моменты были обсуждены с Павлом Лединым (aka Puppet), известным специалистом в области компьютерной графики и mental ray в частности. Что касается VRay, то здесь нам помогали сотрудники студии Realtime Studio и Алексей Дук, также известный специалист в этой области.

Àëãîðèòìû ðåíäåðèíãà Àëãîðèòì Scanline Этот алгоритм является основным для стандартного рендерера 3ds Max, об этом говорит и его название — Default Scanline Renderer. В mental ray также реализован этот алгоритм. Из "камеры" (в 3ds Max под камерой понимается вид окна проекции) испускаются лучи, сканирующие сцену, в простейшем случае по одному в каждый пиксел окончательного изображения. При достижении объекта анализируется его поверхность в данной точке — параметры материала, освещенность, угол между поверхностью и источником света и т. д. Информация возвращается

Îñíîâû 3ds Max

81

обратно в камеру и записывается как пиксел в окончательное изображение (рис. 1.42).

Рис. 1.42. Схема алгоритма Scanline

Недостатки этого алгоритма очевидны — нет возможности получить реальные отражения и преломления. C другой стороны, алгоритм Scanline быстр, и это его немаловажное преимущество.  ЗАМЕЧАНИЕ Справедливости ради надо сказать, что получить отражения и преломления в 3ds Max можно и без применения рейтрейсинга, о котором речь пойдет далее, используя карты Reflect/Refract (отражение и преломление), Flat Mirror (плоское зеркало) и Thin Wall Refraction (преломление тонких стенок). Во всех трех случаях из самого объекта производится рендеринг и строится карта, которая назначается на каналы отражения или преломления. Несмотря на то, что эти приемы имеют право на существование, у них слишком много ограничений и недостатков. Например, карта Reflect/Refract работает только на сглаженных поверхностях, а плоское зеркало — только на плоских. Ни одна из этих карт не в состоянии переотразить части объекта, например, носик и ручка чайника не будут отражаться в нем самом. Каждая карта просчитывается перед рендерингом, аналогично теням Shadow Map, и при большом количестве таких материалов время рендеринга может увеличиться во много раз.

82

Ãëàâà 1

Àëãîðèòì Raytrace Этот алгоритм благодаря более сложным вычислениям позволяет получать множественные преломления и отражения. При этом производится более глубокий анализ материала поверхности, и, как следствие, это увеличивает время рендеринга. Существует две основные разновидности этого алгоритма. При использовании первого, называемого прямой трассировкой, лучи испускаются из источников света, отражаются от поверхностей и попадают в камеру. Этот метод, хотя и является более корректным, сейчас практически не используется, т. к. требует больших вычислительных затрат. Вторая разновидность — это обратная трассировка. В этом случае лучи испускаются из камеры, как и в случае Scanline, или порождаются первичными лучами Scanline. На рис. 1.43 показана примерная схема этого алгоритма.

Рис. 1.43. Схема алгоритма Raytrace

В стандартном рендерере 3ds Max имеется возможность получения "настоящих" отражений и преломлений с помощью материала или карты Raytrace. При всех своих достоинствах, у этого механизма есть большой недостаток — он весьма медленный, т. к. оформлен как плагин, и много времени занимает передача данных от одной подпрограммы к другой. В mental ray и VRay трас-

Îñíîâû 3ds Max

83

сировщики лучей являются непосредственно частью рендерера, поэтому они значительно быстрее. На основе именно этого алгоритма возможно создание различных эффектов, например, так называемый Glossy (размытые отражения и преломления). Это достигается путем замены одного трассирующего луча несколькими, расходящимися под некоторым углом. Конечно, это увеличивает время рендеринга.

Ìàòåðèàëû è òåêñòóðû Ïîíÿòèå ìàòåðèàëà Основным действием, происходящим при рендеринге, является определение реакции поверхности объекта на освещение, прежде всего прямое. Это определяется свойствами материала, примененного к объекту, что, в свою очередь, является следствием работы алгоритмов, заложенных в тот или иной шейдер (программный модуль, реализующий ту или иную функцию при рендеринге), на базе которого создан материал. На рис. 1.44 показана схема для стандартного материала 3ds Max с применением шейдеров типа Phong или Blinn.

Рис. 1.44. Схема взаимодействия компонентов материала со светом

84

Ãëàâà 1

Первичный луч из камеры достигает поверхности объекта. Из этой точки строится луч в направлении источника света (или источников, если их несколько). В том случае, угол между направлением на камеру и нормалью (перпендикуляром) к поверхности (помечен цифрой 1) и угол между направлением на источник света и нормалью к поверхности (цифра 2) примерно равны, т. е. соблюдается правило "угол падения равен углу отражения", работает цвет Specular (цвет блика). Чем больше разница углов, тем более сильным становится влияние цвета Diffuse (рассеянный). Именно этот цвет определяет цвет объекта. И, наконец, в том месте, куда не попадает прямой свет, используется цвет Ambient (заполняющий). В той или иной степени подобная схема является основной для всех модулей рендеринга с некоторыми нюансами. Например, в шейдере DGS (Diffuse, Glossines, Specular) mental ray для определения размеров и интенсивности блика используются размытые отражения (ранее озвученный "эффект Glossy"), а цвет Ambient отсутствует вообще. А в материале VRayMtl и новом материале Arch+Design для mental ray вообще присутствует только цвет Diffuse. Остальные компоненты рассчитываются автоматически на основании зеркальности и прозрачности, исходя из принципа сохранения энергии света. Но и в этом случае есть "лазейки", которые позволяют изменить свойства поверхности, несколько поступившись физической корректностью этих материалов. Следует сказать, что в какой-то мере приведенная ранее схема является анахронизмом, особенно блик. Последний является ничем иным, как отражением источника света, и совершенно логично для его создания использование видимых источников света. Но пока высокая скорость рендеринга, достигаемая с применением "нечестных" приемов, перевешивает физическую корректность более прогрессивных алгоритмов, что хорошо видно из истории развития VRay, создатель которого изначально не предполагал использования "нечестных" методов. "Фейки" (от английского "fake" — подделка, фальшивка) в VRay появились под давлением общественности. И еще раз подчеркнем, что материал в большинстве случаев определяет именно свойства поверхности объекта. Определение материала как "камень", "зеркало", "стекло" не должно вводить вас в заблуждение, внутри объекта ничего этого нет. Исключение составляют волюметрические (объемные) шейдеры.

Òåêñòóðû è êàðòû Почти на каждый параметр материала можно наложить текстуру или "карту" (Map). Второе понятие является более общим, т. к. карта может быть использована не только для определения цвета материала, но и для управления

Îñíîâû 3ds Max

85

(модуляции) некоторым параметром, например, шероховатостью (фактурой, Bump) или прозрачностью. При присвоении карты на канал она может быть интерпретирована двумя способами: если это канал цвета (Diffuse, Ambient и т. д.), то используется вся информация о цвете. Если это канал уровневый (например, Bump), то используется информация о яркости пикселов карты — чем он светлее, тем больше значение параметра. Как правило, черный цвет соответствует нулевому значению, а белый максимально достижимому для данного параметра. Также возможно и одновременное использование яркости для определения уровня параметра и цвета для тонирования, например, канал Reflection (отражение) для материала типа Raytrace или VRayMtl. При этом яркостная составляющая дает уровень отражения, а цвет позволяет подкрашивать отражения. По способу наложения карты можно разделить на двумерные и трехмерные. Двумерные карты накладываются на поверхность объекта как проекция. Для определения того, как должна лежать карта на объекте, используются так называемые текстурные координаты, или UV(W)-координаты (рис. 1.45, а), иногда называемые "проекционными координатами". Если текстурные координаты наложены неточно, то появляются "потеки" текстуры. Как правило, двумерные карты — это изображения из внешних файлов.  ЗАМЕЧАНИЕ Не ищите расшифровку аббревиатуры "UVW" — это всего лишь буквы перед "XYZ".

Этого недостатка лишены трехмерные карты, наложенные в пространстве XYZ-объекта (рис. 1.45, б). В реальной жизни любой минерал, дерево и т. д. являются "трехмерными картами". Вы можете откалывать куски, распиливать под любым углом — все равно на поверхности скола или спила окажется камень или дерево без "потеков текстуры". Именно так и ведут себя трехмерные карты. Недостатком же является то, что результат — это имитация того или иного материала (гранит, мрамор и т. д.), зачастую неубедительная, а в случае конкретной надписи, фотографии или видеоролика речи об использовании процедурных карт вообще не идет. В качестве карты могут быть использованы либо изображения из внешних файлов, либо процедурные карты, т. е. изображения, получаемые в результате работы программы непосредственно в процессе рендеринга. Карты (текстуры) из внешних растровых файлов подготавливаются заранее в пакете двумерной графики, это могут быть фотографии, отсканированные изображения или результат рендеринга. 3ds Max поддерживает все основные форматы файлов. Эти карты являются только двумерными и для на-

86

Ãëàâà 1

ложения требуют назначения текстурных координат. В 3ds Max их можно наложить в пространстве XYZ, но это достаточно специфичный способ использования таких карт.

а

б Рис. 1.45. Принцип наложения двумерных (а) и трехмерных (б) карт

При использовании текстур из внешних растровых файлов важно помнить следующее:  Есть некоторые ограничения на использование этих файлов. Например, нельзя использовать файлы в цветовой модели CMYK, вы должны предварительно перевести их в RGB. Пока не поддерживаются файлы формата TIFF со слоями и т. д. Более подробную информацию на тему совместимости форматов с 3ds Max вы можете получить в руководстве пользователя.  Текстуры из внешних файлов не записываются в сцену. При переносе про-

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

Îñíîâû 3ds Max

87

Трехмерные процедурные карты, как указывалось ранее, не требуют определения текстурных координат, хотя могут быть наложены и как двумерные. При использовании процедурных карт следует учитывать, что трехмерные карты, наложенные в пространстве объекта, наследуют трансформации, произведенные над объектом. Особенно критичным при этом является масштабирование. В качестве примера на рис. 1.46 показана типичная трехмерная процедурная карта Noise (Шум), наложенная на чайники, подвергавшиеся трансформациям. Как видите, одна и та же карта лежит по-разному, а в случае деформаций поверхности не наследует их.

Рис. 1.46. Поведение трехмерной процедурной карты при трансформации объекта и деформации поверхности

Кроме этого, часто возникает проблема "дрожания" процедурной карты при анимации, связанная как раз с тем, что карта пересчитывается в каждом кадре заново, и существует возможность ошибки округления при вычислениях с плавающей точкой. Поэтому для анимации старайтесь использовать карты из растровых файлов. Кроме применения карт в составе материалов возможно использование их для модуляции различных параметров в совершенно различных местах. Например, можно изменить плотность и длину волос на поверхности объекта, параметры ткани, определить, из какого конкретного места будут испускаться частицы, задать распределение света от источника, определить структуру

88

Ãëàâà 1

тумана и т. д. При этом настраиваются карты, как и материалы, только в редакторе материалов, независимо от того, где и как они применяются.

Ïðÿìîå îñâåùåíèå è èñòî÷íèêè ñâåòà Освещение в традиционных алгоритмах трехмерной графики осуществляется посредством добавления в сцену специальных объектов, называемых "источники света". Источники света можно разделить на точечные (Point Lights) и протяженные (Area Lights). Точечные источники света "светят" из одной точки, размер которой равен нулю. Мы не случайно взяли слово "светят" в кавычки, т. к. ранее уже был озвучен тот факт, что рендеринг идет в обратном направлении, от камеры. Но для простоты примем схему "как в жизни". На рис. 1.47 показаны типичные точечные источники света — всенаправленные (Omni), направленные прожекторы (Spot) и параллельные (в 3ds Max эти источники света называются Directional, в других пакетах Parallel или Infinity). Несмотря на некоторое противоречие, последний из них также является точечным, расположенным бесконечно далеко (при использовании mental ray так оно и есть). В этом случае противоречия нет, т. к. от такого источника света лучи действительно можно считать параллельными.

Рис. 1.47. Точечные источники света

От точечных источников света нельзя получить реального освещения, т. к. любой источник света в реальном мире имеет некоторый линейный размер. Именно для этих целей используются протяженные источники света (Area Lights). Но, как видно из рис. 1.48, а, каждый такой источник представляет собой "матрицу точечных источников" (опять же в кавычках, на самом деле, просто в сторону такого источника света испускается не один луч, а множество, исходя из его размеров). Крайний случай показан на рис. 1.48, б, это так

Îñíîâû 3ds Max

89

называемый источник света типа "Dome" (купол), позволяющий имитировать освещение небом. Но все это — прямые источники света.

а

б

Рис. 1.48. Примеры протяженных источников света

В 3ds Max существуют два основных типа источников света — Standard (стандартные) и Photometric (фотометрические). Стандартные источники света только точечные, хотя и могут создавать реалистичные, "мягкие" тени (Area Shadows). Фотометрические источники света более разнообразны, они могут быть как точечными, так и протяженными. Кроме того, фотометрические источники света позволяют получать реалистичное распределение благодаря использованию специальных файлов формата IES (рис. 1.49). Все эти источники света с некоторыми ограничениями можно использовать и с mental ray, и с VRay.

Рис. 1.49. Примеры света от фотометрических источников с использованием распределения по IES

90

Ãëàâà 1

Кроме того, специально для mental ray в 3ds Max существует два протяженных источника света, mr Area Spot и mr Area Omni, а специальный источник света VRay Light может быть либо протяженным, либо "небесным куполом". И, наконец, в последних версиях mental ray и VRay появились специальные источники света для создания физически корректного освещения от солнца и неба.

Òåíè Для построения теней от объектов от прямых источников света используются два основных алгоритма — построение карты теней (Shadow Map) и трассировка лучей (Raytrace).

Òåíè òèïà Shadow Map (Êàðòà òåíåé) На рис. 1.50 показана схема создания и использования карты теней. До основного рендеринга из источника света проводится расчет и создается рас-

Рис. 1.50. Схема создания теней типа Shadow Map

Îñíîâû 3ds Max

91

тровая карта, в которую записывается в виде оттенков серого расстояние от источника света до объектов в сцене. При рендеринге лучи из камеры при попадании на поверхность и построении луча в сторону источника света сравнивают длину этого луча с длиной, записанной в карту теней. Если эти значения совпадают, то делается заключение, что эта точка освещена, если нет — то затенена. При окончательном рендеринге граница тени размывается в зависимости от настроек. Преимуществом данного алгоритма является высокая скорость расчета. Кроме того, если в сцене отсутствует активная анимация объектов (кроме поворота и пролета камерой), расчет проводится только один раз. В mental ray карту теней, кроме того, можно сохранить в файл и использовать в дальнейшем. Недостатков же значительно больше. В связи с тем, что размер изображения конечен, вы должны постоянно заботиться о том, чтобы он был достаточен для вашей сцены. В противном случае вы получите очень размытую тень. Следует заботиться и о том, чтобы размер карты не был слишком большим — она просто "не уместится" в памяти. Кроме того, при применении карт теней отсутствует возможность (по крайней мере, при использовании трех рендереров, рассматриваемых в книге) создания реалистичных теней, так называемых Area Shadows (теней от протяженных источников света), четких вблизи объекта и постепенно размываемых на расстоянии. Тени Shadow Map могут быть или размытые, или четкие, в зависимости от настроек. Кроме того, эти тени не дают полупрозрачных теней от полупрозрачных объектов. Исключение составляют тени Shadow Map в mental ray, в них предусмотрена такая возможность.

Òåíè òèïà Raytrace (Òðàññèðîâêà ëó÷åé) При построении теней типа Raytrace используется алгоритм, рассмотренный в разд. "Алгоритм Raytrace". Это единственный механизм трассировки лучей, встроенный в стандартный рендерер. В mental ray и VRay эти тени являются частью общего механизма трассировки лучей. Тени этого типа строятся в процессе рендеринга. Луч из камеры попадает на поверхность. Строится вектор в направлении источника света. Если на пути этого вектора находится объект, отбрасывающий тени, то делается заключение о том, что эта поверхность находится в тени другого объекта (рис. 1.51). Простые тени этого типа всегда четкие. Но именно на базе этих теней возможно получение реалистичных теней типа Area Shadow, т. е. "мягких" теней от протяженных источников света. Достигается это путем испускания нескольких лучей в направлении источника света с некоторым углом между ними. При этом источник света принимается не точечным (хотя таковым может и не являться). Кроме этого, тени типа Raytrace позволяют получать полупрозрачные тени.

92

Ãëàâà 1

Рис. 1.51. Схема создания теней типа Raytrace

Ãëîáàëüíîå îñâåùåíèå Без применения специальных методов расчета свет в трехмерной графике ведет себя не так, как в реальной жизни. Попадая на поверхность объекта, он не переотражается и не преломляется, а полностью "поглощается". Этот свет называется "прямым", его особенности были рассмотрены ранее. Освещение, созданное в результате работы алгоритмов, учитывающих переотражение света от объектов и прохождение света через полупрозрачные поверхности, называется непрямым, или "глобальным". Непрямое освещение вы можете наблюдать в реальной жизни постоянно. Это и засветка (рефлексы) белой скатерти цветом фруктов, лежащих на ней, и засветка потолка цветом пола и стен, и освещение светом, рассеянным в атмосфере и отраженным от объектов (глобальное освещение), и яркие блики от воды на стенах и дне бассейна ("каустика" (caustics)). К сожалению, вычислительных мощностей современных компьютеров недостаточно для того, чтобы реализовать все эти эффекты физически корректно, абсолютно точно и при помощи одного на всех алгоритма, поэтому разработчики используют различные упрощенные математические модели процес-

Îñíîâû 3ds Max

93

сов для имитации этих явлений. Основной задачей при этом является достижение максимального приближения к реальности за приемлемое время.

Ìåòîäû ïðÿìîé òðàññèðîâêè В случае применения этих методов расчет распределения освещенности ведется от источников света. В настоящий момент наиболее распространены методы фотонных карт (Photon Map) и переноса световой энергии или радиосити (Radiosity). Ìåòîä ôîòîííûõ êàðò (Photon Map) В первом приближении метод фотонных карт работает следующим образом (рис. 1.52). Из источника света испускаются лучи, которые называются "фотонами". С реальными фотонами их отождествлять не стоит, название просто

Рис. 1.52. Метод фотонных карт

94

Ãëàâà 1

подчеркивает тот факт, что лучи распространяются прямолинейно и несут энергию. Способ испускания зависит от источника света, например, для всенаправленного источника света фотоны испускаются во все стороны равномерно. При пересечении с поверхностью фотоны отражаются случайным образом. Если поверхность обладает некоторой прозрачностью, то часть фотонов, проходя через поверхность, преломляется в зависимости от коэффициента преломления (Index of Refraction, IOR). Фотоны частично "поглощаются" в процессе переотражений, или "отскоков" (bounces), либо заканчивают свой путь в принудительном порядке, достигнув предельного значения глубины трассировки. После того, как фотоны будут испущены и энергия распределена по поверхности объектов, начинается собственно рендеринг, при котором в том числе проводится сбор фотонов. Выглядит этот процесс примерно так: из камеры испускаются лучи, которые сканируют сцену. При пересечении такого луча с поверхностью строится площадка (Sample, образец), с которой происходит сбор. При достижении некоего предела информация об освещенности и цвете возвращается в камеру и вносит свой вклад в окончательное изображение. Метод фотонных карт встроен в mental ray, и в нем он используется как основной метод расчета непрямого освещения для закрытых сцен (например, интерьеров). В VRay также есть возможность использовать фотоны, но в последнее время этот метод потерял популярность в связи с появлением в VRay других методов. Ðàäèîñèòè Метод радиосити (Radiosity), или переноса световой энергии, встроенный в 3ds Max, во многом похож на метод фотонных карт. Разница заключается в том, что для распределения энергии поверхности объектов в сцене разбиваются на треугольники, "тесселируются" (tesselate), и значение освещенности "вписывается" непосредственно в геометрию, смешиваясь со значением Diffuse. Этот метод, как правило, дает более точный результат с точки зрения распределения энергии, нежели метод фотонных карт, но для получения приемлемого результата с точки зрения визуального восприятия требуется большие вычислительные ресурсы и временные затраты.

Ìåòîäû ñáîðà Эти методы являются обратным по отношению к методу фотонных карт и представляют собой варианты метода Monte-Carlo (как в mental ray, так и в VRay) (рис. 1.53). Из камеры испускаются лучи, и на поверхности объектов определяются точки для сбора информации об освещенности. При этом ис-

Îñíîâû 3ds Max

95

пользуются только поверхности, попадаемые в поле зрения камеры, в отличие от фотонов. В районе каждой такой точки строится полусфера (для непрозрачных поверхностей) или сфера (для прозрачных) единичного радиуса. Из каждой точки вновь испускаются лучи, количество которых задается специальным параметром. При пересечении с поверхностью в зависимости от свойств материала (комбинация диффузной, зеркальной и прозрачной составляющих) происходит диффузное, или зеркальное отражение, или преломление. Когда луч заканчивает свой путь, информация об освещенности точки, в которую он попал, возвращается в исходную точку с учетом расстояния — чем длиннее путь, пройденный лучом, тем меньше его вклад в окончательный результат. Если луч "ушел в космос", то возвращается значение либо окружения (Environment), либо источника света для имитации неба (SkyLight), в зависимости от реализации.

Рис. 1.53. Метод сбора

По сравнению с прямыми методами, эти методы быстрее и экономичнее, т. к. освещенность определяется, как правило, в рамках кадра. Но с точки зрения точности они проигрывают прямым методам. В стандартном рендерере метод сбора реализован при помощи модуля Light Tracer и как дополнение к радиосити (Regathering), в mental ray — Final Gathering (окончательный сбор). В VRay же имеет место три реализации метода, Irradiance Map (карта освещенности), Brutе Forfce ("грубая сила"), ранее известный как Quasi Monte Carlo, а еще раньше Direct Computation (прямой расчет) и Light Cache (буквально "хранилище света"). Еще одна особенность VRay — разделение первичного и вторичных отскоков (bounces) лучей. В отличие от mental ray, в котором все отскоки считаются

96

Ãëàâà 1

одним и тем же алгоритмом, в VRay можно назначить на расчет первичного отскока один процесс, а на расчет вторичных — другой.

Êàóñòèêà Термином каустика (caustics) принято называть частный случай интерференции световых волн, а именно усиление яркости в местах наложения волн. Пример такого эффекта — яркое пятно от собирающей линзы и "солнечный зайчик" внутри металлического кольца (рис. 1.54). Хотя этот эффект можно получить при помощи любого приведенного выше алгоритма, в основном используется метод трассировки фотонов как наиболее быстрый. И в mental ray, и в Vray, и в большинстве других рендереров расчет этого эффекта отделен от глобального освещения, т. к. для его получения используются упрощенные алгоритмы. Эффект каустики может быть получен от зеркальной (рефлективная каустика) или полупрозрачной (рефрактивная каустика) поверхности. В обоих случаях используется прямолинейная трассировка с учетом коэффициента преломления для рефрактивной каустики.

Рис. 1.54. Примеры каустики

Îñíîâû 3ds Max

97

Àíòèàëèàñèíã Отдельно нужно сказать о процессе, получившем название "антиалиасинг" (Antialiasing) или Image Sampling, или Supersampling, что, с небольшими нюансами, является синонимом первому. Смысл данного процесса проиллюстрирован на рис. 1.55. Так как окончательная картинка строится из пикселов, имеющих фиксированный размер, рендеринг без антиалиасинга приводит к ступенчатой картинке. В принципе, при очень больших размерах выходной картинки этим можно пренебречь, но даже при размере изображения A4 и 300 ppi ступеньки хорошо видны. Можно воспользоваться старым испытанным способом — провести рендеринг в бо´льший размер (как правило, в 2 раза), и затем уменьшить в пакете двумерной графики с использованием фильтрации. Но при очень больших размерах и рендеринге последовательности кадров для видео это не выход, т. к. может просто не хватить памяти или дискового пространства. Да и сами алгоритмы антиалиасинга при рендеринге могут быть более сложными, чем просто усреднение цвета или яркости. Например, может быть использован фильтр, дающий какой-либо эффект — сглаженности, или, наоборот, контрастности, причем с разделением по цветам, либо с разделением геометрии и текстур.

Рис. 1.55. Принцип антиалиасинга

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

98

Ãëàâà 1

а

б

в

г

Рис. 1.56. Различные алгоритмы антиалиасинга

Рендеринг без антиалиасинга (рис. 1.56, а) — здесь все просто, из камеры испускается один луч по центру пиксела. Какой "цвет" на пути оказался — такой и запишется в окончательный пиксел. Фиксированный антиалиасинг (рис. 1.56, б) — в каждый пиксел испускается не один, а несколько (в данном случае пять) лучей, возвращаемое значение которых усредняется. Этот метод позволяет получать самый точный результат, но при этом лучей должно быть очень много (около 20-ти), что сказывается на времени рендеринга не в лучшую сторону. Этот метод, как правило, самый медленный за исключением особых случаев, например, при большом количестве мелких деталей, мелкого бампа (имитации шероховатости, bump) и т. д. этот метод может быть быстрее адаптивных, т. к. не затрачивается время на вычисление условий. Адаптивный антиалиасинг (рис. 1.56, в) — в пиксел изначально испускается несколько лучей, в данном случае 4 (помечены цифрой 1). В том случае, если разность между результатами меньше установленного порога, то значение усредняется и происходит переход к следующему пикселу. Если между какими-либо лучами разница превышает порог, то запускается процесс дополнительного уточнения (лучи 2 и 3), и так до тех пор, пока не будет выполнено условие, заданное порогом, либо не будет достигнута максимальная глубина вложенности. Адаптивный антиалиасинг хорошо работает на локальных сценах, т. к. при равномерном фоне и небольших по контрастности переходах большая часть картинки просчитывается очень быстро. Кроме того, адаптивный антиалиасинг позволяет для быстрого пробного расчета использовать загрубленные

Îñíîâû 3ds Max

99

настройки, или Undеrsampling. При этом процессе сравнение с пороговым значением выполняется не в каждом пикселе, а через несколько пикселов. А вот на сложных сценах с большим количеством мелких деталей, например, когда создается текстура с мелким (соизмеримым с пикселом окончательного изображения) шумом, адаптивный антиалиасинг может проигрывать фиксированному по скорости, т. к. приходится в каждом пикселе уходить на самый глубокий уровень вложенности, при этом постоянно делая проверку условий. Стохастический антиалиасинг (рис. 1.56, г) — в пределах пиксела (или даже нескольких прилежащих пикселов) испускаются лучи в случайном направлении. Процесс заканчивается тогда, когда разница между результатом усреднения с учетом каждого нового луча и предыдущего расчета меньше порогового значения, или когда достигнуто максимальное значение лучей. Этот метод дает наилучшее соотношение качество/время на сценах с большим количеством мелких деталей. Два первых метода реализованы и в mental ray, и в VRay. Третий метод специфичен для VRay.

Äðóãèå ìåòîäû ðåíäåðèíãà В заключение нельзя не сказать о современных тенденциях, которые уже начали и, по нашему скромному мнению, в ближайшие два-три года продолжат вытеснять традиционные методы рендеринга. Благодаря повышению производительности компьютеров, как центрального процессора, так и графической подсистемы, стало возможным создание систем рендеринга, основанных на принципиально других методах как с точки зрения программного, так и аппаратного обеспечения.

Ôèçè÷åñêè êîððåêòíûå ìåòîäû ðåíäåðèíãà За последние несколько лет производительность даже настольных компьютеров настолько увеличилась, что стало возможным отказаться от вышеперечисленного многообразия используемых алгоритмов в пользу одного, отвечающего за все — освещение, тени, материалы и т. д. Основаны они на физических законах распределения света. В них отсутствует разделение на прямой и непрямой свет, диффузную и зеркальную составляющую и т. д. — по сути, вы оперируете с физически корректными величинами и параметрами. Интересно то, что используемые алгоритмы переноса света были известны достаточно давно, и, более того, реализованы. Например, в mental ray существует так называемый "Path Tracing Shader", а в VRay — метод Progressive Path Tracing для расчета Light Cache, использующие как раз эти алгоритмы. При всех преимуществах таких пакетов, как FryRender (http:// fryrender.com/), Indigo Renderer (http://www.indigorenderer.com/), Kerkythea

100

Ãëàâà 1

Rendering System (http://www.softlab.ntua.gr/~jpanta/Graphics/Kerkythea/), и, конечно же, Maxwell Render (http://maxwellrender.com/), для получения приемлемой по качеству картинки требуется очень большое время, а об анимации вообще говорить не приходится. Кроме этого, данные системы направлены именно на достижение реалистичного результата, и ни о каких "художественных вымыслах" речи быть не может.

Àïïàðàòíûé ðåíäåðèíã То, что вы видите в окнах проекции 3ds Max, также является ничем иным, как результатом рендеринга, и благодаря развитию аппаратного обеспечения видеосистемы в большинстве случаев можно говорить об аппаратном рендеринге в реальном времени. Особенно это актуально в видеоиграх и интерактивных презентациях. Качество картинки в современных играх, таких как Crysis (CrySoft) или Colin McRay's DIRT (Codemasters), поражают своей реалистичностью. Но пока все еще нет возможности в реальном времени получить картинку с качеством, не уступающей результату программного рендеринга. Зачастую многие элементы (карты теней, отражения и т. д.) создаются заранее и "подмешиваются" к основным текстурам. Это нормальная практика для игр, и не только. Например, в пакете плагинов rtre для 3ds Max компании CubicSpace (http://www.cubicspace.com/) таким образом "запекаются" (bake) процедурные текстуры, тени и непрямое освещение. Также существуют аппаратно-программные комплексы (например, решения компании ARTVPS, http://www.artvps.com/), позволяющие ускорить расчет некоторых элементов, например, отражений и теней вплоть до реального времени. Но эти решения достаточно до´роги и не решают всех проблем.

Êîíòðîëüíûå âîïðîñû 1. Перечислите основные этапы работы над проектом в (см. разд. "Основные этапы работы над проектом в 3ds Max").

3ds Max

2. Перечислите принципы и особенности построения 3ds Max. Укажите их достоинства и недостатки (см. разд. "Основные принципы построения 3ds Max"). 3. Перечислите основные элементы 3ds Max и определите их назначение (см. разд. "Интерфейс 3ds Max"). 4. Определите понятия "Cцена" и "Объект". В какой зависимости они находятся? Назовите основные типы объектов (см. разд. "Сцена" и "Объекты"). 5. Что такое Pivot Point? Определяет ли ориентация Pivot Point ориентацию объекта? (См. разд. "Точка привязки (Pivot Point)".)

Îñíîâû 3ds Max

101

6. Что такое геометрические объекты? В чем отличие геометрических примитивов от базовых типов? Перечислите базовые типы геометрических объектов, определите основные особенности каждого из них. Что такое "подобъекты"? (См. разд. "Геометрические объекты".) 7. Дайте определение понятиям "модификатор" и "стек модификаторов". Перечислите основные операции в стеке модификаторов (см. разд. "Модификаторы"). 8. Перечислите способы выделения объектов и подобъектов. Что такое трансформации? (См. разд. "Выделение объектов".) 9. Перечислите способы размножения объектов. В чем отличие между копированием и инстансированием (instance) объектов? Какие преимущества дает инстансирование? (См. разд. "Размножение объектов".) 10. Перечислите системы координат, дайте краткую характеристику каждой. Какие из систем координат являются основными? (См. разд. "Системы координат".) 11. Каковы основные режимы отображения объектов в окнах проекции? Перечислите основные способы ускорения отображения объектов в окнах проекции (см. разд. "Работа с окнами проекции", "Отображение объектов в окнах проекции"). 12. Каковы основные виды в окнах проекции? Фиксированы ли в 3ds Max какие-нибудь виды, и если да, то какие? (См. разд. "Выбор вида в окне проекции".) 13. Как осуществляется навигация в окнах проекции? Приведите наиболее удобные способы (см. разд. "Перемещение вида в окнах проекции Pan", "Вращение вида в окнах проекции Arc Rotate", "Масштабирование вида в окнах проекции Zoom", "Навигация в окнах вида из камеры и источника света", "Дополнительные команды навигации"). 14. Назовите основные команды для работы с файлами. Каковы основные форматы экспорта и импорта геометрии? Что такое Xref Objects и Xref Scenes? Каковы отличия их использования? (См. разд. "Работа с файлами".) 15. Что такое рендеринг? Какие алгоритмы рендеринга используются в mental ray и VRay? Каковы их отличия, преимущества и недостатки? (См. разд. "Материалы, освещение и рендеринг", "Алгоритмы рендеринга".) 16. Дайте неформальное определение материала. Каковы три основных компонента материала с затененением по методу Phong/Blinn и как они взаимодействуют с освещением? (См. разд. "Материалы и текстуры".) 17. Что такое "карта" (Map)? Как карта влияет на параметры материала? (См. разд. "Текстуры и карты".)

102

Ãëàâà 1

18. В чем отличие двумерных карт от трехмерных, а также Процедурных карт от карт из растровых файлов? Каковы преимущества и недостатки карт каждого типа? (См. разд. "Текстуры и карты".) 19. Что такое "прямое освещение"? Назовите типы источников света в 3ds Max (см. разд. "Прямое освещение и источники света"). 20. Как формируются тени типа Shadow Map и Raytrace? В чем преимущества и недостатки тех и других? (См. разд. "Тени".) 21. Что такое "глобальное освещение"? Каковы методы расчета глобального освещения, в чем их различия, достоинства и недостатки (см. разд. "Глобальное освещение"). 22. Что такое антиалиасинг? Каковы основные методы антиалиасинга? (См. разд. "Антиалиасинг".)

Глава 2 Моделирование

В

этой и последующих главах на примере реального проекта рассмотрены методы моделирования и визуализации объектов, характерных для подобных сцен, а именно: ландшафта, собственно коттеджа, растений, бассейна и т. д. Все материалы по проекту любезно предоставлены нам автором проекта — Ириной Дурихиной, которой мы выражаем большую благодарность за помощь. Нужно отметить, что некоторые объекты (например, фонтан, беседка) не являются элементом авторского дизайн-проекта и представляют собой некий собирательный образ. Сделано это для того, чтобы показать, как создаются подобные объекты. Поэтому вполне возможно, что они несколько выпадают из общего стиля. Большая просьба к архитекторам и ландшафтным дизайнерам не судить нас за это строго, поскольку мы уверены, что вы сделаете все так, как надо. Еще раз подчеркнем, что наша задача — научить пользоваться инструментом под названием "3ds Max". Все моделирование проведено в 3ds Max, и по возможности использованы материалы, созданные средствами компьютерной графики. Например, модели деревьев и кустарников созданы с применением пакета OnyxGARDEN, а карты для окружения — в пакете Vue 6 Infinity. Информацию по этим и другим полезным пакетам вы можете найти в приложениях. При моделировании принималось во внимание требование "открытого проектирования": объекты могут быть легко модернизированы по требованию заказчика, кроме того, возможно быстрое получение ряда модифицированных вариантов. Вполне возможно, это обстоятельство в некоторых случаях заставило нас пойти не по самому оптимальному и эффектному пути с точки зрения "хардкорных трехмерщиков". Визуализация (или рендеринг) окончательных изображений и небольших роликов — облета камерой коттеджа и пролета камерой по территории — проведена с использованием встроенного в 3ds Max рендерера mental ray 3.5 и внешнего рендерера VRay 1.5. И тот и другой модули в области визуализации экстерьерных сцен на сегодняшний момент позволяют достигать фотореалистичного результата за приемлемое время.

106

Ãëàâà 2

Отдельное внимание уделено постобработке в Adobe Photoshop СS3 для статичных изображений и Autodesk Combustion 4 для анимационных роликов. Дело в том, что возможности постобработки в этих пакетах и возможности 3ds Max для облегчения этого процесса таковы, что позволяют вам с легкостью проводить доводку ваших проектов до товарного вида и создавать такие эффекты, как свечение, объемный свет, смазывание изображения (motion blur), глубина резкости (depth of fields) уже после окончательного рендеринга.  ОЧЕНЬ

ВАЖНО!

Обязательно загрузите и установите либо Service Pack 2 для 3ds Max 9, либо, если вы являетесь подписчиком Autodesk, Productivity Booster Extension 1 rev. 2! Особенно это важно, если вы работаете с системой Windows Vista.

Прежде чем начать моделирование, ответим на один часто задаваемый вопрос — зачем моделировать все заново в 3ds Max, если уже есть модели, сделанные в соответствующих пакетах, например, Autodesk Architectural Desktop? Не проще ли перенести модели в 3ds Max и использовать их? Что же, в этом есть доля истины, и для некоторых объектов и проектов так и следует поступать, тем более что разработчики 3ds Max и Autodesk VIZ постоянно улучшают инструменты для связи между пакетами. Но такой подход имеет и обратную сторону — как правило, геометрия, полученная после экспорта из форматов DXF и DWG, требует определенных усилий по ее доработке. То, что является достаточным для чертежа, бывает недостаточным для убедительной визуализации — ведь 3ds Max в большинстве нужен как раз для достижения фотореализма. И наоборот, импортированные объекты часто страдают избыточностью деталей. Например, дверная ручка, выполненная со всеми деталями, может занимать на конечном изображении площадь пять на три пиксела. Если таких ручек в проекте много, то "набегает" весьма внушительный груз "лишних" полигонов, что в конечном результате может привести к значительному замедлению процесса рендеринга вплоть до невозможности его провести — вам просто не хватит памяти. В этом случае можно ограничиться значительно более простой моделью. Кроме того, очень часто имеются необъединенные вершины и наложения поверхностей, что приводит к некорректному результату при визуализации, особенно с применением алгоритмов глобального освещения. Еще большей доработки требуют материалы, причем из-за "нехорошей" геометрии бывает очень сложно правильно наложить текстуры. То же самое можно сказать и о чертежах, взятых, например, из AutoCAD. В ряде изданий по трехмерному моделированию пропагандируется способ вытягивания моделей из чертежа, созданного в AutoCAD и загруженного в 3ds Max. Что же, это весьма ускоряет работу, но только в том случае, если чертежи выполнены аккуратно и с расчетом, что они будут использованы для

Ìîäåëèðîâàíèå

107

построения трехмерных моделей. Если это не так (а зачастую это не так), то масса неприятных сюрпризов вам наверняка гарантирована. Специалисты студии Realtime, специализирующейся как раз на визуализации интерьеров и архитектурных проектов, в один голос говорят: "Мы или обводим в 3ds Max чертежи, используя привязки, или используем некоторые элементы в качестве заготовок, но с ними очень много мороки!". На одном из курсов в школе Realtime один из авторов (Борис Кулагин) попытался совместно со студентами использовать чертежи проекта интерьера, представленные студентами, "напрямую". Более часа бесценного времени было потрачено на то, чтобы найти и вычистить все двойные линии, объединить нужные вершины, достроить недостающие линии... Автор чертежей на упреки в ее адрес только разводила руками и говорила в свое оправдание: "У меня одновременно идет с десяток проектов, я не могу уследить за всем...". Обводка же с использованием привязок заняла всего лишь около пяти минут. В данном конкретном случае проект выполнялся автором проекта в CorelDRAW, и поэтому ни о каких моделях в формате DWG или DXF вообще речи не идет. А вот с чертежами придется столкнуться, правда, в другом формате, но принципы не очень отличаются. Что еще нужно учитывать? Всегда следует помнить, что 3ds Max — не пакет CAD, хотя в нем многое сделано для реализации точного моделирования. Результат работы в 3ds Max — это красивая картинка или видеоролик, а отнюдь не проектная документация. Но не стоит моделировать "абы как", "на глазок", потому что ничего хорошего из этого не получится. Если у вас на руках есть утвержденный и подписанный проект — не пытайтесь вносить свои "усовершенствования", это недопустимо, результат должен соответствовать заданию. Да, можно немного отодвинуть стенку, дерево, фонарь, если они вам мешают, можно вообще их убрать, но все это только в том случае, если этого никто не заметит.

Ïðåäâàðèòåëüíûå óñòàíîâêè Для эффективной работы моделирование различных объектов будет проводиться в отдельных файлах. В этом разделе мы предлагаем вам рекомендуемые настройки для всех файлов. Их нужно как минимум проверять перед началом моделирования всех объектов в проекте, это избавит вас от излишних хлопот при окончательной сборке проекта в единое целое.

Íàñòðîéêà ðàáî÷åãî ïðîñòðàíñòâà При работе с локальной сценой, содержащей не более десяти-пятнадцати объектов, можно особенно не задумываться о том, как организовать рабочее пространство. Достаточно просто вразумительно называть объекты и мате-

108

Ãëàâà 2

риалы. Но в нашем случае проект достаточно сложный, и тут уж без строгой систематизации не обойтись. Кроме того, нужно сделать несколько дополнительных установок, обусловленных опять же сложностью проекта и использованием mental ray в качестве основного рендерера. Все эти настройки разбросаны по различным меню, поэтому удобно воспользоваться шаблоном DesignVIZ.mentalray в переключателе установок по умолчанию (Custom UI and Defaults Switcher) (рис. 2.1). Главное меню  Customize  Custom UI and Defaults Switcher Выберите DesignVIZ.mentalray в одном списке и ame-dark или ame-light в другом Нажмите кнопку Set внизу окна Перезапустите 3ds Max

Рис. 2.1. Диалоговое окно выбора настроек и интерфейса по умолчанию

В этом окне вы можете получить исчерпывающую информацию о том, какие установки будут использованы. Мы прокомментируем только некоторые из них. Как указывалось ранее, проект достаточно сложный, и поэтому имеет смысл использовать слои (Layers). Этот метод организации сцены очень распространен в других пакетах. Появившись в 3ds Max с версии 5 и улучшенный в версии 6, очень быстро стал популярен, особенно среди пользователей пакетов семейства AutoCAD — ведь внешне менеджер слоев (Layer Manager)

Ìîäåëèðîâàíèå

109

очень похож на аналогичный инструмент в этих пакетах (рис. 2.2, а). Открывается это окно из главной панели инструментов соответствующей кнопкой или в главном меню. Главное меню  Tools  Layer Manager

Кроме менеджера слоев можно использовать плавающую панель Layers, она менее удобна и не позволяет работать с объектами внутри слоя, зато занимает значительно меньше места (рис. 2.2, б). Как ее ввести в основной интерфейс, рассказано немного позже.

а

б Рис. 2.2. Менеджер слоев (а) и панель Layers (б)

Одна из установок (Layers: all objects are created "By Layer" — все объекты создаются с установками по слоям) как раз и позволяет воспользоваться преимуществами слоев — скрытие (Hide), фиксирование (Freeze), исключение из рендеринга и т. д. можно осуществлять для всех объектов в слое сразу. Есть несколько тонких моментов, которые нужно помнить при работе со слоями.  При создании слоя в него включаются выбранные в этот момент объекты,

поэтому если вы хотите создать пустой слой, то снимите выделение со всех объектов в сцене.  Слой может быть активным, даже если он скрыт или зафиксирован! При

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

110

Ãëàâà 2

 А вот невозможность удалить непустой слой или активный слой, даже ес-

ли он пустой, кажется немного нелогичным и неудобным. Но в этом 3ds Max копирует AutoCAD.  Загрузка объектов из других файлов командой Merge производится с со-

хранением информации о слое, т. е. если объект был создан в слое "0", а именно в этом слое и создаются объекты в том случае, если слои не используются, он и попадет в этот слой, а не в текущий активный слой. Импортирование объектов (Import) происходит в активный слой, за исключением файлов в формате DWG, которые импортируются со своими слоями.  Объекты в слое могут быть скрыты (hide) или зафиксированы (freeze) индивидуально. Команда Unhide All (сделать видимыми все объекты) или Unhide by Name (сделать видимыми по имени) для объектов в скрытом слое приводит к активации диалогового окна (рис. 2.3), в котором нужно сделать выбор — сделать видимым весь слой (все слои) или только данный объект внутри скрытого слоя. Во втором случае на объект все равно остается скрытым, т. к. скрыт слой полностью.

Рис. 2.3. Диалоговое окно, возникающее при использовании команды Unhide All в случае наличия скрытых слоев

 Очень интересная установка для источников света: если слой, в котором

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

сящем от глобального. Например, слой может всегда отображаться в затененном режиме. Этим свойством вы скоро воспользуетесь.  И, наконец, последняя особенность при использовании слоев — установка

By Layer (по слоям) в параметрах (Display Properties) объекта (рис. 2.4). Как видите, все флажки недоступны, т. к. они находятся в режиме By

Ìîäåëèðîâàíèå

111

Layer. Чтобы изменить установки объекта индивидуально, нужно сначала "отжать" кнопку By Layer, и только потом можно что-то изменить в настройках для этого объекта. Квадрупольное меню  Properties

Рис. 2.4. В режиме By Layer свойства объектов недоступны для изменения

Название шаблона содержит "mentalray". Это приводит к тому, что в качестве рендерера по умолчанию используется mental ray. Кроме этого:  В параметрах материалов, источников света и т. д. становятся доступными

расширения (Extension) mental ray.  В качестве источников света в системе Daylight (дневной свет) по умолча-

нию устанавливаются mrSun и mrSky (Солнце и Небо mental ray) — новые и очень эффектные и эффективные инструменты для реалистичного освещения, особенно в нашем случае.  В качестве материала по умолчанию в редакторе материалов устанавлива-

ется материал типа Arch + Design (mi). Это новый материал, призванный решить почти все проблемы при создании реалистичных материалов.  Кроме этого, в опциях редактора материалов устанавливается флажок

Propagate Material to Instances, который позволяет присваивать материал сразу всем объектам, связанным отношением Instance (образец) друг с другом.  И, наконец, очень важная для вечернего освещения и не очень привычная

установка. Так как в случае искусственного освещения предполагается наличие большого количества источников света, а 3ds Max в состоянии показать свет в окнах проекции только от первых 8-ми, то может возникнуть ситуация, когда работать в затененном режиме (shaded mode) становится просто невозможно. Поэтому на всякий случай в окнах проекции устанав-

112

Ãëàâà 2

ливается освещение по умолчанию. Вы всегда можете отменить или опять активизировать эту установку. Контекстное меню окна проекции  Configure  Rendering Method  флажок Default Lighting или сочетание клавиш +

Остальные опции будут обсуждаться тогда, когда придет время для их использования. Несколько слов стоит сказать по поводу выбора схемы интерфейса (UI scheme). Стандартный интерфейс, конечно, привычен искушенным пользователям 3ds Max, но мы вам советуем, если у вас еще нет пристрастий, использовать темную схему, ame-dark. Эта схема, кроме того, что выглядит нарядно и "профессионально", значительно уменьшает утомляемость глаз, особенно при работе с жидкокристаллическими мониторами. Вы можете переключиться на любую из предлагаемых схем в любой момент. Главное меню  Customize  Load Custom UI Scheme Файлы настроек интерфейса находятся в папке UI в корневом каталоге, в который установлен 3ds Max, например, C:\Program Files\Autodesk\3dsmax9\UI\

 ЗАМЕЧАНИЕ В книге использована схема ame-light, которая является инверсной к "темной" схеме. Расположение иконок и их вид идентичны для этих схем.

И последнее необязательное, но, на наш взгляд, желательное действие, особенно если вы работаете при небольших разрешениях экрана (вплоть до 1280×1024 пикселов). Большие кнопки очень симпатичные, но занимают много места на экране. Вы можете использовать кнопки меньшего размера. Главное меню  Customize  Preferences  вкладка General  снимите флажок Use Large Toolbars Buttons и перезапустите 3ds Max

Материал в книге ориентирован именно на такие настройки интерфейса. Если вы не очень хорошо ориентируетесь в 3ds Max, мы настоятельно рекомендуем вам переключиться на предлагаемый интерфейс.

Ñîçäàíèå è óñòàíîâêà ïàïêè ïðîåêòà В 3ds Max 9 появилась новая очень удобная возможность, помогающая организовать ваш проект на диске. Вы можете создать папку вашего проекта. При этом будут созданы все необходимые подпапки, и 3ds Max при работе с проектом будет всегда обращаться к ним. Главное меню  File  Set Project Folder

Ìîäåëèðîâàíèå

113

Кроме этого, все пути (например, в редакторе материалов пути к файлам текстур) будут прописаны относительные, а не абсолютные, что сделает безболезненным перенос проекта с диска на диск.  Скопируйте с диска, прилагающегося к книге, папку Project1 на свой жесткий диск и снимите со всех файлов атрибут "только для чтения" — вам эти файлы понадобятся.  Установите папку Project1 текущей командой Set Project Folder. Если при этом вы получите предупреждение — не обращайте на него внимание, т. к. это касается системных папок.

Óñòàíîâêà åäèíèö èçìåðåíèÿ è øàãà ñåòêè Очень важно, чтобы те модели, которые вы создадите, имели реальные размеры. Для этого требования есть несколько причин. Первая из них заключается в том, что просто так удобнее и нагляднее, к тому же вы избавитесь от необходимости масштабирования объектов при их переносе из одного проекта в другой. Вторая причина более специфична. Дело в том, что многие процессы, такие как глобальное освещение, динамика твердых и упругих тел и тканей, активно используют физически корректные алгоритмы, и при неправильном масштабе могут повести себя непредсказуемо. Хотя очень многие вещи в 3ds Max делаются "на глазок" и подправляются затем в процессе работы в достаточно больших пределах, все же не стоит начинать с заведомо некорректных настроек. Чем же стоит руководствоваться при выборе единиц измерения? Следует помнить о том, что точность в силу использования арифметики с плавающей точкой в 3ds Max ограничена, как, впрочем, и в любой другой программе. Не стоит выбирать миллиметры при создании, например, модели парка или торгового центра, вы столкнетесь с рядом весьма неприятных проблем. И наоборот, в случае "ювелирной работы" подойдут десятые доли миллиметра. Единицы измерения в 3ds Max разделены на системные (System Units) и отображаемые (Display Units). Системные единицы измерения — это единицы измерения, с которыми работает 3ds Max, отображаемые — это единицы измерения, с которыми работаете вы. При этом они могут не совпадать, поскольку 3ds Max автоматически производит пересчет. По умолчанию в качестве системных единиц измерения установлены дюймы, и для большинства проектов это подходит, можно ничего не менять. И все же мы предлагаем выбрать сантиметры как наиболее подходящие для данного проекта (рис. 2.5, а). Главное меню  Customize  Units Setup  кнопка System Unit Setup Выберите Centimeters в выпадающем списке

114

Ãëàâà 2

В диалоговом окне установки системных единиц измерения System Unit Setup есть два достаточно важных момента, на которые мы хотели бы обратить ваше внимание. Первое — флажок Respect System Units in Files (учитывать системные единицы при загрузке объектов из других файлов) желательно установить, если он сброшен. Это позволит вам привести в соответствие системные единицы из загружаемых файлов с текущим проектом и избежать масштабирования вручную. При этом при открытии командой File  Open тех файлов, в которых системные единицы измерения не совпадают с текущими, появляется диалоговое окно (на рисунке не показано), в котором сообщается о несоответствии системных единиц. В этом случае вам предлагается либо смасштабировать объекты под текущие единицы измерения, либо привести систему в соответствие с загружаемым файлом (рис. 2.5, б). Как правило, используется второй вариант, и именно его вы и должны выбрать в том случае, если получаете такое предупреждение при открытии файлов нашего проекта. А вот при добавлении объектов в сцену при помощи команды File  Merge, несмотря на заявление в руководстве пользователя, такое окно не выводится, и происходит автоматическое масштабирование. Иногда это приводит к повреждению геометрии моделей. Чтоб все же загрузить такие модели, нужно снять флажок Respect System Units in Files и смасштабировать их вручную. Второе — это калькулятор, позволяющий определить, насколько правильно вы выбрали системные единицы измерения. Дело в том, что операции с плавающей точкой обладают пределом точности, связанным с дискретизацией, причем, чем дальше вы находитесь от "абсолютного нуля", начала координат вашей сцены, тем большее значение принимает так называемая "ошибка округления" (рис. 2.6), т. к. все большая часть числа отдается под степень и меньшая — под мантиссу. Другими словами, на некотором расстоянии вы не можете поставить объект в координату "13534,2345433 см", а только в значение большее или меньшее приведенному. Это значение определяется как раз параметром Resulting Accuracy (достижимая точность), узнать значение которого можно, введя предполагаемый размер сцены Distance from origin (расстояние от центра координат). Для этого в поле Distance from origin (см. рис. 2.5, а) введите значение, примерно равное или большее, нежели предполагаемый размер сцены, например, 20000 (200 м) и нажмите . В нашем случае при значении Distance from origin равного 200 м достигается точность примерно 0,002 см, что равно двум сотым миллиметра — более чем достаточно!  СОВЕТ В 3ds Max есть автоматическое преобразование единиц измерения. Например, можно ввести просто 2000, 3ds Max интерпретирует это число как введенное в миллиметрах, а можно ввести "200m" — 200 м. 3ds Max автоматически переведет их в сантиметры.

Ìîäåëèðîâàíèå

115

а

б

в Рис. 2.5. Настройка единиц измерения

116

Ãëàâà 2

 ОЧЕНЬ

ВАЖНО!

Ни в коем случае не изменяйте системные единицы измерения в дальнейшем, они должны быть установлены в самом начале работы над проектом!

Нажав кнопку ОК, вы вернетесь в основное диалоговое окно установок единиц измерения. Эти единицы являются отображаемыми, вы можете выбрать любые, 3ds Max будет все значения отображать в них, но при этом работать с сантиметрами. Пожалуй, нет смысла выбирать что-то, отличное от сантиметров (рис. 2.5, в).

Рис. 2.6. Иллюстрация настройки точности

 ЗАМЕЧАНИЕ Если вам не нравится, что числовые значения будут иметь суффикс "сm", можете выбрать Generic. В любом случае, при вводе числового значения, вам не нужно будет добавлять единицу измерения явно, 3ds Max сделает это за вас.

Стоит установить шаг сетки. В дальнейшем вы поймете, что особого смысла в использовании сетки нет, но, тем не менее, иногда она бывает полезной.

Рис. 2.7. Установка размеров сетки

Ìîäåëèðîâàíèå

117

Установите размер сетки равным 10 см (рис. 2.7). Главное меню  Customize  Grid and Snaps Settings  вкладка Home Grid

Отображение сетки включается и отключается при помощи клавиши (от Grid).

Îòîáðàæåíèå äîïîëíèòåëüíûõ ïàíåëåé èíñòðóìåíòîâ В процессе работы вам понадобятся некоторые дополнительные инструменты, до которых удобно добираться через дополнительные плавающие панели инструментов. Под рукой желательно иметь панели Snaps (привязки), Axis Constraints (привязка по осям) и Layers (слои).  Сделайте видимыми все плавающие панели инструментов. Главное меню  Customize  Show UI  Show Floating Toolbars  Закройте все панели, кроме нужных (Snaps, Axis Constraints и Layers).  Плавающие панели "прикрепите" к интерфейсу, перенеся их к главной па-

нели (рис. 2.8, а). В дальнейшем открывать или скрывать ненужные панели можно с помощью соответствующего контекстного меню этих панелей (рис. 2.8, б).  СОВЕТ Если вы хотите использовать такой интерфейс в дальнейшем, то сохраните его (Главное меню  Customize  Save Custom UI Scheme).

а

б Рис. 2.8. Дополнительные панели инструментов (а) и контекстное меню панелей инструментов (б)

118

Ãëàâà 2

Äîïîëíèòåëüíûå íàñòðîéêè И, наконец, стоит сделать следующее:  Для того чтобы при повороте окна проекции модель, с которой вы рабо-

таете, не "убегала" постоянно за пределы экрана, установите вращение окна проекции вокруг выбранного объекта или подобъекта. Панель навигации  выберите в выпадающем списке кнопок Arc Rotate SubObject  В 3ds Max 9 в главной панели вновь появилась кнопка Keyboard

Shortcut Override Toggle, которая включает или отключает сочетания клавиш, специфичные для тех или иных модификаторов или состояний объекта. Например, при работе с Editable Poly в этом режиме клавиша работает не как переход на вид сверху, а вызывает команду Tessellate. При первом запуске 3ds Max этот режим включен, при этом сама кнопка отображается "отжатой" т. е. выключенной. Щелкните на ней несколько раз, чтобы действительно "отжать", выйти из этого режима. В книге мы будем ориентироваться только на горячие клавиши основного интерфейса. Вот теперь можно приступать к моделированию.

Ìîäåëèðîâàíèå ëàíäøàôòà Ïîäãîòîâêà è èñïîëüçîâàíèå â ïðîåêòå ïëàíà ëàíäøàôòà Как ни странно, но моделирование начинается отнюдь не в 3ds Max, а в векторном и растровом редакторах, в нашем случае это CorelDRAW X3, т. к. именно в нем созданы все материалы, и Adobe Photoshop. Вы можете это делать в любом редакторе, а можете и пропустить этот раздел, т. к. на прилагаемом диске уже есть все подготовленные файлы. Зачем это нужно? Еще раз повторимся — несмотря на то, что задачей является прежде всего красивая картинка, не стоит моделировать, в том числе и ландшафт, совсем "на глазок". И прежде всего потому, что в этом случае есть большая вероятность, что дизайнер проекта просто откажется с вами работать, восприняв вашу безалаберность как издевательство. Если же вы сами и являетесь дизайнером этого проекта, то в этом случае есть опасность, что, сличив красивые картинки с чертежами, уже заказчик будет обескуражен расхождениями, и это также не пойдет на пользу вашей репутации. Вторая причина более банальна. Есть очень большая опасность так напутать с размерами и взаимным расположением объектов, что на переделку уйдет

Ìîäåëèðîâàíèå

119

больше времени, чем на создание. Не забывайте, что в этот ландшафт должны правильно вписаться дом и прочие объекты! В нашем же случае задача усложняется еще и тем, что ландшафт не плоский, и имеет довольно приличный уклон, причем неравномерный. Кроме этого, имеются искусственно созданные небольшие террасы, причем они должны быть оформлены как естественные. Теннисный корт, пруд в декоративном "лесу", задний двор — все это не так просто. Сначала подготовьте план для экспорта в 3ds Max в качестве справочного ("референсного") изображения.  Откройте в CorelDRAW файл plan.cdr, который находится в папке

Project1\references. Мы советуем распечатать его, чтобы он всегда был у вас под рукой.  Сделайте экспорт из CorelDRAW в любой растровый формат, например,

TIFF (рис. 2.9) в папку Project1\sceneassets\images. Главное меню CorelDRAW  File  Export

 ПОЯСНЕНИЕ Размер в пикселах достаточно большой, в данном случае это соответствует формату A3 при разрешении 300 dpi. Цветовое пространство — RGB или Grayscale, 3ds Max не понимает ни CMYK, ни индексированных цветов. Альфа-канал в нашем случае не нужен, поэтому флажок Transparent background (Прозрачный фон) снят.

Рис. 2.9. Параметры экспорта в формат TIFF

120

Ãëàâà 2

 После этого загрузите этот файл в Adobe Photoshop или другой редактор

растровой графики и сделайте следующее: • Обрежьте изображение по контуру ограды (рис. 2.10, а), т. к. нас интересует только внутреннее пространство, и его размеры известны. Для этого в Photoshop выделите нужную часть изображения инструментом Rectangular Marque Tool и обрежьте командой Image  Crop. • Уменьшите размер по большей стороне до "разумного", т. е. такого, которое в состоянии "переварить" ваша видеокарта, например, 2048 пикселов (рис. 2.10, б). Дело в том, что вывод на экран в окнах проекции осуществляется средствами видеокарты, и если размер больше допустимого, то 3ds Max предварительно старается уменьшить изображение, и не всегда лучшим образом. При использовании очень большой картинки есть вероятность получить что-то весьма непонятное.  ЗАМЕЧАНИЕ При масштабировании используйте только пикселы! 3ds Max не понимает ничего другого!

• Залейте всю картинку каким-либо цветом, например синим, с 30—40% прозрачности (Opacity) (рис. 2.10, в). В 3ds Max выделение многих объектов, в частности сплайнов, помечается белым цветом. Белое на белом — не очень удобно. • Сохраните файл под тем же именем в ту же папку. Вот теперь пора открыть 3ds Max.  ЗАМЕЧАНИЕ Если вы еще не скопировали на жесткий диск содержимое папки Project1 и не установили в качестве текущей папки проекта папку Project1, как было рассказано ранее, сделайте это сейчас!

При запуске 3ds Max сразу создается новый файл. Если все установки, описанные ранее, сделаны, то они имеют силу для этого файла.  Создайте новый слой, переименуйте его в References. Главная панель  Layer Manager  Create New Layer Щелкните левой кнопкой мыши на имени слоя и переименуйте в References

 ЗАМЕЧАНИЕ Можно ли называть слои и объекты, файлы по-русски? Конечно, можно, но имейте в виду, что не все пакеты "понимают" (например, Softimage/XSI или Mudbox) представление имен в Unicode, некоторые сетевые решения на базе UNIX/Linux также воспринимают только ASCII, поэтому в случае коллективной работы постарайтесь выяснить и принять во внимание все подобные ограничения.

Ìîäåëèðîâàíèå

121

а

б Рис. 2.10, а и б. Подготовка справочного изображения в Adobe Photoshop

122

Ãëàâà 2

в Рис. 2.10, в. Подготовка справочного изображения в Adobe Photoshop

 СОВЕТ Так как с менеджером слоев вам придется работать постоянно, то не закрывайте его и разместите на втором мониторе, если, конечно, он у вас есть.

 Удостоверьтесь, что слой References активный, в этом случае в менеджере

слоев должна стоять галочка напротив имени слоя.  На виде сверху (Top, клавиша ) создайте плоскость произвольного размера в произвольном месте. Главное меню  Create  Standard Primitives  Plane Щелкните левой кнопкой мыши в окне проекции и, удерживая ее, переместите курсор, создав объект

 ЗАМЕЧАНИЕ Мы будем по возможности давать наиболее эффективные, с нашей точки зрения, пути для создания объектов, применения модификаторов и т. д. Альтернативный способ создания объектов кажется нам в данном случае более сложным (Командная панель  панель Create  подпанель Geometry  пункт в выпадающем списке Standard Primitives  кнопка Plane). Но в некоторых случаях, например, в случае, когда нужно поставить флажок AutoGrid (Автоматическая координатная сетка) удобнее создавать объект из этой панели.

Почему именно "произвольного размера и в произвольном месте"? В 3ds Max есть возможность создавать объекты сразу нужного размера и в нужном месте, задавая значения с клавиатуры (Командная панель  Create ...  свиток Keyboard Entry), но практика показывает, что удобнее создавать объекты так, как указано ранее. Все равно вам придется настраивать размеры и параметры объекта, и перемещать его в нужное место. Если вам все же нравится создавать объекты сразу нужного размера — что же, это ваш выбор. Важно помнить только о том, что координата,

Ìîäåëèðîâàíèå

123

задаваемая в полях X, Y и Z, — это координата точки привязки объекта (Pivot Point), которая не всегда совпадает с геометрическим центром объекта.  СОВЕТ Так как за монитором вам придется проводить много времени, постарайтесь организовать рабочее пространство так, чтобы снизить утомляемость. Для этого старайтесь по возможности моделировать в окне максимального размера. Так как пока вам не нужны никакие другие виды, кроме вида сверху, либо растяните окно вида сверху, "схватившись" левой кнопкой мыши за пересечение границ окон, либо воспользуйтесь сочетанием клавиш +. В последнем случае текущее окно будет растянуто на весь экран. Чтобы вернуться к стандартному расположению окон, вновь нажмите сочетание +. Многие команды в 3ds Max работают именно так, по принципу "переключателя" (toggle).

 ЗАМЕЧАНИЕ Сразу хотим напомнить о "зловредных" клавишах, которые зачастую нажимаются случайно. Это клавиша , которая включает и отключает отображение "стрелочек" — контейнеров трансформации (Transform Gizmo). Клавиша включает и отключает режим Lock Selection, при включении этого режима невозможно интерактивно выделять объекты или подобъекты. Клавиша отвечает за режим Adaptive Degradation, симптомом включения этого режима является "превращение" объектов в "кубики" при вращении, масштабировании и перемещении вида в окне проекции.

После того, как объект создан, все настройки производятся в панели Modify (модификация) командной панели. Быстро перейти на эту панель можно, нажав одну из клавиш от до на основной клавиатуре, т. е. клавиш выбора подобъектов.  Перейдите в режим модификации объекта.

 ЗАМЕЧАНИЕ Если командная панель пуста — значит, вы не выбрали объект. Выберите его, щелкнув левой кнопкой мыши по объекту. Не получается? В режиме отображения в виде сетки (Wireframe) выбор объекта осуществляется щелчком левой кнопки мыши по ребру. Если и это не получается, то посмотрите, не активирован ли режим Lock Selection (горит "замочек" в панели статуса). Если это так, то нажмите или "отожмите" эту кнопку мышью. Если и после этого не получается, попытайтесь выбрать объект по имени. Сделать это можно либо в менеджере слоев (рис. 2.11, а), либо в окне выбора объектов по имени (клавиша ).

 Настройте объект так, как показано на рис. 2.12, а.

 ПОЯСНЕНИЕ Переименуйте объект во что-то более понятное, нежели Plane01. Давать объектам осмысленные имена — это хорошая привычка, которая может сэкономить вам впоследствии часы времени, проведенные за разбором сложной сцены.

124

Ãëàâà 2 Размеры плоскости задайте соответствующие реальным — 66 на 54,3 м. Количество сегментов разбиения установите равным 1 — совершенно ни к чему тянуть за собой лишнюю геометрию. Установите флажок Generate Mapping Coords. (создавать текстурные координаты), это позволит корректно отображать текстуру на поверхности плоскости. А вот флажок Real-World Map Size (размер карты в реальном масштабе) в этом случае не нужен, и даже вреден. Эти настройки рассмотрены в разделе, посвященном текстурированию.

а

б Рис. 2.11. Выбор объекта по имени в менеджере слоев (а) и в окне выбора по имени (б)

Ìîäåëèðîâàíèå

125

а

б Рис. 2.12. Настройки справочного объекта (а) и перенос изображения из файла на объект (б)

126

Ãëàâà 2 Переключитесь в затененный режим отображения (клавиша ) и отображение ребер (клавиша ) — это основной режим для работы в 3ds Max, наиболее удобный в большинстве случаев.

 Используя метод drag-and-drop, перенесите изображение из сохраненного

вами файла на плоскость. Для этого можно воспользоваться Проводником Windows, любимой программой для просмотра графических файлов, например, ACDSee, или встроенным в 3ds Max инструментом Asset Browser (рис. 2.12, б, на рисунке перенос изображения уже проведен). Командная панель  Utilities  Asset Browser

 ПОЯСНЕНИЕ Если вы внимательно прочитали первую главу, то вам может показаться, что мы противоречим сами себе. Было подчеркнуто, что в 3ds Max нельзя наложить карту непосредственно на объект. Объекту можно присвоить материал, но не карту. На самом же деле, никакого противоречия нет. Такое внешне простое действие влечет за собой достаточно сложную последовательность событий. В процессе переноса создается стандартный (Standard) материал, на канал Diffuse (рассеянный) которого назначается карта из файла. В параметрах материала устанавливается флажок отображения карты в окнах проекции, а сам материал присваивается объекту. Кстати, этим материалом в самом скором времени вам придется воспользоваться в явном виде.

Какие могут возникнуть проблемы (и они возникают у начинающих пользователей 3ds Max; на Базовом курсе в Realtime School это происходит в 30— 40 случаях из ста)? Если вы не видите в окне проекции вашего плана на плоскости — значит, вы сделали что-то не так. Что именно? Первое — вместо плана на плоскости в нашем случае вы видите синий прямоугольник. Если увеличить масштаб отображения в окне проекции (для этого используется колесико мыши), то ваша плоскость будет выглядеть так, как показано на рис. 2.13, а. Решается это в данном случае снятием флажка RealWorld Map Size. Вторая проблема заключается в том, что вы просто "не попали" в плоскость. В затененном режиме сделать это достаточно проблематично, а вот в каркасном, "проволочном" режиме отображения (Wireframe) — очень просто, т. к. в этом режиме попадать надо в ребро объекта. В случае "промаха" появляется диалоговое окно, показанное на рис. 2.13, б, и правильным выбором в этой ситуации является кнопка Cancel (отменить действие). В противном случае вы получите изображение плана на фоне окна проекции (флажок А Viewport Background) или в качестве фона при рендеринге (флажок An Environment Map). Ни то, ни другое в нашем случае не нужно. Если все же вы это сделали, то избавиться от фона в окне проекции можно, просто отключив отобра-

Ìîäåëèðîâàíèå

127

а

б Рис. 2.13. Возможные проблемы при переносе изображения

жение фона в окне проекции (Контекстное меню окна проекции  снимите флажок Show Background). А об окружении можно пока не беспокоиться, т. к. эта карта будет изменена уже при настройке рендеринга. Несколько слов нужно сказать о качестве отображения карт в окнах проекции. На нашей видеокарте (ATI Radeon 9600 Pro с памятью 128 Мбайт, как видите, весьма посредственное решение) все выглядит достаточно хорошо. Если в вашем случае это не так, нужно попробовать настроить видеодрайвер в 3ds Max (рис. 2.14, а). Главное меню  Customize  Preferences  вкладка Viewports  Configure Driver

128

Ãëàâà 2

 ПОЯСНЕНИЕ 3ds Max при отображении карт (точнее, передаче их драйверу видеокарты) может изменять их линейные размеры до необходимого, при этом используются числа, кратные степени 2 (256, 512, 1024, и т. д.). В случае, когда установлены флажки Match Bitmap Size as Closely as Possible (цифра 1 на рис. 2.14), 3ds Max передает карты без изменения размера, и видеокарта сама разрезает и масштабирует изображение. Если вид карты неудовлетворителен или система "тормозит", то вы можете снять эти флажки и установить размеры, нажав на соответствующие кнопки (кнопки в группе Background Texture Sizе отвечают за размер фонового изображения, а в группе Download Texture Size — за размер карт, назначенных на объекты). Для улучшения вида карт в группах, помеченных цифрой 2, выберите самые нижние значения. Если при этом система начнет "тормозить" при перемещении и вращении вида, ухудшите качество, выбрав значения "попроще", вплоть до Nearest и None соответственно. Остальные настройки не влияют на качество отображения текстур, и по умолчанию установлены оптимальным образом. Поэтому оговорим только некоторые из них. Если в сцене все объекты показаны в каркасном режиме разбитые на треугольники, то первое, что нужно сделать, — попробовать снять флажок Display All Triangles Edges. В предыдущих версиях 3ds Max для режима Direct3D этот флажок был установлен. Установите флажок Use Cached D3DXMeshes, если он снят. Использование этого режима ускоряет работу в окнах проекции. Но имеется и побочный эффект — небольшое "замирание" перед началом операции поворота окна проекции или зумировании. Включение остальных флажков в этой группе дает возможность ускорить отображение в окнах проекции за счет аппаратного ускорения вывода в режиме каркаса (Wireframe). Но это дает эффект только в том случае, если видеокарта поддерживает эти режимы. Флажки в группе Window Updates (перерисовка окон) служат для настройки перерисовки при закрытии окон. Если в процессе работы у вас постоянно на экране появляется "мусор" после закрытия плавающих окон — попробуйте попереключать их. Забавное предложение? Ничего не поделаешь, на разных системах эти настройки ведут себя по-разному. Если вы работаете в среде Windows Vista и соответственно с DirectX 10, то настройки совсем простые (рис. 2.14, б). Особенностью является возможность задать максимальное количество источников света, свет от которых будет отображаться в окне проекции.

Можно двигаться дальше, но мы советуем вам сделать еще пару действий. В принципе, они не обязательные, но желательные. Сейчас плоскость лежит на нулевом уровне, т. е. ее координата по мировой оси Z равна 0, это не очень удобно, т. к. перекрывает основную (домашнюю, мировую) сетку (Home Grid). К тому же, при создании "прудика", да и просто самого ландшафта, она также будет мешать, "пролезая" сквозь углубления. Чтобы избежать этих неудобств, имеет смысл перенести ее по оси Z на некоторое расстояние "вглубь земли". Для этого

Ìîäåëèðîâàíèå

129

а

б Рис. 2.14. Настройка отображения карт в окнах проекции для DirectX 9 (а) и DirectX 10 (б)

130

Ãëàâà 2

перейдите в режим перемещения (клавиша ) и просто введите отрицательное число, например, "-100" в поле Z в панели координат. Если вы внимательно изучили план, то не могли не заметить, что на нем присутствуют размеры, отложенные от верхнего правого угла. Понадобятся они или нет — это пока неизвестно, но стоит предусмотреть это. Поэтому имеет смысл перенести плоскость верхним правым углом в нулевые координаты по осям X и Y. Сделать это можно разными способами, но в нашем случае удобно воспользоваться тем фактом, что точка привязки (Pivot Point) для плоскости находится в центре объекта. Путем несложных математических вычислений, разобраться с которыми мы предлагаем вам самостоятельно, искомые координаты — это –2715 см по оси X и –3300 см по оси Y (рис. 2.15). Введите эти значения в соответствующие поля в панели координат в режиме перемещения (клавиша ).

Рис. 2.15. Перенос плоскости

И, наконец, чтобы плоскость не мешалась и не была случайно смещена, нужно зафиксировать (Freeze) слой References (помечено стрелкой 1 на рис. 2.16) в менеджере слоев.

Ìîäåëèðîâàíèå

131

Рис. 2.16. Настройка слоя со справочным объектом

Чтобы при этом изображение плана осталось, нужно снять флажок Show Frozen in Gray (показывать зафиксированные объекты серым) (стрелка 2). Для этого откройте настройки слоя, щелкнув левой кнопкой мыши на символе слева от имени слоя (стрелка 3). Чтобы в окне проекции плоскость всегда отображалась в затененном режиме независимо от режима отображения в окне проекции, выберите Shaded в выпадающем списке Display (стрелка 4). Также имеет смысл исключить этот слой из рендеринга (стрелка 5) — снять флажок Renderable. А теперь пора сохранить проект. Наш файл на этом этапе называется Project1-Terrain-01.max.

Ïîäãîòîâêà è èìïîðòèðîâàíèå ôàéëà èçîëèíèé В файле проекта (Plan.cdr) присутствуют изолинии, т. е. линии равных высот, для ландшафта. Было бы неразумно не воспользоваться этим обстоятельством. Мы предлагаем вам загрузить нужные кривые в 3ds Max и построить по ним ландшафт при помощи составного объекта Terrain.

132

Ãëàâà 2

 ОЧЕНЬ

ВАЖНОЕ ЗАМЕЧАНИЕ!

Далее по тексту идет описание того, что пришлось сделать в нашем конкретном случае. Эти действия ни в коем случае не претендуют на универсальность! Более того, многих из них можно было бы избежать, если бы изначальный чертеж был выполнен с большей аккуратностью! Мы очень надеемся на то, что вы сделаете соответствующие выводы и не будете допускать тех ошибок и неточностей, с точки зрения моделирования в 3ds Max, которые были допущены автором проекта.

К сожалению, 3ds Max не понимает формата CorelDRAW напрямую, но при этом прекрасно загружает файлы в формате Adobe Illustrator (AI). Поэтому предварительно нужно сделать экспорт из CorelDRAW в формат AI. Стоит ли экспортировать всю информацию? Конечно, нет. На рис. 2.17, а показана вторая страница файла Plan.cdr, в которой содержится то, что нужно для экспорта. Как видите, осталось не так уж много, а использовано из этого будет и того меньше. Экспортируйте эту страницу в формате AI в папку Project1\Import. Настройки экспорта показаны на рис. 2.17, б.

а

б

Рис. 2.17. Экспорт изолиний из CorelDRAW в формате AI

 ПОЯСНЕНИЕ Рекомендуемая разработчиками 3ds Max версия формата AI — это самая первая версия для PC, AI 88. На практике 3ds Mах нормально загружает файлы AI вплоть до 7-й версии включительно, но при прочих равных условиях предпочтение стоит отдавать все же версии AI 88.

Ìîäåëèðîâàíèå

133

При экспорте текстов обязательно используйте перевод в кривые, и ни в коем случае не стоит использовать заливки и проч. — в этом нет смысла, вам все придется удалять. Из всего этого великолепия 3ds Max использует только линии.

Наш файл называется Isolines.ai и находится в папке Project1\Import. Прежде чем импортировать кривые, создайте новый слой в менеджере слоев. При создании нового слоя помните о том, что в него попадают все выделенные объекты из других слоев (об этом предупреждает всплывающая подсказка (ToolTip)). Поэтому предварительно снимите выделение со всех объектов (сочетание клавиш +). Менеджер слоев  Create New Layer

При создании слоя часто наследуются настройки предыдущего активного слоя, поэтому приведите настройки нового слоя в состояние, показанное на рис. 2.18.  ПОЯСНЕНИЯ Сделайте слой активным (стрелка 1 на рис. 2.18), если он не стал таковым автоматически. Этот слой не должен быть ни скрыт, ни зафиксирован (стрелка 2). Отображение его в окнах проекции соответствует текущему режиму (стрелка 3). Этот слой участвует в рендеринге (стрелка 4).

Рис. 2.18. Настройки рабочего слоя

134

Ãëàâà 2

Загрузите (импортируйте) в сцену объекты из файла Isolines.ai. Сделать это можно двумя способами. Первый способ — с использованием Asset Browser или Проводника Windows (рис. 2.19, а). Просто перетащите иконку с файлом в окно проекции и подтвердите перенос левой кнопкой мыши. В сцену будут добавлены кривые как отдельные объекты. Второй способ, дающий немного больше возможностей, — импорт через главное меню (рис. 2.19, б). Главное меню  File  Import

а

б Рис. 2.19. Два способа импорта файла в формате AI

Ìîäåëèðîâàíèå

135

При импорте вторым способом вам будет задано два вопроса. Первый — загружать ли объекты в текущую сцену или создать новую. Ответ, мы думаем, очевиден. Второй — диалоговое окно Shape Import позволяет вам загружать кривые как единый объект или по отдельности, т. е. так, как они представлены в импортируемом файле. В нашем случае удобнее загрузить кривые как единый объект (Single Object), но исключительно для тренировки выберите второй пункт, Multiple Objects. Объекты загружены, но они очень маленькие. При импортировании кривых из AI-файла учитывается размер страницы, и это очень удобно. Если чертежи выполнены в конкретном масштабе, то их достаточно просто перевести в размер один к одному. Чтобы определить масштаб, если он неизвестен, воспользуйтесь утилитой Measure (измерение).  Выделите все кривые. Так как кроме них в сцене присутствует только

плоскость, но слой, в котором она находится, зафиксирован, достаточно воспользоваться сочетанием клавиш + (Select All, выделить все). Альтернативный способ — щелкнуть правой кнопкой мыши на имени слоя в менеджере слоев и выбрать Select. При этом будут выбраны все объекты слоя.  Откройте утилиту Measure (рис. 2.20, а). Контрольная панель  Панель Utilities  Measure

Нужные значения (размеры) обведены. Путем несложных математических вычислений можно прийти к выводу, что чертеж был выполнен в масштабе 1:200 (на самом деле, так оно и есть). Но есть небольшие расхождения по обеим осям. Получились они в результате неточного чертежа (рис. 2.20, б, обведено). На будущее же для себя еще раз отметьте, что чем точнее чертежи — тем проще моделировать. Поскольку известен масштаб, то нет никаких препятствий для того, чтобы привести размеры изолинии к реальным, нужно просто увеличить все линии в 200 раз (или на 20 000%).  Выделите все кривые либо по имени (клавиша ), или просто обведя

объекты "окошком", или нажав сочетание клавиш +.  Перейдите в режим масштабирования (клавиша ).  Откройте диалоговое окно ввода значений трансформаций (Transform

Type-In, клавиша ).  Введите 20 000 в поле Offset: Screen и нажмите (рис. 2.21, а).

136

Ãëàâà 2

а

б Рис. 2.20. Измерение размеров утилитой Measure (а) и причина расхождений размеров (б)

Ìîäåëèðîâàíèå

137

Не снимая выделения, переместите все кривые так, чтобы они соответствовали положению чертежа. Удобно это сделать, используя привязки.  Перейдите в режим перемещения (клавиша ).  Настройте привязки к узлам сетки (Grid Points) и вершинам (Vertices)

(стрелка 1 на рис. 2.21, б).  Включите режим использования привязок (клавиша , кнопка Snaps на

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

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

а

б Рис. 2.21. Масштабирование (а) и перемещение (б) изолиний в нужное положение

Теперь каждую изолинию нужно поднять на нужную высоту. Шаг в проекте задан 20 см. Поэтому сделайте следующее.  Выделите нужную изолинию и поднимите ее на 20 см по оси Z

(рис. 2.22, а). Сделать это можно, вводя координаты либо в панели ввода

138

Ãëàâà 2

а

б Рис. 2.22. Расположение изолиний на нужных высотах

Ìîäåëèðîâàíèå

139

координат внизу, либо в диалоговом окне (Move Transform Type-In, клавиша ).  Следующие изолинии поднимите на 40 см и т. д. Делать это можно как на

виде сверху, так и повернув вид в окне проекции.  СОВЕТЫ Можно выделять и поднимать объекты попарно. Чтобы выделить сразу несколько объектов, удерживайте клавишу при выделении левой кнопкой мыши. Временно можно скрыть слой Reference, нажав соответствующий символ в менеджере слоев.

На рис. 2.22, б показан результат подъема изолиний с указанием некоторых высот. Наш файл на этом этапе называется Project1-Terrain-03.max.

Èñïîëüçîâàíèå èçîëèíèé äëÿ ïîñòðîåíèÿ ëàíäøàôòà Что же, уже сейчас можно построить по этим изолиниям ландшафт. Но результат будет очень плохим (рис. 2.23) по двум причинам: очень мало промежуточных вершин и неаккуратное расположение и форма самих изолиний.

Рис. 2.23. "Плохой" ландшафт

140

Ãëàâà 2

Сначала исправьте второе обстоятельство. Для этого удобно работать с изолиниями как с единым объектом. В 3ds Max сделать это можно двумя способами: первый — присоединить (Attach) все объекты (в данном случае, сплайны) к одному из них. Второй способ, которым мы предлагаем вам воспользоваться — назначить всем объектам один модификатор, в данном случае, это Edit Spline. Но предварительно нужно избавиться от последствий масштабирования, произвести так называемый "сброс трансформаций". Дело в том, что масштабирование проводилось целиком над объектами. Поэтому изменения коснулись локальной системы координат, и теперь 1 см в локальной системе координат равен 200 см в мировой. Это не настолько критично в нашем случае, все действия, которые будут проводиться с использованием абсолютных значений, а именно перемещения вершин, будут выполняться в мировой системе координат. Но в самое ближайшее время к кривым мы применим модификатор (а именно Normalize Spline), использующий значения именно в локальной системе, и это действительно критично. Сделать сброс трансформаций можно, например, при помощи утилиты Reset XForm. В результате ее применения сбрасываются значения масштабирования (до 100% по всем координатам) и вращения (объект выравнивается по мировым координатам). Все значения масштабирования и вращения передаются контейнеру (Gizmo) модификатора XForm, который добавляется в стек модификаторов.  Выделите все объекты-изолинии (пока в сцене нет других выделяемых

объектов, можно воспользоваться сочетанием клавиш +).  Примените утилиту Reset XForm (рис. 2.24, а). Командная панель  подпанель Utilities  кнопка Reset XForm Нажмите кнопку Reset Selected один раз  Для того чтобы модификатор XForm не мешал, преобразуйте все объекты

к типу редактируемых сплайнов (рис. 2.24, б). Квадрупольное меню  Convert to  Convert to Editable Spline

Вот теперь можно не бояться того, что результаты масштабирования какимто образом повлияют на дальнейшее редактирование при помощи модификаторов.  Выделите все объекты-изолинии.  Примените модификатор Edit Spline (редактировать сплайны). Главное меню  Modifiers  Patch/ Spline Editing  Edit Spline

Ìîäåëèðîâàíèå

141

а

б

Рис. 2.24. Применение утилиты Reset XForm (а) и преобразование объектов к типу редактируемых сплайнов (б)

 ЗАМЕЧАНИЕ Имейте в виду, что при этом вы все равно работаете с отдельными объектами. Вы получаете доступ к подобъектам, можете перемещать, удалять их, но не можете проводить операции между объектами, например, слияние вершин, принадлежащих разным объектам.

На виде сверху в режиме каркаса (Wireframe) (клавиша ) просмотрите сплайны. Да, прямо скажем, ситуация не самая лучшая, нужно "вычистить" достаточно много. Причем в каждом конкретном случае можно воспользоваться различными инструментами. Мы перечислим их все. В случае, показанном на рис. 2.25, а, можно воспользоваться командой Trim (подрезка) для подобъектов Splines. Несмотря на то, что сплайны лежат на разных уровнях, эта команда работает, но только в окне проекции вида сверху.  Перейдите в подобъекты Splines (клавиша ).  Активизируйте команду Trim и подрежьте выступающие за прямоуголь-

ник концы, щелкая левой кнопкой мыши на них. Свиток Geometry  Trim Щелкайте левой кнопкой мыши по частям сплайна, которые хотите удалить. Закончите выполнение команды щелчком правой кнопки мыши

142

Ãëàâà 2

а

б

в Рис. 2.25. Выравнивание вершин сплайнов различными способами

г

Ìîäåëèðîâàíèå

143

В случае, показанном на рис. 2.25, б, можно воспользоваться командой Extend (распространение) также для подобъектов Splines.  Перейдите в подобъекты Splines (клавиша ).  Запустите команду Extend и продлите сплайны до пересечения, щелкая левой кнопкой мыши нужные вершины. Свиток Geometry  Extend  В том случае, если это несложно, можно просто в режиме перемещения

ввести координату по нужной оси в режиме перемещения (рис. 2,25, в).  Для перемещения вершин можно воспользоваться так называемыми 2.5D-привязками. Главная панель  выпадающая панель кнопок Snap 3D/2.5D/2D  выберите 2.5D

При использовании этого режима на видах сверху, слева и т. д. привязка осуществляется к любым элементам, при этом привязываемый элемент перемещается в плоскости экрана.  Настройте привязки к вершинам и ребрам.  Перемещайте вершины к ребрам прямоугольника (рис. 2.25, г). Выйдите из режима привязок (клавиша ), возьмите себе за правило это делать, когда привязки не нужны.  СОВЕТ Как видите, занятие достаточно утомительное, т. к. вершины приходится обрабатывать поодиночке. На сайте http://www.scriptspot.com вы можете найти много скриптов, позволяющих автоматизировать этот и другие процессы. Не обращайте особого внимания на номер версии 3ds Max, как правило, скрипты (в отличие от плагинов) более ранних версий работают и с 3ds Max 9.

Кроме невыровненных вершин, в исходном файле оказались двойные линии (рис. 2.26). Хотя для того метода создания ландшафта, который мы вам предлагаем, это не очень критично, лучше избавиться от лишних сегментов.  Перейдите в режим работы с сегментами (клавиша ).  Выделяйте сегменты щелчком левой кнопки мыши и удаляйте клавишей . Если при этом удалится весь сплайн, то значит, что сегмент был один. Отмените действие сочетанием клавиш +. Вот такое "шаманство". "По секрету" скажем, что такие линии присутствуют только в правой верхней части. Теперь настало время избавиться от лишнего, подправить нужное и достроить недостающее.  Выделите все объекты, если по каким-либо причинам вы сняли выделение.  Перейдите в режим работы с сегментами (клавиша ).

144

Ãëàâà 2

Рис. 2.26. Двойные сегменты

 Выделите сегменты, помеченные стрелками на рис. 2.27, а, и удалите —      

они вам больше не нужны. Выделите сегменты, помеченные стрелками на рис. 2.27, б, и также удалите. Сегмент, помеченный стрелкой на рис. 2.27, в, поднимите на уровень 240 см (уровень самой верхней изолинии). Сегменты, помеченные стрелкой на рис. 2.27, г, опустите на уровень 40 см. Перейдите в режим работы с вершинами (клавиша ). Вершины, помеченные стрелочками на рис. 2.27, д, опустите на нулевой уровень по оси Z. Командой Refine для вершин добавьте вершины на сплайне, отмеченном стрелкой на рис. 2.27, е в места, примерно соответствующие концам изолиний. Свиток Geometry  Refine

 Вершину, помеченную стрелкой на рис. 2.27, ж, опустите до уровня

160 см, остальные — на нужные уровни. При этом удобно воспользоваться уже 3D-привязками, настроив их на привязку к вершинам. Наш файл с подправленными изолиниями на этом этапе называется Project1terrain-04.max. Вот теперь настал момент, когда обстоятельство, что все изолинии являются отдельными объектами не просто неудобно, а мешает дальнейшему редактированию. Теперь необходимо соединить линиями правые и левые группы изолиний. Сделать это можно, только объединив все объекты в один.  ЗАМЕЧАНИЕ В принципе, можно добавить новые объекты — линии с использованием привязок. Но смысла в том, чтобы городить еще десяток объектов, нет.

Ìîäåëèðîâàíèå

145

а

б Рис. 2.27, а и б. Редактирование изолиний (1 этап)

146

Ãëàâà 2

в

г Рис. 2.27, в и г. Редактирование изолиний (1 этап)

Ìîäåëèðîâàíèå

147

д

е

ж Рис. 2.27, д—ж. Редактирование изолиний (1 этап)

148

Ãëàâà 2

Рис. 2.28. Объединение объектов в один

 Преобразуйте один объект-изолинию либо сразу все к типу редактируе-

мых сплайнов. Квадрупольное меню  Convert to:  Convert to Editable Spline

Выделите любую изолинию и присоедините к ней все остальные. Сделать это можно быстро при помощи команды Attach Multiple (рис. 2.28). Свиток Geometry  Attach Mult Выберите все объекты (кнопка Аll) и нажмите Attach  При помощи команды Connect для вершин соедините нужные вершины

(рис. 2.29, а). Квадрупольное меню  Connect Выделяйте вершину и "тяните ниточку" к другой  Вершину, помеченную стрелочкой на рис. 2.29, б, вытяните "из-под" дру-

гих линий. Просмотрите все вершины и разрешите подобные ситуации для них.

Ìîäåëèðîâàíèå

149

а

б Рис. 2.29. Редактирование изолиний (2 этап)

 ЗАМЕЧАНИЕ Как видите, мы проигнорировали "котлован" под цокольный этаж, т. к. делать его на данном этапе очень сложно и нет никакого смысла.

Наш файл с готовыми изолиниями на этом этапе называется Project1-terrain05.max. Пора построить по готовым изолиниям ландшафт. Для этого используется составной объект (Compound Object) Terrain (ландшафт). Создайте его (рис. 2.30, а)! Главное меню  Create  Compound  Terrain

150

Ãëàâà 2

Как видите, результат ненамного лучше забракованного ранее. Что же — будем улучшать. Но предварительно мы дадим некоторые пояснения по параметрам этого составного объекта. Смысл слова "составной" (Compound) заключается в том, что этот тип объектов строится на базе других таким образом, что вы можете вернуться к редактированию исходных объектов, называемых "операндами" (Operands). Объект Terrain позволяет создавать ландшафт не по одному, а по нескольким объектам. Чтобы это сделать, нужно нажать на кнопку Pick Operand и затем добавлять объекты. Если бы все изолинии изначально не были точными, то не было бы нужды объединять их в один объект. Большинство составных объектов и некоторые модификаторы позволяют вам использовать объекты различными способами. Выбор способа осуществляется в свитке Pick Operand с помощью нескольких переключателей (цифра 1 на рис. 2.30).

Рис. 2.30. Создание ландшафта при помощи объекта Terrain

Способ Move (переместить) приводит к тому, что исходный объект удаляется из сцены.

Ìîäåëèðîâàíèå

151

Способ Copy (копия) не приводит к удалению исходного объекта из сцены, но связь с ним теряется. Способы Reference (ссылка) и Instance (образец) позволяют не терять связи с исходными объектами, т. е. редактирование исходного объекта приводит к изменению операнда. Разница между ними в том, что при использовании Instance связь двунаправленная, т. е. изменения операнда приводят к изменениям исходного объекта. При использовании Reference изменения, проведенные над операндом, не передаются исходному объекту. В нашем случае все эти способы равнозначны, т. к. операнд один. В свитке Parameters (параметры) вы можете выбрать различные способы построения ландшафта. Способ по умолчанию (Graded Surface — поверхность по высотам) в нашем случае является наиболее предпочтительным. Graded Solid (Объем по высотам) позволяет получить замкнутый объем в дополнение к поверхности, а Layered Solid — "ступенчатую" поверхность. Флажок Stitch Border дополнительно сшивает открытые ребра. Имейте в виду, что все эти опции могут привести к наложению полигонов, поэтому для их использования нужно еще поработать над контурами, например, ввести дополнительный прямоугольник ниже нулевого уровня. Остальные параметры в этом свитке (за исключением списка операндов, к нему мы еще вернемся) достаточно прозрачны, чтобы их обсуждать. Свиток Color by Elevation (цвет по уровням) позволяет вам получить красивую раскраску вашего ландшафта, соответствующую той, что применяется в физических картах. Мы оставляем вам удовольствие разобраться с этим самостоятельно, т. к. в нашем случае это бесполезная возможность. Скажем лишь, что для визуализации полученной цветной картинки необходимо использование карты Vertex Color (Цвет вершин). Загадочно, не правда ли? Что же, вы узнаете, что это такое, в свое время, правда, немного в другом контексте. Свиток Simplification (упрощение) содержит некоторые опции для управления, в основном, упрощения, сложностью получаемой геометрии. Дело в том, что этот объект направлен прежде всего на создание больших ландшафтов, данные для которых получены из AutoCAD и других продуктов на его базе, и содержат очень большое количество вершин. В нашем же случае хотелось бы иметь возможность усложнить получаемую поверхность, т. е. увеличить количество граней. Как видите, максимум, что можно сделать, — это в четыре раза увеличить количество вершин на горизонталях, т. е. изолиниях. Что делать, если хочется большего? Для увеличения количества вершин на горизонталях можно поступить следующим образом.  В объекте Terrain01 перейдите на уровень работы с подобъектами-операндами.

152

Ãëàâà 2

 Выделите единственный операнд Op0 (рис. 2.31, а). Как видите, в стеке

модификаторов появилась строка Editable Spline.  Перейдите к уровню Editable Spline. Стали доступны подобъекты исходного сплайна. Можно перемещать вершины, добавлять их и т. д. — все эти действия будут отрабатываться на результирующей поверхности.

а

б

в Рис. 2.31. Усложнение ландшафта при помощи модификатора Normalize Spline

Мы предлагаем вам пойти другим путем — применить модификатор Normalize Spline (нормализация сплайна), который делит сплайн на равные сегменты.

Ìîäåëèðîâàíèå

153

В главном меню этот модификатор в данном случае недоступен, это ошибка 3ds Max. Поэтому назначать этот модификатор нужно из списка модификаторов в стеке (рис. 2.31, б).  Назначьте модификатор Normalize Spline и задайте значение 40 см

(рис. 2.31, в).  ПОЯСНЕНИЕ Этот модификатор имеет только один параметр — размер сегмента в абсолютных единицах, в нашем случае, в сантиметрах. При этом используется локальная система координат объекта, и если бы вы не сделали сброс трансформаций, то получили бы крайне неожиданный результат — вместо усложнения объекта вы получили бы упрощение, т. к. размер сегмента в мировой системе был бы больше ровно во столько раз, во сколько вы увеличивали объект (в данном случае, в 200 раз). Поэтому еще раз призываем вас избегать бездумного масштабирования объектов.

А вот усложнить рельеф по вертикали нельзя. Да и не нужно. Надеемся, вы уже поняли, что редактировать такой ландшафт практически невозможно. Он не поддается также и сглаживанию. Использовать его можно в том случае, когда полученная поверхность является окончательной.

Ïåðåíîñ òîïîëîãèè ëàíäøàôòà íà ïîëèãîíàëüíûé îáúåêò Что же, время потрачено зря? Ни в коем случае! Мы предлагаем вам воспользоваться способом, подсмотренным нами в Интернете на форуме сайта www.3dcenter.ru и используемым с разрешения автора, Андрея Яковенко. Заключается он в применении другого составного объекта — Conform (Соответствие), который позволяет выровнять поверхность одного объекта по поверхности другого, в нашем случае плоскости по поверхности ландшафта.  На виде сверху создайте плоскость по размеру чуть меньше ландшафта

(рис. 2.32, а). Главное меню  Create  Standard Primitives  Plane

 ПОЯСНЕНИЯ Переименуйте плоскость сразу во что-то подходящее по смыслу, например, Terrain (Plane). Количество сегментов по длине и ширине сделайте достаточно большим, но не чрезмерно, т. к. этот объект еще будет усложнен в дальнейшем при помощи сглаживания. Флажки Generate Mapping Coords. и Real-World Map Size в этом случае не важны.

Наш файл на этом этапе называется Project1-terrain-06.max.

154

Ãëàâà 2

 Поднимите плоскость на некоторую высоту над поверхностью ландшафта

(рис. 2.32, б), т. к. важна ориентация нормалей к поверхности объектов.  Создайте на основе плоскости объект типа Conform. Главное меню  Create  Compound  Conform  В командной панели нажмите на кнопку Pick Wrap-To Object (буквально

"выбрать объект для оборачивания") и щелкните левой кнопкой мыши по ландшафту. Вы должны получить что-то, похожее на рис. 2.32, в. Не совсем то, что нужно? Давайте разбираться с параметрами (рис. 2.32, г). В свитке Pick Wrap-To Object присутствует уже знакомая вам группа переключателей, смысл которых уже обсуждался. В свитке Parameters самым главным является способ проецирования вершин одного объекта (он называется Wrapper, оборачивающий) на поверхность другого (Wrap-To, оборачиваемый) (цифра 1). Как видите, способов весьма много. По умолчанию выбран Use Active Viewport (использовать проекцию

а Рис. 2.32, а. Создание ландшафта с применением объекта типа Conform

Ìîäåëèðîâàíèå

155

б

в Рис. 2.32, б и в. Создание ландшафта с применением объекта типа Conform

156

Ãëàâà 2

г Рис. 2.32, г. Создание ландшафта с применением объекта типа Conform

активного окна). Именно поэтому получилось так "не красиво". Давайте исправим положение. Переключитесь на вид сверху (Top) и нажмите на кнопку Recalculate Projection (пересчитать). Как видите, все встало на свои места. Кроме этого способа, есть несколько других. Например, метод Along Vertex Normals (по нормалям вершин) позволяет вам "оборачивать" один объем другим на основании нормалей к вершинам оборачивающего объекта (Wrapper). Поэтому в нашем случае этот вариант также подходит. Методы Towards... (к...) позволяют оборачивать один объект другим, основываясь на проекции из точки центра или точки привязки того или иного объекта. Параметры в группе Wrapper Parameters (цифра 2) в нашем случае можно сделать равными 0, т. к. нам нужно точное соответствие одного объекта дру-

Ìîäåëèðîâàíèå

157

гому. Немного позднее при создании дорожки мы еще вернемся к обсуждению этих параметров. В группе Update (обновление) вы можете установить обновление вручную (Manually). Это полезно в том случае, когда процесс перерасчета занимает большое время. Установка флажка Hide Wrap-To Object (показано стрелкой 3) скрывает оборачиваемый объект, он вам не нужен. Кстати, вы уже скрыли исходный ландшафт? Наш файл на этом этапе называется Project1-terrain-07.max.

Ðåäàêòèðîâàíèå ëàíäøàôòà íà ïîëèãîíàëüíîì óðîâíå Ну, что же, такой ландшафт значительно более привлекателен, нежели исходный, и поддается дальнейшему редактированию на полигональном уровне. При этом он позволяет вам всегда вернуться к исходным объектам, это свойство составных объектов. А нужно ли иметь такую возможность? Было бы неплохо, и в принципе, это возможно. Достаточно дальнейшее редактирование проводить при помощи модификатора Edit Poly. Но это не рационально, т. к. при таком подходе процесс редактирования очень замедляется. Поэтому имеет смысл свернуть стек, предварительно сохранив нужные объекты или целиком проект.  Выделите и сохраните нужные объекты или сделайте копию всего про-

екта. Главное меню  File  Save Selected или Save Copy As  Преобразуйте объект Terrain (Plane) к типу редактируемых полигонов. Квадрупольное меню  Convert to  Convert to Editable Poly

 СОВЕТ Для дальнейшего редактирования вам будет необходимо периодически делать этот объект полупрозрачным. Для быстрого переключения в этот режим (в 3ds Max этот режим называется "See-Through") используется сочетание клавиш +. Но в случае использования слоев так, как было задано в начальных установках, это сочетание клавиш не работает. Вы должны устанавливать этот режим целиком для слоя (рис. 2.33, а). Если все же вы решите использовать этот режим локально для одного выбранного объекта, то предварительно нужно разъединить настройки объекта с настройками слоя, отжав кнопку By Layers (по слоям) в свойствах объекта (на рис. 2.33, б эта операция уже выполнена). Теперь для этого объекта доступны горячие клавиши.

Первое, что стоит сделать, — это расширить ландшафт до ограды или даже за пределы плана. Сделать это удобно следующим образом.  Перейдите к редактированию ребер (Edges) (клавиша ).  Выделите ребро на одной из сторон (помечено стрелкой 1 на рис. 2.34, а).

158

Ãëàâà 2

а

б Рис. 2.33. Управление прозрачностью объектов слоя целиком (а) и разделение настроек объекта и слоя (б)

 Расширьте выделение при помощи кнопки Loop (петля) (стрелка 2). При

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

Ìîäåëèðîâàíèå

159

 Перейдите в режим перемещения и, удерживая клавишу , перемес-

тите выбранные ребра по нужной оси ("схватившись" за стрелку) до "ограды", а потом дальше на 5—10 м, создав новые полигоны (рис. 2.34, б).  СОВЕТ Если вы хотите, чтобы в объекте существовали ребра, точно совпадающие с оградой, после первого перемещения уточните положение, задав координату по нужной оси цифрами в панели координат.

Точно так же поступите с остальными сторонами (рис. 2.34, в).

а

б Рис. 2.34, а и б. Расширение площади ландшафта

160

Ãëàâà 2

в Рис. 2.34, в. Расширение площади ландшафта

Следующее действие необязательное, но на наш взгляд весьма полезное. Заключается оно в том, чтобы перенести справочное изображение с плоскости непосредственно на ландшафт. Это сделает более удобным как процесс редактирования ландшафта, так и дальнейшее размещение объектов на нем. Для переноса материала с объекта на объект мы предлагаем воспользоваться инструментом, не совсем "прижившимся" в 3ds Max, а именно Schematic View. Этот инструмент дает графическое представление сцены. К сожалению, появившись в одной из ранних версий, этот инструмент не был развит до такого уровня, чтобы стать основным. При помощи него удобно выделять объекты, связывать их друг с другом, переименовывать, удалять, причем и скрытые объекты, и зафиксированные. А вот материалы и карты хотя и выделяются, не переносятся в редактор материалов. Очень хочется надеяться, что некоторые решения все же будут перенесены из Maya в 3ds Max, несмотря на разницу в идеологии этих пакетов. В нашем случае Schematic View позволяет сэкономить ряд действий и не забегать вперед, т. к. позволяет назначать материалы с одного объекта на другой минуя редактор материалов.  Откройте окно Schematic View. Главное меню  Graph Editors  New Schematic View  Сделайте видимым окно Display, нажав на кнопку Display Floater (стрел-

ка 1 на рис. 2.35), если оно не отображается, и в нем включите отображение материалов (стрелка 2).

Ìîäåëèðîâàíèå

161

Рис. 2.35. Перенос материала с объекта на объект в окне Schematic View

 Нажмите на кнопку Connect (стрелка 3 на рис. 2.35). Эта команда позво-

ляет привязывать один объект к другому, а также назначать материалы с одного объекта на другой.  Щелкните левой кнопкой мыши по материалу в ветке объекта Reference

Plane (у нас он называется Material #2), и, удерживая ее, потяните "ниточку" к объекту Terrain (Plane). Материал будет назначен на объект и отобразится в окне проекции. Не обращайте внимание на то, что карта отображается неправильно, сейчас вы это исправите.  Выделите объект Terrain (Plane) и примените к нему модификатор UVW Map. Главное меню  Modifiers  UV Coordinates  UVW Map

162

Ãëàâà 2

 ВАЖНО! Модификатор UVW Map, как и многие другие, может быть применен как к объекту целиком, так и к подобъектам. В нашем случае применять этот модификатор необходимо ко всему объекту. Если вы ошиблись (об этом в стеке модификаторов напоминает символ подобъекта справа от модификатора), то вернитесь вниз по стеку и выйдите из режима работы с подобъектами.

 В параметрах модификатора снимите флажок Real-World Map Size (ре-

альные размеры карты, рис. 2.36, стрелка 1).  Размеры контейнера (Gizmo) модификатора установите размеру плана

(цифра 2).

Рис. 2.36. Настройка отображения карты на объекте Terrain (Plane)

Ìîäåëèðîâàíèå

163

 Перейдите к подобъекту Gizmo (стрелка 3) и переместите его так, чтобы

его верхний правый угол совпадал с началом координат. Удобно это сделать, вводя координаты в панели координат (стрелка 4) в режиме перемещения. Нужные значения находятся путем несложных математических вычислений.  СОВЕТ Если все же вам непросто проводить такие вычисления в уме, вы можете использовать калькулятор Windows, перенося значения методом Copy/Paste, либо воспользуйтесь калькулятором, встроенным в 3ds Max (стрелка 5 на рис. 2.36). Он вызывается сочетанием клавиш +, когда курсор находится в окне ввода параметра.

Вот теперь можно скрыть все объекты, кроме Terrain (Plane). Для дальнейшего редактирования либо сверните стек объекта Terrain (Plane), либо примените модификатор Edit Poly выше по стеку. Второе действие предпочтительнее, т. к. позволяет вам вернуться к исходному состоянию, просто удалив модификатор. Главное меню  Modifiers  Mesh Editing  Edit Poly

Дальнейшее редактирование будет проводиться на уровне полигонов, и в основном будет заключаться в выделении нужных полигонов и перемещении по вертикальной оси (Z) на нужный уровень. Кроме этого, для некоторых участков будет изменена форма полигонов в плане, чтобы получить более плавные переходы между элементами ландшафта. Сначала исправьте простые участки, которые не требуют сложного моделирования, а именно основания под спортплощадку, задний двор, подъездную дорогу, стоянку и площадку под беседку. Все эти элементы правятся однотипно, поэтому подробно разберемся только с подъездной дорогой и стоянкой. Подъездная дорога и стоянка должны быть горизонтальными и находиться на высоте 20 см. Выделите полигоны, показанные на рис. 2.37, а.  СОВЕТЫ Прежде всего, вспомните о "зловредной" кнопке Keyboard Shortcut Override Toggle (Переключение режимов использования клавиатурных комбинаций) в главной панели. Отожмите ее, даже если она отображается отжатой, на всякий случай! Дело в том, что Edit Poly — это как раз такой модификатор, для которого назначены свои горячие клавиши, перекрывающие основные. Выделение полигонов проводите в режиме выделения (клавиша ), чтобы случайно не сдвинуть их в сторону.

164

Ãëàâà 2 Выделение удобно выполнять на виде сверху. При этом удобно использовать выделение кистью. Для этого выберите в выпадающем меню кнопок в главной панели режим Paint Selection Region (выделение рисованием) или несколько раз нажмите на клавишу . Удерживая клавишу , вы будете добавлять полигоны в выделение, а — исключать их из выделения. Отключите режим подкрашивания выделенных полигонов (клавиша ) и включите режим отображения ребер (клавиша ). Вполне возможно, что вам придется что-то изменить в дальнейшем, например, приподнять подъезд. Чтобы не выделять полигоны еще раз, сохраните выделение, введя имя в строке выпадающего списка Named Selection Sets (Поименованные наборы выделенных подобъектов) в главной панели, например "parking", и нажмите . В дальнейшем для выбора этих полигонов вам нужно будет только открыть этот список и выбрать нужное. Правда, хорошо это работает только в том случае, если вы не добавляете и не удаляете полигоны. В противном случае меняется нумерация полигонов со всеми вытекающими последствиями.

а Рис. 2.37, а. Формирование основания для подъездной дороги и заднего двора

Ìîäåëèðîâàíèå

165

б

в Рис. 2.37, б и в. Формирование основания для подъездной дороги и заднего двора

166

Ãëàâà 2

После того как вы выбрали нужные полигоны, выровняйте их по нужной оси (у нас это ось Z) командой Make Planar by Z (сделать плоскими по оси Z) Командная панель  Свиток Geometry  Кнопка "Z"

Не снимая выделения, расположите полигоны на нужном уровне по оси Z, перейдя в режим перемещения и введя нужное значение в панели координат (рис. 2.37, б). Точно также поступите с полигонами заднего двора, выделив их, выровняв и подняв на высоту 240 см (рис. 2.37, в). При выделении используйте выделение прямоугольником, это быстрее. Не забудьте про площадку для ели! Выглядит грубовато? Не страшно, после сглаживания и создания объектов для заднего двора и подъезда и "облицовки" бордюрным камнем все будет выглядеть очень неплохо. Кстати, пора уже удалить ненужные полигоны. Какие именно, показано на рис. 2.38.

Рис. 2.38. Удаление полигонов под домом

Основание спортивной площадки стоит сделать менее резко выделяющейся из ландшафта. Для этого, выделив нужные полигоны, примените мягкое выделение (Soft Selection), настроив его так, как показано на рис. 2.39, а.

Ìîäåëèðîâàíèå

167

 ПОЯСНЕНИЕ Включите режим мягкого выделения (стрелка 1 на рис. 2.39, а), установив флажок Use Soft Selection. На те полигоны, которые выделены "жестко", трансформации действуют абсолютно. В зоне, определяемой значением параметра Falloff (ослабление, цифра 2), происходит ослабление влияния по закону, настраиваемому параметрами Pinch и Bubble и отображаемому в виде кривой (цифра 3). Нажав на кнопку Shaded Face Toggle (затененные грани) (стрелка 4), включающую и отключающую режим отображения мягкого выделения в окне проекции в затененном виде, вам будет удобнее настраивать параметр Falloff.

Этот способ использования мягкого выделения быстр и прост в настройке, но обладает одним недостатком — зона мягкого выделения равномерно распределяется во все стороны. В нашем случае хотелось бы, чтобы основание спортивной площадки резко спадало к ограде, а по остальным направлениям было бы более плавным. Сделать это позволяет второй способ мягкого выделения — рисование этой области вручную. На рис. 2.39, б показан результат рисования области выделения.  ПОЯСНЕНИЕ Кнопки Paint, Blur и Revert (цифра 1) позволяют вам рисовать, размывать и соответственно отменять выделение. Параметр Selection Value определяет максимальное значение выделения в центре кисти, 1 соответствует 100%. Параметр Brush Strength определяет степень влияния кисти при одном проходе. При настройках на рисунке значение Selection Value будет достигнуто в результате 20 проходов кисти. Практически вы получаете вариант, известный как "Air Brush" (распылитель). Если вы хотите не добавлять, а уменьшать степень выделения, при рисовании удерживайте клавишу . Значение Brush Strength можно менять "на лету", удерживая одновременно +. Параметр Brush Sizе определяет размер кисти. Его также можно менять "на лету", удерживая клавиши +. Вы можете сами задать форму кисти, используя диалоговое окно Painter Options, которое открывается кнопкой Brush Option (стрелка 2). Обращаем ваше внимание на то, что поддерживаются планшеты с нажатием. Вы можете использовать предустановки кистей (Brush Presets) (цифра 3). Эта панель открывается так же, как и панель привязок, щелчком правой кнопки мыши на символе "||" панелей. Используя менеджер предустановок (Brush Preset Manager) (цифра 4), вы можете добавлять свои кисти.

После того как вы закончите рисование области выделения, выровняйте полигоны спортплощадки по оси Z и поднимите на 40 см. Точно так же сделайте площадку под беседку.

168

Ãëàâà 2

а

б Рис. 2.39. Редактирование полигонов спортплощадки

Ìîäåëèðîâàíèå

169

 ЗАМЕЧАНИЕ Установленный флажок Lock Soft Selection (зафиксировать мягкое выделение) даже после выхода из режима Soft Selection и повторного входа в него "заставляет" 3ds Max помнить о выделенных полигонах. Чтобы сбросить выделение, снимите этот флажок.

А вот с прудом и террасами немного больше возни. Вам придется кроме выравнивания полигонов и установки их на нужном уровне еще и перемещать вершины. Чтобы при этом не произошло искажение текстуры, показанное на рис. 2.40, а, установите флажок Preserve UVs (Сохранять текстурные координаты). Действие этого флажка показано на рис. 2.40, б. Командная панель  свиток Edit Geometry  флажок Preserve UVs

а

б Рис. 2.40. Иллюстрация действия флажка Preserve UVs

170

Ãëàâà 2

 Перемещая вершины, при необходимости используя мягкое выделение,

добейтесь того, чтобы ребра примерно повторяли контур пруда (рис. 2.41, а). Старайтесь, чтобы полигоны оставались "выпуклыми", т. е. внутренние углы между ребрами были меньше 180°.  ВАЖНО! Ни в коем случае не допускайте пересечения ребер! Это грубейшая ошибка!

При подобного рода моделировании нужно учитывать то, что будет на окончательной модели. Верхняя (северная) часть пруда будет представлять собой бассейн, а на побережье южной будут живописно "разбросаны" валуны. Поэтому особенно стараться не надо ни при редактировании северной, ни южной части. Забегая вперед, скажем, что к редактированию берегов вам придется вернуться еще не раз.

а Рис. 2.41, а. Моделирование пруда

Ìîäåëèðîâàíèå

171

б

в Рис. 2.41, б и в. Моделирование пруда

172

Ãëàâà 2

г

д Рис. 2.41, г и д. Моделирование пруда

Теперь нужно сделать углубление.  Выделите все полигоны внутренней части пруда любыми способами (рис. 2.41, б). Как вариант, вы можете выделить по одному полигону в центре северной и южной части и использовать кнопку Grow для расширения области выделения. Вам нужно позаботиться о том, чтобы после сглаживания ваш пруд сохранил свои берега. Если вы просто вдавите полигоны вглубь командой Extrude (выдавить), то после сглаживания получите нечто, похожее на рис. 2.41, в. Если это то, что нужно, то сделайте так. Если же это

Ìîäåëèðîâàíèå

173

е Рис. 2.41, е. Моделирование пруда

нежелательный результат, то надо немного усложнить геометрию по контуру пруда. Сделать это можно следующим образом:  Примените к выделенным полигонам команду Inset (вкладка) с небольшим значением (10—30 см, в зависимости от желаемого радиуса скругления) (рис. 2.41, г). Квадрупольное меню  "окошко" напротив команды Inset Введите значение и нажмите OK

То же самое можно сделать в интерактивном режиме, "на глаз", просто вызвав эту команду и потянув мышь, удерживая левую кнопку.  ВАЖНО! Следите за тем, чтобы в процессе выполнения команды не произошел перехлест полигонов. "Защиты от дурака" в этой команде, как и в некоторых других, не предусмотрено!

 Примените команду Extrude и вдавите выделенные полигоны на 10—

20 см (рис. 2.41, д). Квадрупольное меню  "окошко" напротив команды Extrude

174

Ãëàâà 2

 После этого вдавите полигоны на большую глубину (глубину пруда 2—

2,5 м) и еще немного, чтобы получить плоское дно.  СОВЕТ Чтобы не вызывать команду Extrude повторно, вместо кнопки OK нажимайте кнопку Apply (применить).

 Если вы хотите получить не плоское, а вогнутое дно, примените к выде-

ленным полигонам, или даже расширив выделение на стенки при помощи кнопки Grow, команду Relax (расслабить) (рис. 2.41, е). Командная панель  свиток Edit Geometry  Relax

 ЗАМЕЧАНИЕ Как видите, карта на поверхности "поплыла", несмотря на флажок Preserve UVs. Что поделать, "лекарства" на все случаи жизни не существует.

Рис. 2.42. Окончательный вид ландшафта

Ìîäåëèðîâàíèå

175

 СОВЕТ Сохраните выделение полигонов дна пруда так же, как вы сохраняли выделения других участков. Вполне возможно, что их придется удалить в дальнейшем.

Таким же образом сформируйте террасы справа и слева от дома. Используйте при этом все те методы, которые вы использовали ранее. Кроме этого, очень полезной является операция Relax для смягчения переходов в проблемных местах. Ландшафт готов (рис. 2.42)! Наш файл называется Project1-terrain-final.max. Итак, вы проделали огромную работу, давайте сделаем некоторые выводы. Данный метод, на наш взгляд, является наглядным доказательством того, что в случае отсутствия действительно точного и грамотно подготовленного (с точки зрения дальнейшего использования для построения трехмерной модели) чертежа нет никакого смысла использовать его для чего-то другого, кроме справочного материала. Проще сделать сразу плоскость и, используя методы полигонального моделирования, сформировать ландшафт. Второй вывод, который вы должны сделать — это то, что очень часто в 3ds Max приходится делать "все сразу". Несмотря на то, что мы старались сконцентрировать ваше внимание на моделировании, нам не удалось избежать применения инструментов, относящихся к материалам и текстурированию.

Ñîçäàíèå ëàíäøàôòà ïðè ïîìîùè ëîñêóòîâ (Patches) Этот метод позволяет вам создать ландшафт также на основе сплайнов, но при этом лишен недостатка составного объекта Terrain. На выходе вы получаете четырехугольную сетку, причем форма ее повторяет изолинии. Мы подготовили такой файл, он называется Project1-terrain-patches-start.max. Он показан на рис. 2.43, а. Если вы когда-нибудь интересовались судомоделированием, то вам будет понятна аналогия, которую мы приведем. Изолинии сейчас это не что иное, как "шпангоуты", поперечные сечения. Чтобы по ним создать поверхность, необходимо создать "стрингеры", продольные сплайны так, чтобы в результате получился каркас, состоящий из четырехугольников.  ЗАМЕЧАНИЕ Строго говоря, можно использовать и треугольники, и многоугольники, соединяя вершины с ребрами командой Bind, но лучше этого избегать.

Для того чтобы его использовать, нужно подготовить сплайны следующим образом:  Все сплайны должны быть объединены в один объект. Для этого сконвер-

тируйте один редактируемый сплайн из объектов и при помощи команды Attach Mult. присоедините все остальные объекты.

176

Ãëàâà 2

 Не должно быть наложенных сплайнов. Вы уже знаете, как их искать и как

с ними бороться.  Первые вершины каждого подобъекта-сплайна должны быть размещены

по одной стороне, в противном случае вы получите перехлесты продольных сечений.  Количество вершин в группах сплайнов, которые будут соединены

"стрингерами", должно быть одинаковым.  Форма сплайнов должна быть такой, чтобы опять же исключить перехле-

сты. Обратите внимание, что мы добавили вершины, помеченные стрелками на рис. 2.43, а, и, более того, разорвали сплайны при помощи команды Break. Когда все условия будут выполнены, можно начать создавать продольные сплайны. Для этого используется команда Cross Section. Но предварительно нужно решить, какая форма продольных сплайнов вам нужна. Для этого установите переключатель New Vertex Type в нужное положение (показано стрелкой 1 на рис. 2.43, б). В нашем случае подойдет Bezier Corner. Вот теперь можно создавать сечения.  Войдите в режим создания продольных сплайнов. Командная панель  свиток Geometry  Cross Section Щелкните левой кнопкой мыши на первом поперечном сплайне (помечено стрелкой 2 на рис. 2.43, б) Не удерживая левую кнопку мыши при перемещении, последовательно щелкните по всем нужным сечениям до сечения, помеченного стрелкой 3 Закончите команду Cross Section щелчком правой кнопки мыши

Какие возможны проблемы? Если сплайны подготовлены правильно, то особых проблем быть не должно, за исключением места, показанного на рис. 2.43, в. Решить эту проблему можно двумя путями. Первое решение — просто переместить соответствующую ручку Безье в нужное положение. Второе — при создании продольных сплайнов закончить создание в этом проблемном месте и затем продолжить с этого сечения. Именно так мы и предлагаем вам поступить, отменив только что сделанное действие. Аналогично создайте остальные "стрингеры". На рис. 2,43, г стрелками показана последовательность их создания.  ЗАМЕЧАНИЕ Не обращайте внимание на "петлю" на переднем плане. Она не помешает.

Наш файл на этом этапе называется Project1-terrain-patches-01.max.

Ìîäåëèðîâàíèå

177

 Создайте поверхность. Для этого примените модификатор Edit Patch (ре-

дактировать лоскуты). Главное меню  Modifiers  Patch/Spline Editing  Edit Patch

 ЗАМЕЧАНИЯ Именно модификатор! Ни в коем случае не преобразуйте объект к типу редактируемых лоскутов (Editable Patch), поверхность не будет построена! В старых книгах и уроках (да и в некоторых новых) вы можете найти упоминание о применении модификатора Surface (поверхность). Что же, это тоже вариант. Но зачем этим пользоваться, если эта возможность уже несколько лет присутствует в модификаторе Edit Patch? Ведь вам придется сразу достраивать поверхность, а выгоды от такого стека нет никакой. При применении модификатора Edit Patch нет необходимости следить за тем, с какими подобъектами он работает, он всегда применяется ко всему объекту.

Поверхность построена (рис. 2.43, д). Сразу перейдем к свитку с настройками построения поверхности. Командная панель  свиток Geometry  группы Spline Surface (поверхность по сплайнам) и Surface

Если поверхность не видна в окне проекции в затененном режиме отображения (в случае установленного флажка Backfacing Cull (отсечение граней, повернутых от наблюдателя)), или отображается черным цветом, то это означает, что поверхность инвертирована. Для преодоления этой проблемы установите флажок Flip Normals (инвертировать нормали). Обратите внимание на параметр Threshold (порог). Этот параметр определяет расстояние между вершинами сплайна, меньше которого будет принято решение, что вершины находятся в одной точке, и с учетом этого будет построена соответствующая поверхность. В нашем случае вершины совпадают, и этот порог может (и должен быть) очень маленьким. В случае если он большой, то вы можете не досчитаться нужных поверхностей, т. к. вершины сольются в одну. Количество шагов в группе Surface определяют сложность и гладкость поверхности в окне проекции (View Steps) и при рендеринге (Render Steps) и могут различаться, давая возможность при рендеринге получить более гладкую поверхность. Настройки интерполяции исходного сплайна не учитываются. Флажок Show Interior Edges (показывать внутренние ребра) позволяет вам увидеть истинную топологию поверхности. Имейте в виду, что при преобразовании в редактируемые полигоны будет перенесена именно внутренняя сетка. Если в дальнейшем предполагается дополнительное сглаживание, то

178

Ãëàâà 2

значение в поле View Steps стоит установить небольшим — будет достаточно 3. Включите флажок Show Interior Edges. Как видите, сетка не очень симпатичная (рис. 2.43, е). Связано это с тем, что ручки Безье исходного каркаса разной длины. Все это наследуется лоскутами. Можно ли это исправить? Да. Можно вернуться вниз по стеку. Вы получите предупреждение о том, что в стеке присутствует модификатор, критичный к изменениям внизу стека. Внизу по стеку можно перемещать вершины и ручки Безье, но ни в коем случае нельзя добавлять либо удалять подобъекты. В противном случае вам придется удалить модификатор Edit Patch и все начать заново! С тем же (и даже большим) успехом можно подправить ситуацию и уже на уровне модификатора Edit Patch. Для лоскутов предусмотрены подобъекты Handle (рис. 2.43, ж), работать с которыми значительно удобнее, нежели с вершинами.  СОВЕТ При редактировании положения ручек Безье вам может пригодиться возможность копирования и вставки параметров (свиток Geometry  группа Tangent). Нажмите кнопку Copy и щелкните по ручке, значение которой хотите запомнить. Нажав на кнопку Paste и щелкая по нужным ручкам, вы измените их положение и длину (при включенном флажке Paste Length) на запомненные. Кстати, аналогичная возможность существует и для сплайнов.

Вам не кажется, что чего-то не хватает? Совершенно верно, нужно достроить ландшафт. Лучше и правильнее это делать уже в лоскутах, поэтому и не были созданы дополнительные сплайны. С краевыми лоскутами все просто — нужно создать лоскуты (рис. 2.43, з). Квадрупольное меню  Create Patch Щелкайте по вершинам, обходя их против часовой стрелки. При этом курсор должен принимать форму маленького жирного крестика. Одну вершину поставьте на пустое пространство

С лоскутами, закрывающими "дырку", немного сложнее — вам не удастся сделать это одним лоскутом. Если вы сейчас начнете это делать, то вам придется создать один четырехугольный и один треугольный лоскут, что не очень хорошо. Поэтому мы предлагаем сначала усложнить геометрию. Для этого выделите ребра так, как показано на рис. 2.43, и, и соедините их командой Subdivide. После этого создайте два четырехугольных лоскута. В первом приближении все готово. Остается только довести все это до завершения, что, стоит признать, сделать весьма непросто.

Ìîäåëèðîâàíèå

179

а

б Рис. 2.43, а и б. Построение ландшафта с использованием лоскутов

180

Ãëàâà 2

в

г Рис. 2.43, в и г. Построение ландшафта с использованием лоскутов

Ìîäåëèðîâàíèå

181

д

е Рис. 2.43, д и е. Построение ландшафта с использованием лоскутов

Делаем выводы. Этот метод хорош в том случае, если вам нужно создать простой с точки зрения топологии ландшафт, например, холм или даже овраг. Главное, чтобы в нем не было проблемных мест — рукавов, раздваиваний и т. п. Совсем хорошо, если есть набор правильно подготовленных сечений. Наш случай — не самый походящий, но вы справились! Почти... Все равно придется переводить в полигоны и дорабатывать на этом уровне, так удобнее, или же использовать плоскость и составной объект Conform.

182

Ãëàâà 2

ж

з Рис. 2.43, ж и з. Построение ландшафта с использованием лоскутов

Ìîäåëèðîâàíèå

183

и Рис. 2.43, и. Построение ландшафта с использованием лоскутов

Наш файл на этом этапе называется Project1-terrain-patches-02.max — как видите, далеко не "final".

Ñîçäàíèå ëàíäøàôòà ïî ðàñòðîâîé êàðòå âûñîò В случае если вы владеете двумерными редакторами векторной и растровой графики, а для полноценной работы ими нужно владеть, мы хотим предложить вам еще один вариант, на наш взгляд, весьма оправданный в данном случае. Если в вашем распоряжении есть растровая карта высот, аналогичная той, что показана на рис. 2.44, то вы можете создать ландшафт, не прибегая на первом этапе к моделированию вообще. Как создать такую карту на основе существующих изолиний, рассказано в приложениях. Использовать ее можно двумя способами. Первый способ заключается в использовании этой карты на канале Displace (смещение) в составе материала, присвоенного объекту. В нашем случае это не самый лучший метод, т. к. при этом достаточно трудно добиться точности. Более полезным способом в нашем случае является использование модификатора Displace (рис. 2.45).  К созданной по размерам ландшафта плоскости с достаточным количест-

вом сегментов, например 60×60, примените модификатор Displace с настройками, приведенными на рис. 2.45. Главное меню  Modifiers  Parametric Deformers  Displace

184

Ãëàâà 2

Рис. 2.44. Растровая карта высот

 ПОЯСНЕНИЕ Этот модификатор сам не разбивает поверхность, поэтому о сложности ее вы должны позаботиться сами. В группе Image (изображение) вы можете назначить нужную карту, немного размыть ее с помощью параметра Blur. Обратите внимание, что можно использовать непосредственно изображение из файла минуя редактор материалов. В группе Displacement (смещение) вы задаете высоту смещения (Strength) и сдвиг (флажки Luminance Center и Center). Если второй параметр (Center) равен 0, то черный цвет будет интерпретирован как нулевой уровень, и вы получите только выпуклости. При значении 0.5 нулевым уровнем будет серый цвет, что дает вам и выпуклости, и впадины. Параметр Decay (затухание) в этом случае не используется и равен 0. Попробуйте его изменить и понять, на что он влияет. Так же в этом модификаторе предусмотрена настройка текстурных координат, аналогичная модификатору UVW Mapping.

Ìîäåëèðîâàíèå

185

Рис. 2.45. Создание ландшафта с использованием модификатора Displace

 ВАЖНО! Не путайте этот модификатор с модификатором VrayDisplacementMod! Это совсем разные вещи!

Наш файл с этим примером называется Project1-Terrain-DisplaceModifier.max.

Ìîäåëèðîâàíèå îáúåêòîâ ñðåäû Теперь мы переходим к наполнению ландшафта. Наверное, логично было бы сразу начать с дома. Но мы решили, что сразу браться за весьма сложное моделирование может оказаться затруднительным для тех, кто впервые сталкивается с 3ds Max. Поэтому мы пойдем по пути "от простого к сложному", предложив вам смоделировать более простые объекты.

186

Ãëàâà 2

Ïîäúåçäíàÿ äîðîãà è ñòîÿíêà Хорошим правилом является моделирование объектов в отдельных файлах. Но в нашем случае уместно моделировать некоторые объекты "по месту". Подъездную дорогу и стоянку мы предлагаем смоделировать единым объектом. Это удобно, т. к. они находятся на одном уровне.  Используя менеджер слоев, скройте слой Terrain и сделайте видимым слой References, так удобнее.  Создайте новый слой и сделайте его активным, переименуйте его в Road.  ВАЖНО! Обязательно проследите за тем, чтобы перед созданием нового слоя не был выделен ни один объект, иначе он попадет в этот слой!

На виде сверху создайте несколько прямоугольников (Rectangle) и кольцо (Donut) примерно нужных размеров и примерно в нужных местах (рис. 2.46, а). Главное меню  Create  Shapes  Rectangle, Donut

Начните с кольца. Перейдя в режим Modify, задайте для него внешний и внутренний радиусы и расположите как можно точнее (рис. 2.46, б). Поправьте размеры для прямоугольника, предназначенного для создания подъездной дороги (его ширина 320 см), и выровняйте его по центру относительно кольца по оси X. Сделать быстро это можно при помощи команды (или, точнее, процедуры) Align (выравнивание).  Выделите прямоугольник.  Запустите процедуру Align и выровняйте объекты по центрам по оси X. Главная панель  Align или + Щелкните левой кнопкой мыши на кольце Настройте параметры так, как показано на рис. 2.46, в, и нажмите OK

 ПОЯСНЕНИЕ

Нас интересует выравнивание только по оси X, поэтому снимите все флажки для остальных осей. Выравнивание осуществляется по центрам. Поэтому и в левой группе, относящейся к выравниваемому объекту, и в правой, относящейся к объекту, относительно которого производится выравнивание, выберите Center. Что такое Maximum и Minimum? Каждый объект в 3ds Max заключается в габаритный контейнер (Bounding Box), который обладает минимальным и максимальным значением по той или иной координате. При этом учитывается, в какой системе координат производится выравнивание.

Ìîäåëèðîâàíèå

187

Кроме выравнивания по координатам, есть возможность выравнивания по углам поворота (группа Align Orientation) и приведение в соответствие масштабов по разным осям (группа Match Scale).

Два остальных прямоугольника мы предлагаем "подгонять" уже тогда, когда объекты объединены в единый объект. На самом деле, если у вас есть точные размеры, то удобнее выровнять объекты до объединения. Но мы хотим показать вам несколько приемов, т. к. зачастую вы получаете "по наследству" именно кучку сплайнов.  Выделите кольцо (пора его переименовать, например, в Road).  Преобразуйте его к типу редактируемых сплайнов (Editable Spline). Квадрупольное меню  Convert to  Convert to Editable Spline

а Рис. 2.46, а. Моделирование подъездной дороги (часть 1)

188

Ãëàâà 2

б

в Рис. 2.46, б и в. Моделирование подъездной дороги (часть 1)

Ìîäåëèðîâàíèå

189

г

д Рис. 2.46, г и д. Моделирование подъездной дороги (часть 1)

190

Ãëàâà 2

 ЗАМЕЧАНИЕ А нельзя ли применить модификатор... Конечно, можно, это уже известный модификатор Edit Spline, он обладает теми же функциональными возможностями, что и объект типа Editable Spline, за исключением настроек интерполяции и настроек рендеринга.

 Присоедините (Attach) к объекту Road все остальные объекты. Квадрупольное меню  Attach Щелкайте левой кнопкой мыши по объектам. Для завершения нажмите правую кнопку мыши

Теперь это единый объект. Осталось подправить форму, удалить лишнее и, возможно, добавить недостающее. Благодаря тому, что все подобъекты-сплайны замкнутые и лежат на одной плоскости, вы можете использовать логические, "булевы" операции для этого типа подобъектов.  ЗАМЕЧАНИЕ Эти команды являются специфичными для Editable/Edit Spline и ничего общего не имеют с составными объектами Boolean и ProBoolean!

 Перейдите к редактированию сплайнов (клавиша ).  Выделите внешнюю окружность (помечено стрелкой 1 на рис. 2.46, г).  Настройте булевы операции на объединение и проведите объединение. Свиток Geometry  Union (стрелка 2) Нажмите кнопку Boolean (стрелка 3) и щелкайте левой кнопкой мыши по сплайнам в последовательности, показанной стрелками 4, 5, 6

Вы должны получить форму, показанную на рис. 2.46, д. Бывает, что Boolean "отказывается" выполнять операцию. В этом случае попробуйте провести ее в обратном порядке, для объединения последовательность не важна. Вы получили замкнутый контур. Теперь нужно его отредактировать так, чтобы он соответствовал желаемой форме. Что в нем не так? Проблемные места показаны на рис. 2.47, а. Стрелками 1 и 2 отмечены лишние вершины, причем в первом случае у вас может получиться не одна, а две вершины. В любом случае выделите их и удалите. Это приведет к искривлению формы. В принципе, ничто не мешает вам исправить это "на глазок". Но так делать не стоит.

Ìîäåëèðîâàíèå

191

Для исправления ситуации мы предлагаем воспользоваться привязками.  Настройте привязки только по вершинам (показано стрелкой 1 на рис. 2.47, б), т. к. именно вершины относительно других вершин вы и будете выравнивать. Если сейчас попробовать включить привязки (клавиша ), выделить вершину и попытаться ее переместить, то ось, по которой настроено перемещение, будет проигнорирована. Чтобы этого не произошло, включите режим использования ограничения по осям (стрелка 2).  Выделите нужную вершину.  Выберите ось, по которой нужно ее переместить (в нашем случае это ось X).

а

б Рис. 2.47, а и б. Моделирование подъездной дороги (часть 2)

192

Ãëàâà 2

в Рис. 2.47, в. Моделирование подъездной дороги (часть 2)

 Перейдите в режим перемещения и подведите курсор к этой вершине.

Должен появиться синий крестик.  Схватитесь за вершину и перемещайте ее. Курсор при этом подведите к

той вершине, относительно (рис. 2.47, б, стрелка 3).

которой

производится

выравнивание

 Точно так же выровняйте и другую вершину.

 СОВЕТ На всякий случай выделите вершины, образующие прямой угол, и преобразуйте их к типу "угол" (Квадрупольное меню  Corner).

Пора переименовать объект, например, в Road.  Примените к нему модификатор Extrude (вытягивание) и настройте так,

как показано на рис. 2.47, в. Главное меню  Mesh Editing  Extrude

Ìîäåëèðîâàíèå

193

 ПОЯСНЕНИЕ Чтобы контролировать результат, сделайте видимым слой с ландшафтом. Параметр Amount модификатора Extrude сделайте чуть больше уровня ландшафта. Ни в коем случае не допускайте наложения полигонов! Это грубейшая ошибка, чреватая многими проблемами при рендеринге! Для экономии ресурсов можно снять флажок Cap Start, при этом не будет создана поверхность внизу. В группе Output задается тип объекта, который будет создан. Использование лоскутов (Patch) или NURBS не дает никаких преимуществ, поэтому оставьте этот параметр в положении Mesh. Установка флажков Generate Mapping Coords. и Real World Map Size (генерировать текстурные координаты с использованием реальных размеров) дает вам возможность в дальнейшем быстро и точно наложить текстуру.

Если вы все сделали так, как было описано, то у вас не должно быть проблем. Если вы не получаете поверхности сверху, значит, у вас, возможно, имеются следующие ошибки. Первая проблема — это необъединенные вершины. Вернитесь вниз по стеку и проверьте ваш сплайн. Можно выделить все вершины и попытаться "сварить" их командой Weld Vertices. Квадрупольное меню  Weld Vertices

Вторая проблема, приводящая к такому результату, — это имеющиеся "петли" в сплайнах, которые могут возникнуть, например, из-за перехлеста ручек Безье. Если сплайн сложный, то отследить такое место непросто. Для этого можно воспользоваться утилитой Shape Check, предварительно отменив действие модификатора Extrude, "выключив лампочку" в стеке. Командная панель  подпанель Utilities  More...  Shape Check Нажмите кнопку Pick Object и щелкните левой кнопкой мыши на сплайне

Если все в порядке, то вы получите сообщение "Shape OK", если нет — то сообщение о пересечении сегментов, которые будут помечены в окне проекции красными квадратиками. Третья проблема может заключаться в том, что в сплайне содержатся двойные подобъекты-сплайны. Симптомом может служить то, что в том месте, где предполагается отверстие, после применения модификатора Extrude находится сплошная поверхность, и наоборот. Давайте критически рассмотрим результат. Все хорошо, но есть один недостаток — угловатость круга. Решается это путем возврата вниз по стеку к уровню редактируемых

194

Ãëàâà 2

сплайнов и изменению количества шагов интерполяции в соответствующем свитке. Но нужно ли это делать? Торец дороги и снаружи, и внутри будет прикрыт бордюрным камнем, середина которого будет проходить по краю дороги. Поэтому усложнять геометрию, вполне возможно, не стоит. Учитесь быть экономными, в таких проектах это очень важно — 1000 лишних полигонов там, 1000 сям — и 3ds Max уже не в состоянии обработать геометрию. Самое время сделать бордюр. Мы предлагаем вам несколько способов, какой из них выбрать — решать вам. Начало для всех способов одинаковое.  Сделайте копию объекта Road (сочетание клавиш +) и назовите

ее Road Border (рис. 2.48, а).  Удалите модификатор Extrude из стека. Контекстное меню стека модификаторов  Delete или кнопка Remove modifier  Удалите ненужные сегменты и переместите вершины так, как показано на

рис. 2.48, б. А вот дальше возможны варианты. Если бордюр несложный и не очень важен, то можно воспользоваться возможностью 3ds Max использовать сплайны при рендеринге.  Откройте свиток Rendering и настройте параметры, например, так, как

показано на рис. 2.49, а.  ПОЯСНЕНИЕ При помощи флажков Enable In Renderer и Enable In Viewport вы получите отображение сплайна, как при рендеринге, так и в окнах проекции соответственно. Флажки Generate Mapping Coords. и Real-World Map Size (генерировать текстурные координаты с использованием реальных размеров), как и в случае с модификатором Extrude, дают вам возможность в дальнейшем быстро и точно наложить текстуру. Задайте форму и размеры вашего бордюра при помощи соответствующих параметров. И, наконец, увеличьте количество шагов интерполяции до разумного значения.

После того как вы поднимете объект на нужную высоту над дорогой, вы получите аккуратный бордюр прямоугольной формы (рис. 2.49, б). В том случае, если бордюрный камень имеет более сложное сечение, можно воспользоваться модификатором Sweep (рис. 2.50, а, б). Главное меню  Modifiers  Patch/Spline Editing  Sweep

Ìîäåëèðîâàíèå

195

а

б Рис. 2.48. Создание заготовки для бордюра

196

Ãëàâà 2

а

б Рис. 2.49. Использование возможности рендеринга сплайнов для создания бордюра

Ìîäåëèðîâàíèå

197

 ПОЯСНЕНИЕ Модификатор Sweep является упрощенным вариантом составного объекта Loft. Смысл его действия заключается в "прогоне" сечения по пути. Путь, в отличие от Loft, может содержать несколько подобъектов-сплайнов, что позволяет легко создавать плинтуса, бордюры и достаточно сложные наборные конструкции. В модификаторе Sweep уже заложены несколько сечений, каждое из которых имеет свой собственный набор параметров и собственный механизм управления интерполяцией (стрелки 1 на рис. 2.50, а). Кроме этого, есть возможность использовать собственное сечение, которое также может состоять из нескольких подобъектов-сплайнов. Для того чтобы его использовать, переключитесь в режим Use Custom Section, нажмите на кнопку Pick и щелкните на сечении, которое вы подготовили (стрелки 1 на рис. 2.50, б). Переключатели Move, Instance и т. д. несут тот же смысл, что и в составных объектах. Стоит использовать именно Instance, т. к. связь в этом случае с сечением не теряется, и вы всегда можете его подправить или изменить те или иные параметры, например, интерполяцию сечения. При использовании модификатора Sweep возможны ситуации, когда сечение повернуто не той стороной или прогоняется не по нужной точке. Это может привести к тому, что, например, плинтусы могут быть утоплены в стену или пол и перевернуты. Решается все это набором параметров в свитке Sweep Parameters. Верхние параметры (цифра 2) отвечают за ориентацию сечения, а нижние (цифра 3) — за точку на сечении, которая будет использована в качестве точки для прогона. В нашем случае сложилась ситуация, когда исправить ошибку, отмеченную стрелкой 4 (бордюрный камень повернут в одном случае скосом к дороге, а в другом — от нее), средствами самого модификатора Sweep невозможно. Чтобы исправить положение, вернитесь вниз по стеку, выделите те подобъектысплайны, в которых есть проблемы, и реверсируйте их (свиток Geometry  Reverse). Если сечение незамкнутое (как в нашем случае), то концы не будут "заделаны". Но это нестрашно, т. к. они будут примыкать одной стороной к столбам ворот, а второй — к бордюру гаража. Если вы ошиблись с размерами сечения, то будете удивлены тем, что масштабирование сечения как объекта с помощью команды Select and Uniform Scale не дает желаемого результата. Информация о масштабировании, положении и повороте объекта не передается модификатору Sweep. Такая же ситуация имеет место быть и в случае составных объектов (Loft, ShapeMerge и т. д.) и некоторых модификаторов. Выходом в данном случае является применение к сечению модификатора XForm (Главное меню  Modifiers  Parametric Deformers) и масштабирование или поворот его контейнера (Gizmo) или работа на уровне подобъектов сечения, либо операнда. После того как все готово, сечение можно удалить. Чтобы редактировать его, нужно использовать команду Extract.

198

Ãëàâà 2

а

б Рис. 2.50. Создание бордюра с помощью модификатора Sweep

Ìîäåëèðîâàíèå

199

И, наконец, еще один момент. Сейчас не учитывается тот факт, что бордюрный камень представляет собой прямолинейные отрезки. Если это очень важно, то можно применить к исходному сплайну Road Border модификатор Normalize Spl. (Spline) и задать "длину камня" в сантиметрах (рис. 2.51). Интерполяцию сплайна ниже по стеку установите равной 0, а появившиеся проблемы (показаны стрелками на рис. 2.51) решите, применив модификатор Editable Spline и отредактировав вершины, возможно, добавляя их командой Refine. Главное меню  Modifiers  Patch/Spline Editing  Normalize Spline, Edit Spline

 ЗАМЕЧАНИЕ Вполне возможно, что эти модификаторы будут недоступны для применения. В этом случае временно отключите действие модификатора Sweep в стеке, "погасив лампочку" напротив модификатора. Не забудьте потом ее включить!

 СОВЕТ Если вы не хотите "тянуть за собой" весь стек модификаторов, то можете свернуть его ниже модификатора Sweep командой Collapse To (свернуть к...) из контекстного меню стека модификаторов.

Какой из способов использовать — решайте сами. Мы остановились на последнем. Наш проект на этом этапе называется Project1-01.max, стек при этом не свернут.

Рис. 2.51. Использование модификатора Normalize Spl. для создания одинаковых "бордюрных камней"

200

Ãëàâà 2

Ìîäåëèðîâàíèå çàäíåãî äâîðà è ôóíäàìåíòà Задний двор и фундамент можно моделировать так же, как и подъездную дорогу, используя сплайновые примитивы, а можно создать контур, рисуя его "от руки" на виде сверху (рис. 2.52, а). Главное меню  Create  Shapes  Line

 СОВЕТЫ Вам нужна ломаная линия. По умолчанию при создании линии в 3ds Max используются настройки, при которых простой щелчок мыши приводит к созданию вершины типа Corner (угловой), а удержание — Bezier (Безье). Чтобы не путаться (хотя это не страшно, всегда можно изменить тип вершин впоследствии), установите настройки для создания линии так, как показано на рис. 2.52, а (стрелка 1). Чтобы провести горизонтальную или вертикальную линию, удерживайте клавишу , а линию под углом к предыдущему сегменту — . Значение угла при этом показывается в строке статуса внизу. Настраивается угол в диалоговом окне настроек сетки и привязок (Главное меню  Customize  Grid and Snap Settings  вкладка Options) и по умолчанию равен 5°. Если вы случайно поставили вершину не туда, отмените действие клавишей . При создании линии всегда есть вероятность, что вы выйдете за пределы экрана. Не нажимайте среднюю кнопку мыши, чтобы переместить вид. Используйте для этого клавишу , иначе вы закончите создание линии. А вот колесико вращать можно. Уже нажали? Не страшно, продолжайте создавать контур. При этом можно снять флажок Start New Shape (начать новую кривую), это даст вам возможность не использовать в дальнейшем команду Attach для объединения объектов в единый объект. Чтобы начать новую линию точно в той точке, в которой вы закончили, используйте возможность 3ds Max назначить привязку по вершинам на одну операцию (рис. 2.52, б) (+Правая кнопка мыши  квадрант Snap Override  Standard  Vertex). Обратите внимание, что в этом меню много полезного, как, впрочем, и в меню, открывающихся сочетанием , и правой кнопки мыши.

После того как вы закончили создание контура, перейдите в панель Modify (любой клавишей от до на основной клавиатуре). Если вы избежали разрывов, то вам нужно просто аккуратно подвинуть вершины, возможно, используя привязки, как было описано ранее. Если все же были разрывы, то нужно объединить вершины. Если вы использовали привязки при создании нового сплайна, то для этого достаточно выделить все вершины (+) и объединить их командой Weld Vertices. Квадрупольное меню  Weld Vertices

Ìîäåëèðîâàíèå

201

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

а

б Рис. 2.52, а и б. Моделирование заднего двора

202

Ãëàâà 2

в Рис. 2.52, в. Моделирование заднего двора

 Когда все будет готово, примените модификатор Extrude и вытяните кон-

тур на 241—242 см, т. е. немного выше верхней точки ландшафта (рис. 2.52, в). Не забудьте поставить те же самые флажки, что и в случае дороги. Сделать бордюр вы сможете сами. Назовите его Back Yard Border.  ЗАМЕЧАНИЕ Вы не забыли создать новый слой? Если забыли, то сделайте это сейчас. Если объекты Back Yard и Back Yard Border при этом будут выделены, то они автоматически переместятся в этот слой.

Теперь хорошо видны огрехи моделирования ландшафта. Что же, немного подредактировать его не сложно. Наш проект на этом этапе называется Project1-02.max.

Ìîäåëèðîâàíèå

203

Áîðäþðû äëÿ òåððàñ Создайте новый слой, назовите его Terraces. Перед созданием слоя убедитесь, что ни один объект не выделен, иначе он попадет в новый слой. Это уже случилось? Ничего страшного, просто отмените действие (+). Это приведет к тому, что объекты "вернутся" в свой слой, и новый слой станет пустым.  На виде сверху создайте несколько отрезков, объектов типа Line, по размеру бордюров для террас (рис. 2.53, а).  СОВЕТ Перед созданием сразу задайте нужное число шагов интерполяции, чтобы не делать этого в дальнейшем.

 Переименуйте их в Terrace Borders ## (## — 01, 02, 03 и т. д.). Удобно это

сделать, используя инструмент Rename Objects, предварительно выделив все эти объекты (рис. 2.53, б). Главное меню  Tools  Rename Objects

 ПОЯСНЕНИЕ Задайте базовое имя (Terrace Borders). Используя нумерацию, вы получите как раз объекты с именами Terrace Borders01, Terrace Borders02 и т. д.

 Примените ко всем объектам модификатор Edit Spline. Главное меню  Modifiers  Patch/Splinе Editing  Edit Spline  Выделите все вершины, измените их тип на Bezier и, редактируя ручки

(handles) Безье, придайте нужную форму (рис. 2.53, в).  Перейдите к редактированию подобъектов-сплайнов, выделите все сплайны и при помощи команды Outline придайте толщину (рис. 2.53, г). Свиток Geometry  введите значение в поле Outline, например, 20 см, и нажмите клавишу

 ЗАМЕЧАНИЯ При работе с числовыми параметрами со сплайнами следует помнить следующее. Нельзя щелкать на спиннере, такой щелчок приводит к изменению на маленькое значение. Спиннеры нужно тянуть! Вас не должен обескураживать тот факт, что после ввода значения и нажатия на значение сбрасывается в ноль. Все правильно, команда снова готова к работе и ждет от вас нового ввода.

 Примените модификатор Extrude сразу ко всем объектам (рис. 2.53, д).

204

Ãëàâà 2

а

б

в Рис. 2.53, а—в. Моделирование бордюров для террас

Ìîäåëèðîâàíèå

205

г

д Рис. 2.53, г и д. Моделирование бордюров для террас

206

Ãëàâà 2

е Рис. 2.53, е. Моделирование бордюров для террас

Обратите внимание, что в стеке модификаторов и Edit Spline, и Extrude отображаются наклонным шрифтом. Это означает, что они связаны с модификаторами, примененными к каким-либо другим объектам. Изменение параметров модификаторов для одного объекта приведет к изменению параметров для всех остальных. Разорвать связь можно при помощи команды Make Unique (сделать уникальным).  Расставьте бордюры на нужной высоте (рис. 2.53, е). Вполне возможно,

что вам опять придется подкорректировать ландшафт. Наш проект на этом этапе называется Project1-03.max.

Áåãîâàÿ äîðîæêà По периметру участка проложена беговая дорожка. Сделать ее можно несколькими способами. В этом разделе вы попробуете сделать ее с помощью геометрии. То же самое можно сделать при помощи текстур, смешав разные материалы через маску. Как лучше? Как больше нравится. И тот и другой способ имеют свои достоинства и недостатки. Например, при использовании геометрии и того способа, который мы предлагаем, весьма просто изменить положение дорожки, при этом она будет повторять форму ландшафта, и наоборот — изменение ландшафта будет передаваться дорожке. Но, как вы увидите, есть вероятность того, что дорожка "проникнет" сквозь ландшафт. Для реализации этого способа вы уже знаете достаточно, чтобы сделать это самостоятельно. Дорожка сделана с помощью модификатора Sweep, и при помощи составного объекта Conform приведена в соответствие с ландшафтом.  На виде сверху создайте сплайн (объект типа Line) по форме дорожки. Удобно при этом использовать тип вершин Smooth (рис. 2.54, а). Форма кривой при этом зависит только от взаимного расположения вершин.  ЗАМЕЧАНИЕ Конечно, предварительно создайте новый слой.

Ìîäåëèðîâàíèå

207

 Перейдите в режим Modify и отредактируйте форму сплайна на уровне

вершин.  Кроме этого, удалите ненужный сегмент (рис. 2.54, б).  Переименуйте объект. У нас этот объект называется Footpath Spline.  Вполне возможно, что вам придется добавить вершины командой Refine.

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

ны типа Smooth, не удастся. Преобразуйте при необходимости некоторые вершины к типу Bezier. Квадрупольное меню  Bezier  Интерполяцию сплайна сделайте побольше, и снимите флажок Optimize.

Зачем — будет рассказано далее.  На этом же виде создайте горизонтальный отрезок длиной примерно 1 м.

При создании ориентируйтесь на сетку, а если вы включите соответствующую привязку, то создать такой отрезок не составит труда. Напомним, что отображение сетки включается и отключается при помощи клавиши , а шаг сетки задается в диалоговом окне Grid and Snaps Settings. Главное меню  Customize  Grid and Snap Settings  вкладка Home Grid

Можно ли создавать объекты, вводя значения непосредственно с клавиатуры? В 3ds Max предусмотрена такая возможность, и если для большинства примитивов большого смысла в ее использовании нет, то в случае с линией, возможно, это будет полезным (рис. 2.54, в).  ПОЯСНЕНИЕ Для создания объектов по числовым значениям используется свиток Keyboard Entry (ввод с клавиатуры). Для линии этот процесс выглядит следующим образом: введите координаты начальной точки (в нашем случае все равно, пусть это будет 0,0,0) и нажмите кнопку Add Point. После этого введите координату следующей точки (100,0,0). Чтобы закончить построение линии, нажмите кнопку Finish. Для создания замкнутой линии используется кнопка Close. В качестве координат используются абсолютные значения в мировой системе координат. Чтобы воспользоваться приращениями, нужно ввести лидирующую букву "r" и после этого значение приращения. Например, запись "r10" дает положительное приращение на 10 единиц, а "r-10" — отрицательное.

 Примените к объекту Footpath Spline модификатор Sweep и настройте так,

как показано на рис. 2.54, г. Главное меню  Modifiers  Patch/Spline Editing  Sweep

208

Ãëàâà 2

 ПОЯСНЕНИЕ В свитке Section Type выберите переключатель Use Custom Section и, используя кнопку Pick, подгрузите созданный отрезок. 3ds Max запоминает предыдущие настройки объектов, поэтому отрезок, скорее всего, будет разделен на 12 шагов (помните, вы изменяли интерполяцию и сняли флажок Optimize?). Выделите этот отрезок и установите флажок Optimize или установите количество шагов равным 0. Поверхность дорожки односторонняя, но из-за установок по умолчанию в окне проекции отображается как двусторонняя. В данном конкретном случае очень важно знать, где какая сторона. Поэтому откройте настройки объекта (Квадрупольное меню  Properties) и установите флажок Backface Cull (стрелка 1 на рис. 2.54, г). Если поверхность вывернута, т. е. не видна на виде сверху, то воспользуйтесь либо флажками в свитке Sweep Parameters, либо вернитесь вниз по стеку и измените ориентацию (реверсируйте) нужных сплайнов. Не забудьте установить флажки Generate Mapping Coords. и Real-World Map Size.

 Поднимите дорожку выше ландшафта.  Перейдите на вид сверху, создайте на основе дорожки объект типа

Conform и настройте его так, как показано на рис. 2.54, д. Главное меню  Create  Compound  Conform Кнопка Pick Wrap-To Object  щелкните на ландшафте

 ПОЯСНЕНИЕ С этим объектом вы уже встречались, поэтому поясним только то, что было изменено. Прежде всего, скройте копию ландшафта, установив флажок Hide Wrap-To Object (стрелка 1 на рис. 2.54, д). Как видите, полученный объект унаследовал материал ландшафта. Это не очень удобно, поэтому назначьте ему какой-нибудь материал. Для этого откройте редактор материалов (клавиша ), выберите любой незадействованный слот и присвойте материал объекту при помощи кнопки Assign Material to Selection. Увеличьте расстояние поверхности дорожки от поверхности ландшафта до 5 см (стрелка 2).

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

свитке Parameters. Удобно при этом переключиться на отображение операндов, а не результата (стрелка 3).

Ìîäåëèðîâàíèå

209

 Опуститесь вниз по стеку к нужному уровню и добавьте

вершины командой Refine. Так же можно при необходимости перемещать вершины. Если это не помогает (а это может случиться, т. к. Conform выравнивает вершины одного объекта по поверхности другого, а не поверхность по поверхности), то можно выбрать ландшафт и подредактировать его. Вы не забыли проверить, чтобы он был включен в состав объекта Conform методом Instance? И последний шаг. Сейчас дорожка "левитирует" над ландшафтом. Давайте избавимся от этого чуда!  Примените к объекту модификатор Edit Poly. Главное меню  Mesh Editing  Edit Poly

а Рис. 2.54, а. Моделирование беговой дорожки

210

Ãëàâà 2

б

в Рис. 2.54, б и в. Моделирование беговой дорожки

Ìîäåëèðîâàíèå

211

г Рис. 2.54, г. Моделирование беговой дорожки

 Выделите любое поперечное ребро и, используя команду Ring, выделите

все ребра, параллельные этому.  Примените команду Connect с параметрами, показанными на рис. 2.54, е. Пояснять тут нечего. Квадрупольное меню  поле напротив команды Connect  Перейдите к подобъекту Border (граница), выделите открытые ребра и пе-

реместите их вниз по оси Z (рис. 2.54, ж). Все готово!  ЗАМЕЧАНИЕ А почему бы не сделать такую симпатичную дорожку до создания объекта Conform? В этом нет смысла, т. к. при создании этого объекта исходная геометрия "расплющивается" по поверхности другого.

И вот теперь настало время объяснить, почему мы советовали вам снять флажок Optimize.

212

Ãëàâà 2

д

е Рис. 2.54, д и е. Моделирование беговой дорожки

Ìîäåëèðîâàíèå

213

ж Рис. 2.54, ж. Моделирование беговой дорожки

Попробуйте вернуться в стеке модификаторов к уровню объекта Conform. Вы получите предупреждение о том, что в стеке присутствует модификатор, результат которого зависит от геометрии ниже по стеку. В данном случае это модификатор Edit Poly. Что можно и что нельзя делать сейчас внизу по стеку? Можно перемещать вершины сплайна, изменяя форму дорожки в плане. Собственно, для этого и было создана такая структура. Ни в коем случае нельзя изменять количество вершин и параметры интерполяции. Какие проблемы могут возникнуть при этом, было описано в главе 1. Итак, о флажке Optimize. При редактировании положения вершин есть вероятность, что какой-либо сегмент примет форму прямой. В том случае, если флажок Optimize снят, это никак не повлияет на результат. Если же он установлен, то выпрямленный сегмент не будет разбиваться на промежуточные отрезки, что приведет к изменению нумерации подобъектов выше по стеку и некорректной с точки зрения окончательного результата работе модификатора Edit Poly.

Áàññåéí По проекту пруд предполагалось оставить в первозданной простоте, разве что предусмотреть ступени для входа в воду. Исключительно для того, чтобы показать, как это делается, мы решили немного изменить проект. Одна половина пруда будет оформлена как бассейн, вторая будет представлять "уголок дикой природы". Разделены они будут несложным мостиком.

214

Ãëàâà 2

Окружение пруда мы предлагаем вам создавать непосредственно в сцене основного проекта, все остальное будет создано в отдельных файлах. Наш файл на этом этапе называется Project1-06.max. Конечно, вы можете использовать свой собственный. На рис. 2.55 представлен чертеж с проставленными размерами. На него мы и предлагаем ориентироваться.

Рис. 2.55. Чертеж бассейна

Неплохо бы, конечно, подложить чертеж так же, как и в предыдущих случаях, но в этом нет необходимости благодаря проставленным размерам.  Сделайте невидимыми все слои, они вам не понадобятся на первом этапе.  Создайте новый слой, назовите его, например, Pool.  Постройте необходимый набор сплайнов (рис. 2.56, а) нужного размера.

Чертеж бассейна прекрасно "распадается" на геометрические фигуры, точнее, на их основе он и был построен.  ПОЯСНЕНИЕ Основа бассейна — эллипс со сторонами 10 на 8 м. Он определяет внутренний размер бассейна. Для создания бортика будут использованы два альтернативных решения, они рассмотрены немного позже. Два прямоугольника со скругленными краями понадобятся для создания площадки вокруг бассейна. Радиус скругления — 1 м. Окружности использованы для создания ступеней. Радиусы — от 6 до 7,2 м с шагом 20 см.

Ìîäåëèðîâàíèå

215

Пока все объекты не объединены, выровняйте их относительно друг друга, используя команду Align.  Выровняйте большой прямоугольник относительно эллипса по центрам по оси X, а по оси Y — минимальным значением относительно центра. Выделите большой прямоугольник Запустите команду Align (сочетание +) и щелкните левой кнопкой мыши по эллипсу Настройте параметры в диалоговом окне так, как показано на рис. 2.56, б

 ПОЯСНЕНИЕ Как уже писалось ранее, объекты в 3ds Max заключаются в габаритный контейнер (Bounding Box), который имеет центр, максимальное и минимальное значение по каждой из осей. В данном случае выравнивание ведется по центрам по оси X.

 Нажмите кнопку Apply (применить), чтобы изменения вошли в силу и при

этом вы не вышли из настроек. Обратите внимание, что настройки осей сбросились.  Настройки по оси Y показаны на рис. 2.56, в. Пояснять, нам кажется, здесь нечего.  Закончите выравнивание, нажав на кнопку OK.  Выровняйте меньший прямоугольник относительно большего по оси X по "минимумам" (рис. 2.56, г). Положение по оси Y не принципиально, важно только, чтобы прямоугольники пересекались.  Окружности-"ступени" выровняйте относительно друг друга так, как показано на рис. 2.56, д. При этом можно выделить сразу несколько окружностей и выровнять их по отношению к другой. Мы думаем, что вы прекрасно справитесь с этой задачей самостоятельно. Теперь нужно выровнять все ступени относительно эллипса. Для того чтобы они не рассыпались, временно сгруппируйте их (рис. 2.56, е).  Выделите все окружности и сгруппируйте их. Главное меню  Group  Group Введите любое имя или оставьте без изменения, т. к. вам придется разгруппировывать их в самое ближайшее время  Выровняйте эту группу центром относительно минимума эллипса по оси X

и минимумом относительно центра по оси Y (рис. 2.56, ж).  ЗАМЕЧАНИЕ Может показаться, что выравнивание проходит некорректно, но это не так. Дело в том, что точка привязки (Pivot Point) группы не совпадает с геометрическим центром группы. Она совпадает с геометрическим центром фигуры, построенной по точкам привязки членов группы.

216

Ãëàâà 2

а

б Рис. 2.56, а и б. Моделирование бассейна. Этап 1

Ìîäåëèðîâàíèå

217

в

г Рис. 2.56, в и г. Моделирование бассейна. Этап 1

218

Ãëàâà 2

д

е Рис. 2.56, д и е. Моделирование бассейна. Этап 1

Ìîäåëèðîâàíèå

219

ж Рис. 2.56, ж. Моделирование бассейна. Этап 1

 Разгруппируйте окружности. Главное меню  Group  Ungroup

Все необходимые объекты готовы. Площадка вокруг бассейна делается просто — необходимо объединить нужные объекты в единый объект, удалить лишнее и вытянуть полученный сплайн модификатором Extrude.  Cделайте копию (именно Copy!) эллипса, выделив его и применив команду Clone (сочетание +), он вам еще понадобится.  Преобразуйте копию эллипса к типу Editable Spline. Квадрупольное меню  Convert To  Convert To Editable Spline  Присоедините к нему оба прямоугольника командой Attach. Квадрупольное меню  Attach Щелкните левой кнопкой мыши по прямоугольникам и закончите команду Attach нажатием правой кнопки мыши

220

Ãëàâà 2

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

Outline (обводка) на 10 см (рис. 2.57, а). Если при этом новый сплайн создастся не снаружи, а внутри эллипса, отмените действие и повторите операцию, но уже со значением -10.  Удалите исходный сплайн (помечен стрелкой).

Благодаря тому, что все подобъекты-сплайны замкнуты, можно применить логические (Булевы, Boolean) операции.  Выделите сплайн, соответствующий любому из прямоугольников.  Настройте команду Boolean на объединение и щелкните по второму пря-

моугольнику (рис. 2.57, б).  Не снимая выделения, настройте команду на вычитание и щелкните по

эллипсу (рис. 2.57, в).  Удалите лишние вершины (помечены стрелкой на рис. 2.57, г).

Сделайте копию объекта. Он вам понадобится для создания бордюра. При копировании имеет смысл сразу переименовать этот объект в Pool Border.  Примените к текущему объекту (пора уже переименовать его, например,

в Pool Outline) модификатор Extrude с настройками, показанными на рис. 2.57, д.

а Рис. 2.57, а. Моделирование бассейна. Этап 2

Ìîäåëèðîâàíèå

221

б

в Рис. 2.57, б и в. Моделирование бассейна. Этап 2

222

Ãëàâà 2

г

д Рис. 2.57, г и д. Моделирование бассейна. Этап 2

Ìîäåëèðîâàíèå

223

е Рис. 2.57, е. Моделирование бассейна. Этап 2

 ПОЯСНЕНИЕ На сколько вытягивать не очень важно. Для упрощения геометрии можно было бы снять флажок Cap Start, но вам понадобится эта нижняя поверхность. Не забудьте установить флажки Generate Mapping Coords. и Real-World Map Size.

 ЗАМЕЧАНИЕ А можно ли было не использовать модификатор Extrude? Можно. Так как снаружи имеется бордюр, а внутри объект входит внутрь стенок бассейна, то в принципе можно было бы сразу преобразовать объект в редактируемый меш (Editable Mesh), и никто никогда не узнал бы о том, что это просто поверхность. Но толщина вам еще понадобится.

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

224

Ãëàâà 2

Теперь самое простое — стенки бассейна... Но не торопитесь. Здесь есть одна проблема. Если вы просто сделаете стенки при помощи команды Outline и модификатора Extrude, то текстура ляжет так, как на рис. 2.58, а. Если это то, что вам нужно, то нет никаких препятствий для того, чтобы так поступить. Но очень часто подобные объекты декорируются мелкой плиткой по форме объекта, и настроить текстурные координаты так, чтобы учесть это — весьма трудоемкое занятие. Чтобы упростить себе задачу, имеет смысл использовать модификатор Sweep, в котором текстурные координаты накладываются с учетом формы (рис. 2.58, б). Мы предлагаем пойти именно этим путем.  Создайте сечение стенок бассейна (рис. 2.59, а). Оно было сделано из пря-

моугольника размером 50 на 140 см (глубина бассейна) и доработано при помощи модификатора Edit Spline, а именно перемещены вершины и сделаны небольшие фаски при помощи команды Chamfer (фаска). Обращаем ваше внимание на то, что сплайн замкнутый. Главное меню  Modifiers  Patch/Spline Editing  Edit Spline

 СОВЕТ Преобразуйте все вершины к типу Corner.

 К эллипсу (который уже называется Pool Walls) примените модификатор

Sweep и настройте так, как показано на рис. 2.59, б. Главное меню  Modifiers  Patch/Spline Editing  Sweep

 ПОЯСНЕНИЕ В качестве исходного элемента выберите созданное сечение. Для этого переключитесь в режим Use Custom Section (использовать сечение по выбору) и щелкните по вашему сечению (стрелки 1 на рис. 2.59, б). Метод Instance позволяет при этом не терять связь с ним. Путем подбора параметров в свитке Sweep Parameters добейтесь того, чтобы форма стенок бассейна отвечала заданным. Неплохо звучит? Но тут ничего не поделаешь, объяснять слишком долго. К счастью, все параметры интуитивно понятны. Отметим лишь, что начать стоит с определения точки, которая будет использована для прогона сечения по пути (стрелка 2). Установите параметры для генерации текстурных координат (цифра 3). И, наконец, вернитесь вниз по стеку и установите параметр интерполяции побольше.

Ступени создаются немного сложнее, но также при помощи модификатора Sweep.  Преобразуйте одну из окружностей к типу Editable Spline, присоедините командой Attach к ней все остальные.

Ìîäåëèðîâàíèå

225

а

б Рис. 2.58. Два варианта создания стенок бассейна

226

Ãëàâà 2

а

б Рис. 2.59. Создание стенок бассейна

Ìîäåëèðîâàíèå

227

 Удалите лишние сегменты (рис. 2.60, а).  Расставьте подобъекты-сплайны по оси Z с шагом 20 см (рис. 2.60, б).  Создайте незамкнутое сечение, показанное на рис. 2.60, в. Начните, как и 

 

  

в предыдущем случае, с прямоугольника и удалите все лишнее. Сделайте фаску и командой Refine добавьте вершину на верхнем сегменте (стрелка 1). Зачем? Как правило, на ступенях в бассейне наносят линии контрастного цвета в целях безопасности. Если вы сделаете так, как мы советуем, у вас не будет проблем при присвоении материалов. Выделите все сегменты и задайте им в свитке Surface Properties значение параметра Material ID равное 1. Выделите сегмент, отмеченный стрелкой 2, и задайте для него параметр Material ID равный 2. Это даст вам возможность в дальнейшем использовать два различных материала на одном объекте. Выделите объект Pool Steps. Сразу задайте ему значение интерполяции побольше, например, 16. Примените модификатор Sweep и настройте так, как показано на рис. 2.60, г.  ПОЯСНЕНИЕ Здесь все то же самое, что и в предыдущем случае. Стоит отметить только флажок Use Section ID — именно он и позволяет вам в дальнейшем легко назначать разные материалы (точнее, подматериалы) на разные участки объектов.

Такие ступени нас полностью удовлетворяют. Но в случае если вам необходимо, чтобы ступени представляли собой единую поверхность, мы предлагаем вам альтернативный способ. Для этого метода вам понадобится более сложный исходный объект (рис. 2.61, а). Как видите, здесь присутствует большее количество сплайнов. Сделаны они путем копирования и перемещения исходных. При помощи команды Cross Section, описанной в разд. "Создание ландшафта при помощи лоскутов (Patches)", посвященном альтернативным способам создания ландшафта, создаются продольные сечения (рис. 2.61, б), а применение модификатора Edit Patch дает вам поверхность (рис. 2.61, в). Общий результат создания бассейна показан на рис. 2.62, а. Чего-то не хватает? Дна бассейна? В качестве дна можно использовать, например, параллелепипед (Box). Мы думаем, вы сами в состоянии его сделать. Теперь осталось поставить бассейн на место.  Выделите все объекты бассейна и сгруппируйте.  Сделайте видимым слой с ландшафтом.

228

Ãëàâà 2

а

б Рис. 2.60, а и б. Создание ступеней

Ìîäåëèðîâàíèå

229

в

г Рис. 2.60, в и г. Создание ступеней

230

Ãëàâà 2

а

б Рис. 2.61, а и б. Альтернативный способ создания ступеней

Ìîäåëèðîâàíèå

231

в Рис. 2.61, в. Альтернативный способ создания ступеней

 Разместите бассейн на нужной высоте и поверните под нужным углом. Не

помещается (рис. 2.62, б)? Придется доработать ландшафт, вплоть до удаления полигонов. Но сначала доведите до конца бассейн.  СОВЕТ Дальнейшее редактирование удобно проводить в режиме отображения каркаса (Wireframe). Чтобы лучше ориентироваться в сцене, включите отображение слоя References.

 Ко всей группе примените модификатор Slice (разрез). Этот модификатор

позволяет отрезать "лишнее". Примените его и настройте так, как показано на рис. 2.62, в. Главное меню  Modifiers  Parametric Deformers  Slice

 ПОЯСНЕНИЕ Этот модификатор имеет один подобъект, Slice Plane (плоскость разреза). Перемещая и поворачивая его, добейтесь, чтобы линия разреза шла параллельно мостику, разделяющему бассейн и пруд. Удобно это делать на виде сверху. А установленный флажок Remove Top (удалить верх) позволяет вам отсечь лишнее. Пока модификатор в стеке, вы всегда можете исправить геометрию объектов ниже по стеку.

Осталось только "заделать дырки", которые получились в результате действия модификатора Slice. Для этого используйте модификатор Cap Holes, применив его только к тем объектам, к которым нужно и можно. А к каким можно? Только к тем, у которых отверстие замкнуто по контуру. Применение

232

Ãëàâà 2

а

б Рис. 2.62, а и б. Окончательный этап моделирования бассейна

Ìîäåëèðîâàíèå

233

в

г Рис. 2.62, в и г. Окончательный этап моделирования бассейна

этого модификатора к ступеням приведет к непредсказуемому результату. Именно поэтому все сечения объектов, попадающих в плоскость отсечения, и были созданы замкнутыми.  Откройте группу или вообще разгруппируйте объекты. Главное меню  Group  Open, Ungroup

234

Ãëàâà 2

 Выделите объекты, попавшие в плоскость отсечения и примените к ним

модификатор Cap Holes (закрыть отверстия, рис. 2.62, г). Пояснений тут не требуется. Главное меню  Modifiers  Mesh Editing  Cap Holes

Все же, здесь есть две проблемы — наложение полигонов и потеки текстурных координат. Но часть этих полигонов будет находиться под ландшафтом, а часть будет перекрыта мостиком. Так что пока беспокоиться не о чем. И, наконец, отредактируйте ландшафт. Бассейн готов (рис. 2.63)!  ЗАМЕЧАНИЕ При работе в затененном режиме очень часто возникает ситуация, при которой происходит визуальное протекание поверхности одного объекта через другой. На рис. 2.63 это хорошо видно (правый верхний угол). Иногда это связано просто с недостаточной разрядностью Z-буфера при отображении объектов драйвером видеокарты. Если у вас возникают сомнения — проведите быстрый рендеринг (+). Если на окончательном рендеринге все в порядке — значит, и на самом деле беспокоиться не о чем. Если вам все-таки этот факт доставляет неудобство, включите режим отсечения изображения (Контекстное меню окна проекции  Viewport Clipping) и настройте границы манипуляторами с правой стороны окна проекции.

Наш проект на этом этапе называется Project1-08.max.

Рис. 2.63. Окончательный вид бассейна

Ìîäåëèðîâàíèå

235

Îêðóæåíèå ïðóäà Как уже писалось, южная сторона пруда представляет собой уголок дикой природы. Основной элемент — это набор валунов, живописно раскиданный по берегу. Причем ближе к мостику валуны имеют меньший размер, а к южной оконечности увеличиваются до внушительных размеров. Конечно, при определенных условиях, например, в случае если вы имеете каталог камней и модели, выполненные по нему, то правильное решение — разместить каждый камень "вручную". Но зачастую моделей камней нет, а заказчику нужно показать, как все это будет смотреться, например, для того, чтобы отговорить его от этой затеи. Моделирование 30—40 больших камней может занять не один час, поэтому мы хотим предложить вам один из способов, реализовать который можно только в программе класса 3ds Max, т. к. это уже ближе к анимации, нежели к моделированию. Ни один пакет CAD/CAM вам не даст такой возможности.  Создайте новый слой Stones.  Создайте в произвольном месте один камень. Имеет смысл создавать камень из... кубика (Box) с размерами самого большого камня, например, 2×2×3 м (рис. 2.64, а). Главное меню  Create  Standard Primitives  Box

 ПОЯСНЕНИЕ Почему из кубика, а не из сферы? Оба типа сфер (Sphere и Geosphere) в 3ds Max имеют недостатки. Обычная сфера имеет нерегулярную сетку, которая даст вам искажения у полюсов. Геосфера же состоит из треугольных полигонов, и результат сглаживания на ней будет не самым лучшим.

 Примените к "камню" модификатор TurboSmooth (сглаживание) с двумя

итерациями (рис. 2.64, б). Главное меню  Modifiers  Subdivision Surfaces  TurboSmooth

Как видите, модификатор TurboSmooth уменьшает размер кубика. Можно вернуться вниз по стеку к параметрам кубика и увеличить его размеры. Пока не стоит использовать масштабирование при помощи команды Select And Uniform Scale (равномерное масштабирование), т. к. размер будущей текстуры неизбежно изменится. А теперь нужно создать вспомогательные объекты, которые дадут возможность изменять размер и форму камней в зависимости от их положения в пространстве.  Создайте объект типа FFD(box) — кубический объект свободной деформации (рис. 2.65, а). Главное меню  Create  Space Warps  Geometric/Deformable  FFD(box)

236

Ãëàâà 2

а

б Рис. 2.64. Заготовка для камня

Ìîäåëèðîâàíèå

237

 ПОЯСНЕНИЕ При создании объекта ориентируйтесь на ландшафт. Размеры объекта задайте такими, чтобы в дальнейшем иметь возможность согнуть его в "подкову" так, чтобы захватить объем по берегу пруда. Количество контрольных точек (Control Points) сделайте большим (10—12) по большей стороне. По остальным сторонам установите их по минимуму (2). Переключатель в группе Deform (деформации) имеет смысл установить в положение All Vertices (все вершины), чтобы иметь возможность воздействовать на объекты вне объема сетки.

 Перейдите на уровень управляющих точек (Control Points) и, выделяя и

перемещая их, придайте объекту форму, показанную на рис. 2.65, б.  Выйдите из режима редактирования точек и примените модификатор Bend. Главное меню  Modifiers  Parametric Deformers  Bend

 ЗАМЕЧАНИЕ Обязательно выйдите из режима редактирования точек! Сделайте это либо сразу, либо вернувшись вниз по стеку. Модификатор Bend, как и большинство модификаторов в 3ds Max, может действовать как на весь объект, так и на его часть, и объекты FFD — не исключение!

а Рис. 2.65, а. Моделирование камней

238

Ãëàâà 2

б

в Рис. 2.65, б и в. Моделирование камней

Ìîäåëèðîâàíèå

239

г

д Рис. 2.65, г и д. Моделирование камней

240

Ãëàâà 2

е Рис. 2.65, е. Моделирование камней

 Подбирая параметры модификатора Bend, перемещая, вращая и масшта-

бируя объект, добейтесь формы, показанной на рис. 2.65, в.  ПОЯСНЕНИЕ На рисунке не показан ландшафт, но ориентироваться, конечно, нужно на него. Параметры действительно приходится подбирать. Это не значит, что не существует более осмысленного способа, но на практике оказывается, что подобрать их бывает быстрее и проще, чем вникать в то, что происходит. Процесс настройки изгиба выглядит, как правило, так — сначала задается угол изгиба (Angle), а затем путем подбора оси (Bend Axis) и угла Direction с шагом 90° вы добиваетесь нужного результата. Можно переместить центр (подобъект Center) к внутреннему краю.

Итак, все готово, чтобы воздействовать данной конструкцией на камень.

Ìîäåëèðîâàíèå

241

 Выделите камень и переместите его в середину "подковы" (рис. 2.65, г).  При помощи команды Bind To Spaсе Warp (связать с исказителем про-

странства), кнопка вызова которой показана стрелкой на рис. 2.65, г, свяжите камень и объект FFD, потянув ниточку от камня к исказителю, или наоборот. Избавиться от исказителя в дальнейшем можно, удалив его из стека. После этого вы можете перемещать объект и, самое главное, размножать (желательно по методу Instance) его внутри объема FFD. Обратите внимание, что при перемещении объект перемещается не всегда по той "стрелке", за которую вы тяните. Действительно, оправдывается название "исказитель пространства". Вот что получается (рис. 2.65, д). Вы можете редактировать сетку объекта FFD, масштабировать объект, поворачивать и масштабировать камни... В общем делайте все, что необходимо. И последний штрих. Чтобы добавить неравномерности в форму камней, можно применить к каждому из них модификатор Noise (шум). А можно создать один объект Noise из серии деформаторов, настроить его и связать со всеми камнями так же, как и объект FFD (рис. 2.65, е). Главное меню  Create  Space Warps  Modifiers Based  Noise

 ПОЯСНЕНИЕ Как следует из названия группы объектов, этот объект основан на модификаторе Noise, поэтому его параметры совпадают с параметрами одноименного модификатора, за исключением свитка Gizmo Parameters (размеры контейнера). В модификаторе этот размер зависит от размера объекта. Основные параметры в этом объекте (и модификаторе): в группе Strength задаются предельные значения действия по разным осям. В группе Noise задается характер и параметры шума. Эти параметры подбираются "по вкусу".

 ЗАМЕЧАНИЕ Объекты-исказители пространства и модификаторы типа WSM (World Space Modifier, модификатор мирового пространства) в стеке размещаются на самом верху и не допускают применения "обычных" модификаторов выше. Кроме того, при сворачивании стека командой Collapse All они остаются в стеке. В том случае, если вы хотите преобразовать результаты действия этих объектов или модификаторов в геометрию, вы должны применить инструмент Snapshot (снимок) (Главное меню  Tools Snapshot) и, при желании, удалить исходный объект (рис. 2.66).

 СОВЕТ Чтобы результат выглядел симпатичнее, увеличьте количество итераций в модификаторе TurboSmooth для камней. Но не увлекайтесь, поскольку 3—4 уров-

242

Ãëàâà 2 ней будет достаточно. Не забывайте, что каждая итерация усложняет модель в 4 раза!

В арсенале 3ds Max большое количество подобных решений. Если они вам интересны, то вы можете узнать о них из интерактивной справки или справочной литературы, причем подойдет любая, начиная с 3-й версии — эти инструменты с тех пор почти не подвергались ревизии.

Рис. 2.66. Окно инструмента Snapshot

Что же, опять стоит подредактировать ландшафт, уже с учетом камней. Да и сами камни, похоже, великоваты. Но если вы клонировали их, используя метод Instance, и не свернули стек, то уменьшить размер камней очень просто — достаточно опуститься вниз по стеку до уровня Box и ввести нужные размеры. И в заключение этого раздела подчеркнем, что этот метод — быстрый, но совсем неточный. Все же в случае создания решения, действительно отвечающего эстетическим требованиям, стоит поработать над формой и размерами камней индивидуально. Наш файл на этом этапе называется Project1-09.max.

Ìîäåëèðîâàíèå ìîñòèêà После такого веселого занятия трудно возвращаться к осмысленному моделированию. Но придется. На рис. 2.67 показан эскиз мостика. Как видите, ничего особо сложного с точки зрения моделирования нет. Минус в том, что известен только один размер — ширина мостика (120 см). Плюс — этот эскиз выполнен в масштабе (правда, тоже неизвестном) и имеется в формате AI. Этого достаточно.

Ìîäåëèðîâàíèå

243

Рис. 2.67. Эскиз мостика

Начиная с этого объекта, все модели имеет смысл создавать в отдельных файлах. Если вы используете команду File  New, то, как правило, настраивать ничего не надо. Если же вы начинаете проект с нуля, то убедитесь, что все настройки верные, т. к. 3ds Max запоминает настройки предыдущего проекта.  СОВЕТ Если вам постоянно приходится работать с разными файлами, которые меняют настройки, то вы можете сохранить ваши настройки, а также дополнительные объекты и т. д. в файл MaxStart.max. При запуске и операции File  Reset 3ds Max будет загружать этот файл. Причем для каждого проекта это могут быть разные файлы, т. к. 3ds Max загружает при запуске тот файл, который находится в папке "scenes" текущего проекта. Если же вы хотите иметь один файл для всех проектов, то в диалоговом окне настроек пользовательских путей можете прописать не относительный, а абсолютный путь к этому файлу (Главное меню  Customize  Configure User Path) (рис. 2.68).

 Импортируйте в сцену объекты из файла bridge.ai. Главное меню  File  Import При загрузке выберите Merge Objects with Current Scene (объединить с текущей сценой) и затем Single Object (единый объект), так удобнее

244

Ãëàâà 2

Рис. 2.68. Установка пути для файла MaxStart.max

Нужно вычислить масштаб, в котором сделан эскиз. Замерьте расстояние между размерными линиями, а еще лучше, между границами того объекта, размеры которого они показывают. Хорошо видно, что линии не совпадают. Сделать это можно при помощи инструмента Measure Distance (измерение расстояния).  Включите привязку к вершинам и режим привязки (стрелки 1 на

рис. 2.69, а).  Замерьте расстояние между точками, отмеченными на рис. 2.69, а стрел-

ками 2. Главное меню  Tools  Measure Distance... Значение находится в окне MaxScript (стрелка 3)

Путем нехитрых математических вычислений (120 см / 3,175 см) получаем значение 37,795 раз или 3779.5%. Именно во столько раз нужно увеличить объект.  Перейдите в режим масштабирования объекта и введите 3779.5 в поле ввода параметров, нажмите клавишу (рис. 2.69, б).  ЗАМЕЧАНИЕ Не обращайте внимание, что значение сбрасывается в немного другое (например, 3779.4997). Это нормально и связано с округлением.

 Задайте интерполяцию побольше, например, 16 шагов.

Ìîäåëèðîâàíèå

245

Теперь нужно разделить объект на два и правильно ориентировать их.  Перейдите в режим работы со сплайнами или сегментами и выделите

подобъекты боковой проекции моста.  Отсоедините их в отдельный объект командой Detach (рис. 2.69, в). Как ни

странно, в свитках она находится совсем не рядом с командой Attach.  Поверните новый объект на 90° по нужной оси. Используйте при этом

привязку по углу (включается и выключается клавишей ).  Расположите объекты так, как вам нравится (рис. 2.69, г).

Теперь стоит зафиксировать ("заморозить") этот слой, а новые объекты создавать в новом слое. При переносе объектов из одного файла в другой также переносятся и слои.  Откройте менеджер слоев.  Установите флажок Freeze напротив слоя 0 (default).

а Рис. 2.69, а. Подготовка эскизов мостика

246

Ãëàâà 2

б

в Рис. 2.69, б и в. Подготовка эскизов мостика

Ìîäåëèðîâàíèå

247

г

д Рис. 2.69, г и д. Подготовка эскизов мостика

Настройте привязки.  Чтобы иметь возможность привязываться к элементам замороженного

слоя, установите флажок Snap To Frozen Object (стрелка 1 на рис. 2.69, д).  Основной тип привязки, которым вы будете пользоваться, — это привязка

по вершинам (стрелка 2).

248

Ãëàâà 2

В общем, обвести с привязками нужные элементы и вытянуть модификаторами Extrude или Bevel для вас не должно составить большого труда. А для некоторых объектов вообще подойдут примитивы, например кубик (Box), доработанный на полигональном уровне. Мы подробно рассмотрим только два элемента — самый сложный элемент поручень, т. к. он имеет некоторый профиль, и столбики с фонарями, которые мы предлагаем сделать при помощи создания поверхности вращения.  ЗАМЕЧАНИЕ У вас может возникнуть резонный вопрос — а зачем обводить, нельзя ли использовать эти сплайны напрямую? Конечно, можно! Выделяйте нужные подобъекты, отсоединяйте командой Detach в отдельные объекты, проверяйте вершины, "сваривайте" при необходимости. Если вам так проще и быстрее, если чертеж построен грамотно — делайте так!

Как обычно, мы предложим вам некоторые решения, нечасто применяемые, но иногда полезные. И первое такое решение — использование дополнительной сетки.  На виде спереди (или слева, все зависит от того, как вы расположили чер-

тежи) создайте объект Grid (сетка), используя привязки к вершинам. Главное меню  Create  Helpes  Grid  Активируйте сетку. Теперь при построении объектов в любой "непрямой"

проекции объекты будут создаваться на этой сетке (рис. 2.70). Квадрупольное меню  Activate Grid

 ПОЯСНЕНИЕ Сетка — такой же объект, как и другие. Ее можно перемещать, вращать, копировать, выравнивать и т. д. Размер сетки не очень важен, если сетка активирована, то она будет использована независимо от того, на сетке или вне ее создается объект. Настройки шага сетки не зависят от глобальных настроек. Соответствующие привязки также будут осуществляться к ее узлам или линиям, а не к узлам или линиям "домашней" сетки (Home Grid). При активной дополнительной сетке для трансформации (перемещения или вращения) объектов удобно использовать систему координат Grid. Активировать "домашнюю" сетку вы можете в квадрупольном меню сетки, пункт Activate Home Grid, или в подменю View главного меню.

 Постройте дугу окружности по привязкам по форме нижней части по-

ручня.

Ìîäåëèðîâàíèå

249

Главное меню  Create  Shapes  Arc Щелкните левой кнопкой мыши по одному краю поручня. Удерживая левую кнопку мыши, потяните к другому Отпустите левую кнопку и задайте радиус, щелкнув по верхней точке поручня

Рис. 2.70. Дополнительная сетка

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

к ней вторую командой Attach.  При помощи команды Connect для вершин соедините нужные вершины

(рис. 2.71, а).  Создайте геометрию при помощи модификатора Extrude. Не забудьте по-

ставить все необходимые флажки (рис. 2.71, б)!  Сделайте верхнюю поверхность слегка покатой. Для этого стоит исполь-

зовать полигональное моделирование.

250

Ãëàâà 2

а

б Рис. 2.71, а и б. Моделирование поручня

Ìîäåëèðîâàíèå

251

в

г Рис. 2.71, в и г. Моделирование поручня

252

Ãëàâà 2

д

е Рис. 2.71, д и е. Моделирование поручня

Ìîäåëèðîâàíèå

253

 Примените к поручню модификатор Edit Poly. Главное меню  Modifiers  Mesh Editing  Edit Poly  Выделите верхние поперечные ребра. Удобно это сделать, выделив одно

ребро, и, удерживая клавишу , использовать спиннеры у кнопки Ring, расширяя выделение.  Соедините выделенные ребра командой Connect с параметрами, показанными на рис. 2.71, в. Квадрупольное меню  поле напротив команды Connect  Не снимая выделения с новых ребер, поднимите их немного вверх

(рис. 2.71, г).  Чтобы "загладить" переход на концах поручня, при помощи команды Cut соедините ребра так, как показано на рис. 2.71, д. При этом обязательно делайте "надрез" от вершины к вершине. Следите за формой курсора или используйте привязку. Квадрупольное меню  Cut  Ребро, указанное стрелкой на рис. 2.71, д, переместите в нужной плос-

кости.  То же самое сделайте и на противоположном конце поручня. Теперь нужно сделать так, чтобы визуально верхняя поверхность выглядела сглаженной и отделенной от остальных поверхностей. Для этого настройте группы сглаживания для различных полигонов согласно схеме, показанной на рис. 2.71, е.  ПОЯСНЕНИЕ Номер группы сглаживания не несет никакого глубокого смысла, это не степень сглаженности и не угол между полигонами. Это означает, что полигоны с одинаковым номером и прилежащие друг к другу будут выглядеть сглаженными. Выделяйте полигоны и задавайте им значение группы сглаживания в таблице Smoothing Groups. Если при этом вы видите, что нажато несколько кнопок или на некоторых кнопках отсутствует цифра, то это значит, что полигоны принадлежат сразу нескольким группам сглаживания. Исправьте это положение. Вы можете попробовать назначить группы сглаживания автоматически, более того, в этом конкретном случае это получится. Для этого выберите все полигоны, в поле напротив кнопки Auto Smooth (автоматическое сглаживание), задайте угол побольше (например, 60°) и нажмите эту кнопку. Те полигоны, угол между которыми меньше этого значения, будут помещены в одну группу сглаживания. Под углом между полигонами понимается угол между нормалями к полигонам (угол показан стрелкой на рис. 2.72). Не всегда это получается, все же иногда приходится выделять полигоны вручную. Удобно это делать, установив флажок By Angle (по углу). При этом будут выделяться полигоны, угол между которыми меньше значения в окошке напротив.

254

Ãëàâà 2

Рис. 2.72. Угол между полигонами

 ЗАМЕЧАНИЕ В Интернете и в некоторых книгах по 3ds Max вы можете встретить утверждение, что группы сглаживания влияют на форму объекта. Ни в коем случае! Это только визуальный эффект, никоим образом не изменяющий геометрию объекта.

Вполне возможно, что вам в дальнейшем захочется усложнить геометрию поручней путем применения сглаживания геометрии. Что же, это сделать можно, но приготовьтесь к тому, что после применения модификатора TurboSmooth вы получите вот такой забавный результат (рис. 2.73, а), при-

а Рис. 2.73, а. Результат применения модификатора TurboSmooth (а) и его настройка

Ìîäåëèðîâàíèå

255

б Рис. 2.73, б. Результат применения модификатора MeshSmooth (б) и его настройка

чем не спасает и разделение по группам сглаживания (помечено стрелкой 1). Связано это с тем, что после модификатора Extrude вы получили многоугольные полигоны. Придется разделять его при помощи команды Cut на четырехугольники. И все же в данном случае можно поступить проще, применив не модификатор TurboSmooth, а MeshSmooth, в котором больше настроек, и кроме разделения по группам сглаживания есть еще настройка, показанная стрелкой 1 на рис. 2.73, б, которая предотвращает появление полигонов, выходящих за пределы исходной геометрии. Несмотря на то, что такой "трюк" с использованием разделения на группы сглаживания в модификаторах TurboSmooth и MeshSmooth имеет право на существование, мы призываем вас использовать его как можно реже, т. к. результат получается грубым. Обычно даже самые острые углы ребер в реаль-

256

Ãëàâà 2

ном мире имеет некоторый радиус закругления, хотя бы несколько молекул, и именно на них и получается красивая игра света. В случае использования разделения по группам сглаживания вы такого эффекта не получите. Мы предлагаем вам получить геометрию, готовую к сглаживанию. Правда, в этом случае придется поступиться текстурными координатами, т. к. операции, проведенные над поручнем, приведут к их искажению.  ЗАМЕЧАНИЕ Если вас (и заказчика) удовлетворяет форма поручня — можете ничего не переделывать. В конце концов, если вы не выполняете заказ фабрики по изготовлению мостиков, то вполне возможно, что такой формы будет достаточно.

 Удалите из стека модификатор Edit Poly и вернитесь к Extrude.  Вполне возможно, что стоит вернуться ниже по стеку и изменить (умень-

шить) количество шагов интерполяции до 4—6. В противном случае после сглаживания вы получите неоправданно плотную сетку.  Примените к объекту модификатор Turn to Poly (преобразовывать в полигоны) (рис. 2.74, а). Главное меню  Modifiers  Conversion  Turn to Poly.

 ПОЯСНЕНИЕ Этот модификатор "подправляет" геометрию, делая ее корректной с точки зрения полигонального моделирования. Важным в нашем случае является флажок, ограничивающий количество полигонов (Limit Polygon Size). Не всегда он помогает, но в нашем случае все в порядке, т. к. количество вершин сверху и снизу одинаково, а начальная вершина находится в углу.

 Примените модификатор Edit Poly.  Выделите одно поперечное ребро на верхней поверхности и выделите все

ребра, параллельные ему командой Ring.  Соедините командой Connect с параметрами, показанными на рис. 2.74, б.  ПОЯСНЕНИЕ Значение в поле Pinch таково, чтобы ограничить закругление нижней части небольшим радиусом.

 Выделите теперь только верхние поперечные внутренние ребра, отмас-

штабируйте их по нужной оси и поднимите (рис. 2.74, в).  Выделите все вертикальные ребра и соедините их так, чтобы получить меньший радиус внизу и бо´льший — вверху (рис. 2.74, г). В результате после сглаживания у вас получится вот такая замечательная форма (рис. 2.74, д). Остается только немного подправить торцы, придав им на малополигональном уровне более гладкую форму.

Ìîäåëèðîâàíèå

257

а

б Рис. 2.74, а и б. Моделирование поручня для дальнейшего сглаживания

258

Ãëàâà 2

в

г Рис. 2.74, в и г. Моделирование поручня для дальнейшего сглаживания

Ìîäåëèðîâàíèå

259

д Рис. 2.74, д. Моделирование поручня для дальнейшего сглаживания

Для остальных деталей мостика (кроме столбиков) все делается аналогично. Единственное отличие — в некоторых случаях можно использовать модификатор Bevel вместо Extrude. Найти его можно в выпадающем списке стека модификаторов, в главном меню его нет (рис. 2.75).  ПОЯСНЕНИЕ В отличие от Extrude, этот модификатор имеет до трех уровней вытягивания, которые можно совмещать с очерчиванием (Outline), что дает возможность сразу получать фаски. Для того чтобы избежать самопересечений, которые могут возникнуть при больших значениях параметра Outline, используется флажок Keep Lines From Crossing. Остальные параметры понятны и во многом совпадают с параметрами модификаторов Extrude и Sweep.

Вот такой мостик получился (рис. 2.76). Вы можете найти его в файле Project1-Bridge-01.max. Но мы все же призываем вас сделать его самостоятельно.

260

Ãëàâà 2

Рис. 2.75. Модификатор Bevel

Рис. 2.76. Мостик. Промежуточный результат

Ìîäåëèðîâàíèå

261

 ВАЖНО! При моделировании избегайте наложения полигонов даже за счет небольшого искажения формы!

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

Рис. 2.77. Эскиз столбика со светильником

Как уже говорилось, если есть чертеж в векторном формате, и он выполнен достаточно грамотно, то нет никаких противопоказаний к тому, чтобы использовать его в качестве контура. Мы так и предлагаем поступить. При желании создайте новый слой. Но в этом нет необходимости, т. к. объекты моста все равно будут объединены в группу.  Импортируйте файл bridge-light.ai в новый слой или слой Bridge как единый объект. При загрузке вы скорее всего получите предупреждение о том, что в сцене уже присутствует объект с именем Shape1 (это чертеж моста) и предложением переименовать его. Воспользуйтесь этим предложением.  Смасштабируйте объект так же, как и в случае с мостом на то же значение,

т. к. чертеж взят из того же источника (на 3779,5%).  Поверните его так, чтобы он встал вертикально.

262

Ãëàâà 2

 Скройте все остальные объекты. Удобно для этого использовать команду

Isolate Selection (изолировать выбранный объект) (рис. 2.78, а). Квадрупольное меню  Isolate Selection  Сбросьте трансформации, используя утилиту Reset Xform, и сверните

стек. Хотя для создания фигуры вращения масштабирование не так критично, как, например, для Extrude, сделать это стоит, чтобы избежать проблем с наложением текстур. Командная панель  подпанель Utilities  Reset Xform  Reset Selection Командная панель  подпанель Modify  Контекстное меню стека модификаторов  Collapse All

"Разберите" объект на отдельные объекты (столбик и светильник).  Выберите сплайны светильника и примените команду Detach (рис. 2.78, б).  То, что осталось, переименуйте в Bridge Post.

Теперь можно создать фигуру вращения при помощи модификатора Lathe... Ни в коем случае так не делайте! Если сделать это сейчас, то вы получите двойную поверхность. Если при этом чертеж точен, вы получите две совпадающие поверхности, нормали которых повернуты в противоположные стороны. При рендеринге, особенно с применением алгоритмов расчета глобального освещения, вы получите весьма причудливые артефакты. Поэтому сделайте из целого контура полуконтур, и только после этого вращайте.  Разделите верхний и нижний сегменты пополам. Выделите их и примени-

те команду Divide (рис. 2.78, в).  Выделите и удалите сегменты с одной стороны (рис. 2.78, г).

Вот такой контур подходит для того, чтобы сделать из него фигуру вращения! Почти. Чтобы избежать проблем, необходимо, чтобы вершины на оси вращения имели одинаковое значение по нужной координате, в нашем случае по оси X. Вы можете сделать следующее — в режиме перемещения скопировать в панели ввода координат значение для вершины и вставить его в соответствующее поле другой вершины. Но при большом количестве вершин делать это крайне утомительно, поэтому мы предлагаем вам воспользоваться и взять на вооружение другой способ, с использованием привязок. Вы уже использовали так называемые 2.5D-привязки. Они неплохо работают, но только на "прямых" видах. В видах Perspective и User лучше использовать другой способ.

Ìîäåëèðîâàíèå

263

 Настройте 3ds Max так, как показано на рис. 2.78, д.

 ПОЯСНЕНИЕ Основная кнопка здесь отмечена стрелкой 1. Называется она весьма мудрено — Snaps Use Axis Constraint Togge (использовать оси для привязок), и действует следующим образом. Если она отжата, то привязки (в данном случае по вершинам, соответствующая кнопка отмечена стрелкой 2) осуществляются в трехмерном пространстве независимо от того, какая ось для перемещения используется. Это удобно, например, в том случае, когда нужно поставить объект конкретным местом на поверхность другого объекта. Если кнопка Snaps Use Axis Constraint Togge нажата, то при перемещении будет учитываться ось или плоскость. При этом привязываться можно к любому элементу, находящемуся в любом месте — перемещение будет происходить с ограничением по выбранной оси или плоскости. Чтобы не "хвататься" точно за вершину (а при этом часто сбивается ось или плоскость), вы можете в настройках окна Grid and Snap Settings (вызывается щелчком правой кнопкой мыши на "магнитах") установить флажок Use Axis Center As Start Snap Point (отмеченный стрелкой 3). Это даст вам возможность при перемещении "хвататься" за нужную ось. К сожалению, имеется "побочный" эффект — вершина ведет себя странно, "улетая" далеко от того места, где была. Но не обращайте на это внимание — в тот момент, когда привязка "поймает" нужный элемент, все встанет на свои места.

 Включите режим привязки, выделите нужную (например, верхнюю пра-

вую) вершину и потяните за нужную ось. При этом голубая "ниточка" (rubber band) покажет, куда вы привязываете вершину ("ниточка" помечена стрелкой 1 на рис. 2.78, е).

а Рис. 2.78, а. Моделирование столбика. Контур

264

Ãëàâà 2

б

в

г Рис. 2.78, б—г. Моделирование столбика. Контур

Ìîäåëèðîâàíèå

265

д

е Рис. 2.78, д и е. Моделирование столбика. Контур

266

Ãëàâà 2

 Не снимая выделения с этой вершины, примените модификатор Lathe

(вращение) и настройте его параметры так, как показано на рис. 2.79, а. Главное меню  Modifiers  Patch/Spline Editing  Lathe

 ПОЯСНЕНИЕ Прежде всего, подберите нужную ось вращения кнопками X, Y, Z (цифра 1 на рис. 2.79, а). Если вы последовали нашему совету и выделили вершину, то вращение будет проведено вокруг нее. Если вершина не была выделена, то вращение происходит вокруг точки привязки. Выправить эту ситуацию можно либо перемещая ось (Axis) модификатора, либо воспользовавшись кнопками в группе Align (выравнивание) (цифра 2). Смысл этих кнопок тот же, что и в команде Align. Если в окне проекции в затененном (Shaded) режиме объект отображается черным цветом, это означает, что нормали к поверхности повернуты внутрь, т. е. поверхность вывернута "наизнанку". Хотя для столбика это не очень страшно, т. к. к нему будет применен непрозрачный двусторонний материал, все же лучше не испытывать судьбу и инвертировать нормали флажком Flip Normals. В том случае, когда по каким-либо причинам переключение флажка Flip Normals не дает видимого результата, установите в параметрах либо объекта, либо слоя целиком режим Backface Cull (отсечение поверхностей, повернутых от наблюдателя, стрелка 3). Чтобы "заделать дырки" в основании и наверху столбика, установите флажок Weld Core ("сварить" у центра, стрелка 4). Если этого не сделать, вы получите в этих местах не одну, а много вершин, количество которых равно количеству сегментов (стрелка 5), и выглядеть это будет крайне некрасиво. В нашем случае ни верха, ни низа не будет видно, но все же это стоит сделать. К сожалению, никаких настроек у этого параметра не предусмотрено, вершины либо "свариваются", либо нет, поэтому очень важно, чтобы вершины находились точно на одной оси. В группе Output (выход, стрелка 6) задается тип объекта, создаваемого при вращении. Как видите, результат действия модификатора Lathe (и некоторых других модификаторов, например, Extrude) может быть преобразован к любому типу. В большинстве случаев нет смысла использовать что-то, отличное от Mesh. Часть настроек внизу свитка (стрелка 7) вам знакома, а некоторые из них будут рассмотрены при создании светильника.

Мы не знаем, как получилось у вас, а нам показалось, что форма столба грубовата. Поэтому мы вернулись вниз по стеку и немного ее подредактировали. Самое главное, что мы сделали, — это сняли 3-миллиметровые фаски для вершин, помеченных стрелками на рис. 2.79, б при помощи команды Chamfer. Для этого выделите нужные вершины, и в поле команды Chamfer введите 0,3 см и нажмите . Не пугайтесь, что после этого значение в поле сбрасывается на 0 — так и должно быть, 3ds Max ждет от вас последующих действий.

Ìîäåëèðîâàíèå

267

Вместо команды Chamfer вы можете использовать Fillet (закругление). Но имейте в виду, что закругление на такое малое значение в этом случае не будет отличаться от Chamfer, а геометрия будет сложнее, причем намного, т. к. для закругления будет использовано столько шагов, сколько установлено в свитке Interpolation. И все же оно отличается (рис. 2.79, в)! Как видите, фаски выглядят очень грубо. Решить эту проблему можно двумя путями. Один из них прямой и связан с использованием модификатора Smooth (не путать с MeshSmooth и TurboSmooth) (рис. 2.79, г). Главное меню  Modifiers  Mesh Editing  Smooth

Где-то это вы уже видели... Совершенно верно, это свиток из модификатора Edit Poly, и работает все точно так же. Отметим лишь, что данный модификатор может воздействовать как на объект целиком, так и на выделенные подобъекты.

а Рис. 2.79, а. Моделирование столбика

268

Ãëàâà 2

б

в Рис. 2.79, б и в. Моделирование столбика

Ìîäåëèðîâàíèå

269

г

д Рис. 2.79, г и д. Моделирование столбика

270

Ãëàâà 2

Второй способ нетривиальный, но также работающий. Заключается он в том, чтобы все вершины исходного сплайна, за исключением вершин в основании, преобразовать к типу Smooth или Bezier, а интерполяцию сделать равной 0. Результат аналогичный, т. к. при создании поверхности учитывается тип вершин (рис. 2.79, д).  ЗАМЕЧАНИЕ При таком подходе вполне возможно, что придется добавить несколько вершин в тех местах, где необходим радиус, т. к. ваши сплайны вырождаются в ломаные.

Светильник делается так же, единственный нюанс — это то, что его контур состоит не из одного, а нескольких подсплайнов. Контур светильника показан на рис. 2.80, а, а результат действия модификатора Lathe на рис. 2.80, б. Сделать такой контур очень просто, использованы команды Divide для сегментов, удаление сегментов, команды Refine для добавления вершин и Chamfer для создания фасок. Важным здесь является разделение сплайна на идентификаторы материалов (Material ID) и

а Рис. 2.80, а. Моделирование светильника

Ìîäåëèðîâàíèå

271

б

в Рис. 2.80, б и в. Моделирование светильника

272

Ãëàâà 2

использование их в модификаторе Lathe для дальнейшего применения сложного материала (на обоих рисунках отмечено стрелкой 1). На рис. 2.80, б стрелкой 2 показана проблема, которая часто возникает при создании фигуры вращения составных контуров. Как видите, часть поверхностей ориентирована так, как надо, а часть вывернута. Флажок Flip Normals не дает нужного эффекта, т. к. инвертирует нормали сразу у всех поверхностей. Чтобы решить эту проблему, нужно вернуться вниз по стеку и реверсировать нужные сплайны командой Reverse для сплайнов. Все встало на свои места (рис. 2.80, в)!  СОВЕТ Включите отображение номеров вершин, это удобно.

Наш результат на этом этапе вы можете найти в файле Project1-Bridge02.max. Работа над мостиком подходит к концу, осталось только расставить столбики по местам.  Выровняйте объект Bridge Light относительно Bridge Post по центрам (Center) и по осям X и Y (рис. 2.81).

Рис. 2.81. Выравнивание объектов

Ìîäåëèðîâàíèå

273

 Выделите и сгруппируйте оба этих объекта, назвав группу, например,

Bridge Post Group. Главное меню  Group  Group  Поместите точку привязки группы в основание столба. Командная панель  подпанель Hierarchy/ Pivot  Affect Pivot Only Главная панель  Align  Щелкните на объекте Bridge Post Настройте так, как показано на рис. 2.82

Рис. 2.82. Размещение точки привязки группы

 Сделайте видимыми все объекты и удалите лишние, конкретно — допол-

нительную сетку (Grid01), она вам больше не нужна. Квадрупольное меню  Unhide All Ответьте утвердительно на вопрос о том, делать ли видимыми скрытые слои

274

Ãëàâà 2

 Если вы сгруппировали объекты мостика, то выделите и разгруппируй-

те их. Главное меню  Group  Ungroup

Далее размножая (желательно с использованием метода Instance) объекты и выравнивая их, добейтесь нужного результата (рис. 2.83). Мы уверены, что вы справитесь самостоятельно! Единственный совет — разместив столбики по одной стороне, выделите их все и скопируйте на другую.

Рис. 2.83. Окончательный вариант мостика

И, наконец, назовите все объекты осмысленно. Для этого можно воспользоваться инструментом Rename Objects. Главное меню  Tools  Rename Objects Настройте, задав префикс и выбрав нумерацию (стрелка 1) Выделите все объекты со "странными" именами (клавиша , стрелка 2) и нажмите Rename

Не самый лучший способ, но, по крайней мере, все объекты будут иметь префикс Bridge.  Выделите все объекты и сгруппируйте под именем Bridge.

Сохраните ваш мостик. Наш файл называется Project1-Bridge-final.max.

Ìîäåëèðîâàíèå

275

Не терпится вставить мостик в ландшафт? Нам тоже! Давайте это сделаем!  Откройте файл с последней версией ландшафта (у нас это Project1-10.max).  При помощи браузера Windows или Asset Browser 3ds Max перенесите в

сцену файл Project1-Bridge-final.max. В результате вы получите диалоговое окно, показанное на рис. 2.84, а, в котором вам будет предложено три способа загрузки. Первый пункт (Open File) нас не интересует, т. к. аналогичен команде File  Open. XRef File (Ссылка на файл) позволяет не терять связь с исходным файлом. Использование Xref-сцен и объектов оправдано в случае, когда вы работаете в команде. Это позволяет делать исправления "на лету" авторами моделей. В нашем случае выбором является Merge File (Слияние), т. к. придется еще дорабатывать геометрию, создавать материалы и т. д.  ЗАМЕЧАНИЕ

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

Установите мостик на его место (рис. 2.84, б). При этом нам пришлось изменить некоторые объекты мостика и, как всегда, подправить ландшафт. И еще мы налили воды в бассейн! Кстати, не знаю, как вам, а нам (да и заказчику, насколько нам известно), после долгих раздумий, показалось, что бегать через мостик интереснее, чем вокруг пруда. Мы думаем, для вас не составит труда перенести беговую дорожку, разорвать сплайн, по которому она построена, еще в одном месте... И, удалив модификатор Edit Poly и назначив его заново, переделать все, что в нем было сделано. К счастью, это не очень сложно.  СОВЕТ Чтобы сделать это быстрее, в настройках объекта Conform, каковым и является дорожка, включите режим ручного обновления.

Наш файл на этом этапе называется Project1-11.max.

276

Ãëàâà 2

а

б Рис. 2.84. Загрузка мостика в проект

Ìîäåëèðîâàíèå

277

Âàðèàíòû ïëÿæíîé è ñàäîâîé ìåáåëè Пляжная и садовая мебель в нашем случае является далеко не самым важным атрибутом, поэтому тратить время на проработку ее во всех деталях нет смысла. Мы предлагаем вам смоделировать четыре простых комплекта мебели, без излишних деталей. Первый — на основе металлических труб и тканевых поверхностей (рис. 2.85, а). Второй — упрощенный вариант мебели из ротанга (рис. 2.85, б). Третий комплект — деревянный, выполненный из гнутой фанеры (рис. 2.85, в). Четвертый — пластиковый (рис. 2.85, г).

а

б Рис. 2.85, а и б. Варианты пляжной и садовой мебели

278

Ãëàâà 2

в

г Рис. 2.85, в и г. Варианты пляжной и садовой мебели

Ìåáåëü íà îñíîâå êàðêàñà èç òðóá В первом случае все элементарно — процесс моделирования шезлонга показан на рис. 2.86. Каркас — сплайны (рис. 2.86, а), тканевое сиденье — опять же сплайн, вытянутый модификатором Extrude (рис. 2.86, б). Толщина придается при помощи модификатора Shell (рис. 2.86, в), а немного продавить сиденье можно при помощи модификатора Edit Poly или Edit Mesh и перемещением вершин с включенным и настроенным мягким выделением (рис. 2.86, г).

Ìîäåëèðîâàíèå

279

а

б Рис. 2.86, а и б. Моделирование шезлонга

280

Ãëàâà 2

в

г Рис. 2.86, в и г. Моделирование шезлонга

Çîíòèê. Âàðèàíò 1 Зонтик можно сделать следующим образом. Каркас зонтика делается так же, как и в предыдущем случае — из сплайнов.  Скопируйте сплайны, из которых собран каркас зонтика (рис. 2.87, а). Это

даст вам возможность в дальнейшем без труда совместить зонтик и каркас.  Объедините их в один объект командой Attach.  Используя команду Cross Section, создайте дополнительные сегменты

(рис. 2.87, б). Если вам нужны не прямые, а криволинейные края, выбери-

Ìîäåëèðîâàíèå

281

а

б Рис. 2.87, а и б. Моделирование зонтика

282

Ãëàâà 2

в

г Рис. 2.87, в и г. Моделирование зонтика

Ìîäåëèðîâàíèå

283

д Рис. 2.87, д. Моделирование зонтика

те в группе New Vertex Type (тип новых вершин) переключатель Smooth или Bezier.  Примените

модификатор Edit Patch. Вы получите поверхность (рис. 2.87, в). Проверьте направление нормалей, при необходимости инвертируйте их (флажок Flip Normals).

 При помощи модификатора Edit Poly можно при необходимости дорабо-

тать зонтик (рис. 2.87, г). Для этого выделяйте необходимые ребра и перемещайте их по вертикали, удерживая клавишу . Затем переместите нужные вершины.  ЗАМЕЧАНИЕ Если вы подумали, что удобнее сделать одну секцию, потом скопировать ее с поворотом, объединить в один объект и "сварить" вершины — вы подумали правильно! Кроме того, что так проще моделировать, так еще и проще назначать текстурные координаты.

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

284

Ãëàâà 2

А вот применять модификатор Shell в этом случае не обязательно, но, опять же — почему бы и нет? Вот такой результат (рис. 2.87, д). Наш вариант находится в файле project1-furniture-var1.max, при этом все стеки не свернуты, и вы можете сами изменить что-либо по желанию. Çîíòèê. Âàðèàíò 2 Мы уверены, что ваш зонтик лучше нашего, но, как и у нас, он обладает существенным недостатком — он абсолютно статичный. В случае облета камерой было бы неплохо показать, что это действительно ткань, реагирующая на ветер. Для этого нужно использовать симулятор ткани, встроенный в 3ds Max. На примере зонтика мы обсудим основные моменты и настройки этого инструмента. Этих знаний вам будет достаточно для создания реалистичных пологов, флагов и т. д. На рис. 2.88, а показан зонтик, подготовленный к тому, чтобы стать "тканью". Найти его вы можете в файле project1-umbrella-cloth-start.max. Как видите, это то же самое, что и раньше, только сетка более плотная. Качественного результата при применении симулятора тканей можно достичь при использовании объектов с достаточно плотной сеткой.  ЗАМЕЧАНИЕ Есть, правда, еще одно условие — желательно, чтобы сетка была регулярной. В идеале, ткань должна быть сделана по выкройкам с применением модификатора Garment Maker (буквально "портной"). Но в нашем случае это не очень важно.

 Примените к зонтику модификатор Cloth (Ткань). Главное меню  Modifiers  Cloth  Cloth

Схватились за голову (рис. 2.88, б)? Не волнуйтесь, все не так страшно. Давайте разбираться с параметрами симуляции, свиток Simulation Parameters. Симулятор ткани Cloth основан на физически корректных алгоритмах, поэтому первое, что нужно сделать, — привести в соответствие системные единицы измерения и единицы, с которыми работает Cloth. В Cloth используются сантиметры, у нас в системе тоже используются сантиметры, поэтому параметр cm/unit и равен 1. Для дюймов используется значение 2.54.  ЗАМЕЧАНИЕ Начиная с 3ds Max 9, этот параметр устанавливается автоматически с учетом системных единиц измерения.

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

Ìîäåëèðîâàíèå

285

Земли равно 9,8 м/c2, и при этом вектор ускорения направлен вниз, поэтому и присутствует лидирующий минус (-980.0 см/с2). Если вы хотите посмотреть, как ваша ткань будет вести себя на Луне или Марсе, то меняйте этот параметр соответственно. Остальные параметры для зонтика не очень важны, но все же коротко расскажем о некоторых.  Установки по умолчанию вполне приемлемы, но если все же что-то пой-

дет не так, имеет смысл увеличить параметр Subsample, который отвечает за количество промежуточных расчетов.  При установке флажка Self Collision ткань сама с собой не пересекается.

Цифровое значение в поле этой строки (от 0 до 10) определяет частоту, с которой будут производиться тесты на самопересечение за счет времени симуляции. Больше 1, как правило, устанавливать не стоит, а зачастую вполне устраивает и 0. Теперь нужно определить наш объект как ткань. Для этого откройте настройки объекта с помощью кнопки Object Properties в свитке Object (см. рис. 2.88, б). Еще раз схватились за голову (рис. 2.88, в)? Да, теперь это уже посложнее. Здесь сосредоточены настройки ткани. К счастью, разработчики позаботились о "простых смертных", и в поставке присутствуют несколько предустановок для различных видов тканей.  Определите объект Umbrella-Top (стрелка 1) как ткань и в группе Presets

выберите пресет Cotton (хлопок) (стрелка 2) или любой другой, какой вам больше понравится. Параметров очень много, и не все они нужны в нашем случае. Самые главные из них обведены и помечены стрелкой 3. Принцип здесь такой — чем больше значение параметра, тем больше реакция на то или иное воздействие — изгиб (bend) или растяжение (stretch). Если сейчас, при этих настройках, запустить симуляцию (кнопка Simulate Local в свитке Object в параметрах модификатора Cloth (см. рис. 2.88, б)), то ткань красиво упадет, т. к. ничем не прикреплена. Давайте ее закрепим.  Перейдите к подобъекту Group.  Выделите вершины, которыми зонтик будет прикреплен к каркасу (пока-

зано жирными точками на рис. 2.88, г). Достаточно сложно это сделать в модификаторе Cloth, поэтому вернитесь вниз по стеку к Editablе Poly или Edit Poly (не обращайте внимание на предупреждение, вы ничего плохого делать не будете), выделите нужные ребра при помощи Loop, и преобразуйте это выделение в выделение вершин. Квадрупольное меню  Convert to Vertex

286

Ãëàâà 2

Вернитесь на уровень модификатора Cloth и нажмите кнопку Get (помечена стрелкой 1 на рис. 2.88, г) Создайте группу (Make Group, помечена стрелкой 2, на рисунке операция проведена)

 ЗАМЕЧАНИЕ Никакого отношения эта группа к группе, создаваемой командой в меню Group, не имеет! Это внутренняя группа только для модификатора Cloth!

 При помощи команды Node (узел) прикрепите выделенные вершины к

любому объекту каркаса (стрелка 3 на рис. 2.88, г). Кнопка Node  щелкните по любому объекту каркаса

 ЗАМЕЧАНИЕ Если бы была необходима действительно реалистичная анимация, при которой деформируются спицы каркаса, то нужно было бы создать шесть групп, и прикрепить каждую к поверхности каждой спицы при помощи команды Surface.

Наш зонтик на этом этапе находится в файле project1-umbrella-cloth-01.max.  Выйдите из работы с подобъектами и запустите локальную симуляцию кнопкой Simulate Local. Остановить процесс можно повторным нажатием этой же кнопки.

а Рис. 2.88, а. Симуляция ткани

Ìîäåëèðîâàíèå

287

б

в Рис. 2.88, б и в. Симуляция ткани

288

Ãëàâà 2

г

д Рис. 2.88, г и д. Симуляция ткани

Ìîäåëèðîâàíèå

289

е

ж Рис. 2.88, е и ж. Симуляция ткани

290

Ãëàâà 2

з Рис. 2.88, з. Симуляция ткани

Какой-то зонтик вялый получился. Давайте немного изменим настройки ткани.  Откройте настройки ткани и просто выберите другой пресет, соответствующий более легкой ткани, например, Taffeta (тафта). Основное отличие от хлопка — это меньшая (в 10 раз) плотность, что делает ткань легче, и немного большие значения сопротивляемости на растяжение.  Для того чтобы начать симуляцию с начала, нажмите кнопку Reset State (сбросить состояние) в свитке Object.  Запустите симуляцию (Simulate Local). Совсем другое дело (рис. 2.88, д)!  Когда ткань "отвисится", сохраните это состояние как начальное (кнопка Set Initial State). Давайте "подуем ветром" на наш зонтик.  Создайте объект Wind, направьте его на зонтик, и настройте так, как показано на рис. 2.88, е. Главное меню  Create  Space Warps  Forces  Wind

 ПОЯСНЕНИЕ Параметр Strength определяет силу ветра. Параметры Turbulence и Frequency (турбулентность и частота) дают возможность получить "порывистый ветер".

Ìîäåëèðîâàíèå

291

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

в модификаторе Cloth (рис. 2.88, ж, стрелка 1).  Выберите Wind01 и перенесите при помощи кнопки с символом ">" (стрелка 2).  Запустите просчет симуляции (Simulate). Этот процесс занимает достаточно много времени, но потом проигрывается в реальном времени в окне проекции. Конечно, анимацию имеет смысл делать уже в окончательной сцене. А вот для статических сцен вы можете сохранить результат, просто свернув стек или применив инструмент Snapshot и сделав копию (рис. 2.88, з). Главное меню  Tools  Snapshot

Обсуждение всего того, что может симулятор ткани, выходит за рамки данной книги. Если вы заинтересовались этим, то к вашим услугам исчерпывающая информация, приведенная в справке к 3ds Max. Ìåáåëü èç ðîòàíãà Более сложная мебель, но основанная на том же принципе, например, из ротанга, делается так же (рис. 2.89). Единственное, что может вызвать затруднение, — это необходимость использовать сплайны с разной толщиной. Придется их держать в разных объектах, либо преобразовывать в редактируемые меши (mesh) или редактируемые поли (poly) и объединять. Кроме этого, на полигональном уровне при необходимости можно показать, как скрепляются элементы.

Рис. 2.89. Модели мебели из ротанга (без подушек)

292

Ãëàâà 2

Ñòåãàíûå ïîäóøêè Некоторое затруднение может вызвать моделирование стеганых подушек. Рассмотрим самое сложное — круглую в плане подушку кресла.  Моделирование начните, создав сплайн по форме подушки с учетом количества перетяжек, либо создав окружность и задав в параметрах интерполяции соответствующее количество шагов, так, чтобы оно соответствовало количеству перетяжек (рис. 2.90, а).  Примените модификатор Extude и вытяните на высоту, соответствующую толщине подушки. Далее вы будете моделировать только одну, верхнюю, сторону. Обратная сторона будет получена при помощи применения симметрии.  Примените модификатор Edit Poly, выделите верхний полигон.  СОВЕТ Выделите и удалите нижний полигон, он вам будет только мешать.

 Выделите верхний полигон, и при помощи команд Inset и Collapse сде-

лайте радиальные ребра (рис. 2.90, б).

Командная панель  свиток Edit Polygons  Inset Командная панель  свиток Edit Geometry  Collapse  Выделите одно радиальное ребро.  При помощи команды Ring выделите все радиальные ребра. Командная панель  свиток Selection  Ring

Не получается? У нас тоже. Поэтому просто выделите ребра окошком.  СОВЕТЫ Если раньше вам не приходилось работать на уровне подобъектов в массовом масштабе, и выделение было достаточно простым, то при более сложном полигональном моделировании очень важна эффективность и скорость выделения подобъектов. Прежде всего, пока вы не достигли высот в освоении 3ds Max, старайтесь операцию выделения подобъектов проводить в режиме Smart Selection (клавиша ), т. к. всегда есть вероятность сдвинуть одно ребро, потом другое... и от модели ничего не останется в итоге. Режим Smart Selection (умное выделение) так называется, видимо, потому, что предлагает вам несколько способов выделения, перебор между которыми осуществляется также клавишей . При выделении зачастую возникает ситуация, когда выделяются не те подобъекты, которые нужно, а те, которые не видны. Чтобы избежать этой ситуации, используйте флажок Ignore Backfacing (Игнорировать подобъекты, нормали которых направлены от наблюдателя).

Ìîäåëèðîâàíèå

293

Иногда удобно использовать выделение "окном" (Window), когда выделяются объекты, попадающие в окно "целиком", либо частью (Crossing). При этом удобно использовать автоматическое переключение между этими режимами, зависящее от начального движения мыши — слева направо или справа налево (Главное меню  Customize  Preferences  вкладка General  группа Scene Selection). Для выделения полигонов удобно также иногда использовать режим By Vertex (по вершинам). При этом выделяются все полигоны, прилежащие к вершине.

 Командой Connect создайте дополнительные ребра по кругу (рис. 2.90, в). Квадрупольное меню  поле напротив команды Connect

Эти ребра — основные, именно из них и будут созданы перетяжки. Сейчас вы это сделаете. Но предварительно нужно удалить некоторые из них. Если присмотреться к подушке внимательнее, то вы увидите, что стежки сделаны так, что элементы подушки примерно равны по площади.  Удалите ненужные ребра командой Remove (клавиша ) так,

как показано на рис. 2.90, г. Также удалите оставшиеся "висячие" вершины (помечены кружочками) командой Remove (клавиша )!

 Выделите все ребра, за исключением крайних по кругу, и примените к ним

команду Chamfer с небольшим значением (рис. 2.90, д). Квадрупольное меню  поле напротив команды Chamfer

 СОВЕТ Выделять в данном случае удобно, идя от "обратного". Выделите крайние ребра, используя команду Loop, а потом инвертируйте выделение (+).

В принципе уже сейчас можно получить результат, похожий на то, что нужно. Достаточно просто при помощи команды Extrude для полигонов вдавить нужные полигоны (там, где пуговицы) внутрь. После применения сглаживания вы получите что-то, похожее на то, что нужно. Если вас это устраивает — можете пропустить дальнейшие шаги до применения модификатора Symmetry (Симметрия). Но для того чтобы получить хорошую форму, геометрия недостаточно сложная. Усложните ее. Самым простым способом является применение команды Tessellate (разбиение).  Выделите все полигоны и примените команду Tessellate (разбиение)

(рис. 2.90, e). Обратите внимание, что после команды Tessellate вы избавляетесь и от треугольных, и пятиугольных полигонов, это очень хорошо!

294

Ãëàâà 2

Командная панель  свиток Edit Geometry  кнопка с изображением "окошка" правее кнопки Tessellate

Не пугайтесь! Все не так страшно, как выглядит. Что необходимо сделать? Нужные вершины передвинуть внутрь, а другие — поднять, только и всего. На рис. 2.90, ж показан небольшой кусочек того, что должно получиться в итоге.  СОВЕТ Вы можете воспользоваться мягким выделением с ограничением по количеству ребер.

а

б Рис. 2.90, а и б. Моделирование круглой подушки

Ìîäåëèðîâàíèå

295

в

г Рис. 2.90, в и г. Моделирование круглой подушки

296

Ãëàâà 2

д

е Рис. 2.90, д и е. Моделирование круглой подушки

Ìîäåëèðîâàíèå

297

ж

з Рис. 2.90, ж и з. Моделирование круглой подушки

298

Ãëàâà 2

и

к Рис. 2.90, и и к. Моделирование круглой подушки

Ìîäåëèðîâàíèå

299

л

м Рис. 2.90, л и м. Моделирование круглой подушки

Конечно, это не самое веселое занятие. Что можно предложить, чтобы ускорить процесс?  Подушка имеет радиальную симметрию. Поэтому сделайте только одну пятую часть, остальное удалите (рис. 2.90, з).

300

Ãëàâà 2

 Сделайте четыре копии объекта, поворачивая его вокруг точки привязки.

Используйте привязку по углу (клавиша ). Не получается? Конечно, не получится. По умолчанию угол привязки равен 5°, а вам нужно повернуть объект на 360/5 = 72°.  Откройте диалоговое окно настроек привязок и установите шаг привязки

по углу равный... 72°, почему бы и нет (рис. 2.90, и)? Только потом не забудьте вернуть обратно.

 После того как вы сделаете копии (именно копии, Copy), присоедините

объекты к одному из них командой Attach, выделите и объедините вершины командой Weld Vertices с малым значением порога срабатывания (рис. 2.90, к).  И, наконец, примените модификатор Symmetry и настройте так, чтобы

получилась целая подушка (рис. 2.90, л).

Главное меню  Modifiers  Mesh Editing  Symmetry

 ПОЯСНЕНИЕ Путем подбора оси симметрии и перемещения этого подобъекта добейтесь правильного результата. Флажки Slice Along Mirror и Weld Seam позволяют отсекать ненужное, т. е. то, что переходит за плоскость симметрии, и объединять вершины на шве.

 После применения модификатора TurboSmooth согните подушку как надо

при помощи модификатора Bend. Все готово (рис. 2.90, м)!  ПОЯСНЕНИЕ

Чтобы вам было удобно разбираться с модификатором Bend, примените к объекту утилиту Reset Xform. Подбирая оси и углы, добейтесь нужного изгиба. А перемещая подобъект Center и изменяя границы действия — нужной формы объекта.

Резонный вопрос — можно ли было начать не с окружности, а с цилиндра с соответствующими настройками (рис. 2.91)? Конечно! Именно так и начните моделирование прямоугольной подушки для стула — с кубика (Box) соответствующим образом поделенного. С ним все значительно проще. Весь процесс показан на рис. 2.92. Наши варианты, прямо скажем, не самые изысканные, вы можете найти в файле project1-furniture-var2.max. Мы уверены, что у вас получится лучше! Достаточно просто подвигав нужные вершины, добиться искомой формы.

Ìîäåëèðîâàíèå

301

Рис. 2.91. Заготовка для круглой подушки на основе цилиндра

а Рис. 2.92, а. Моделирование подушки для стула

302

Ãëàâà 2

б

в Рис. 2.92, б и в. Моделирование подушки для стула

Ìîäåëèðîâàíèå

303

г

д Рис. 2.92, г и д. Моделирование подушки для стула

304

Ãëàâà 2

а

б Рис. 2.93. Экспортирование ребер как сплайнов

Ìîäåëèðîâàíèå

305

И маленькие хитрости. Если вам понадобятся пуговицы, то просто вставьте в нужные места сплющенные сферы. А если вам нужно показать швы, то вы можете сделать их непосредственно из самой мебели. Для этого выделите нужные ребра и при помощи команды Create Shape (рис. 2.93, а) создайте сплайны. Только не устанавливайте в параметрах рендеринга сплайна большие значения для количества сторон, т. к. это далеко не самый важный элемент (рис. 2.93, б). При этом вы можете снять сплайны с ребер малополигональной модели, присоединить их к ней и сгладить.  ЗАМЕЧАНИЕ Вполне возможно, что в процессе моделирования подушек вас не покидала мысль — зачем так сложно, ведь можно просто применить команду Bevel к нужным полигонам (рис. 2.94, а), затем сгладить... и ничего не получилось! (рис. 2.94, б). При сглаживании модификатор пытается из верхних прямоугольников сделать окружности — и это ему почти удается, т. к. в угловых вершинах сходятся три ребра под разными углами. Это ведет к тому, что действие ребра, помеченного стрелкой 1, "перевешивается" влиянием ребер, помеченных стрелками 2, и сетка "натягивается" в их сторону. При способе разреза, примененном нами (рис. 2.94, в, г), в вершине сходятся четыре ребра под 90°, и в результате их действие взаимно компенсируется.

а Рис. 2.94, а. Пояснение к сглаживанию

306

Ãëàâà 2

б

в Рис. 2.94, б и в. Пояснение к сглаживанию

Ìîäåëèðîâàíèå

307

г Рис. 2.94, г. Пояснение к сглаживанию

Ìåáåëü èç ãíóòîé ôàíåðû С деревянной мебелью также все просто. Если это обычные стулья, то они собираются из отдельных деталей, причем в некоторых случаях можно собрать их из примитивов — кубиков. Несколько сложнее мебель из гнутой фанеры. На рис. 2.95 показан самый сложный объект из этой серии, стул. Его и попробуем смоделировать и обсудить некоторые нюансы. Если стул предполагается сделать несколько упрощенным, т. е. без излишних изгибов, то подойдет рассматриваемый далее метод моделирования. По этой технологии легко сделать и стол, и табурет.  Сделайте три сплайна на плоскости, которые представляют собой "выкройки" спинки, сиденья и передних ножек (рис. 2.96, а).  ПОЯСНЕНИЕ Сиденье (в центре) — просто прямоугольник (Rectagle). Спинка сделана из двух прямоугольников, выровненных по нужной оси и объединенных командой Attach. После этого при помощи команды Fillet сделаны скругления для нужных вершин. Чтобы команда Fillet давала вам равномерное скругление, предварительно преобразуйте вершины к типу Corner.

308

Ãëàâà 2 Передние ножки — так же два прямоугольника (показаны слева в уменьшенном виде), но после объединения один из них был вычтен из другого при помощи команды Boolean для сплайнов.

Рис. 2.95. Стул из гнутой фанеры

 Переместите и поверните сплайны так, чтобы получить "стул", и при по-

мощи перемещения с привязками к вершинам совместите их (рис. 2.96, б).  ЗАМЕЧАНИЕ

Обратите внимание, что кнопка Snap Use Axis... отжата (помечено стрелками), так удобнее.

 Преобразуйте один из сплайнов к типу Editable Poly или примените моди-

фикатор Edit Poly, и присоедините к нему все остальные части.  Проверьте, чтобы нормали всех полигонов "смотрели" в одном направле-

нии, при необходимости инвертируйте их. Командная панель  свиток Edit Geometry  Flip  Выберите угловые вершины и объедините их командой Weld Vertices

(рис. 2.96, в).

 При помощи команды Chamfer сделайте скругления для ребер (рис. 2.96, г).

Ìîäåëèðîâàíèå

309

 ПОЯСНЕНИЕ На рисунке показана команда с измененными настройками, появившаяся в 3ds Max 9 Productivity Booster Extension 1. Если у вас не установлено это расширение, то просто выполните команду Chamfer дважды.

 Придайте толщину при помощи модификатора Shell (Оболочка) (рис. 2.96, д).

 ПОЯСНЕНИЕ Вы уже использовали этот модификатор, теперь стоит рассмотреть его настройки подробнее. Параметры Inner Amount и Outer Amount (утолщение внутрь и наружу, т. е. в сторону, противоположную направлению нормали к поверхности и вдоль нее) (рис. 2.96, д) в сумме дают толщину. При этом нормали получаемой поверхности всегда направлены наружу. Имейте в виду, что модификатор Shell не имеет пределов, и вы можете получить пересечение полигонов.

а

б

Рис. 2.96, а и б. Моделирование фанерного стула

310

Ãëàâà 2

в

г Рис. 2.96, в и г. Моделирование фанерного стула

Ìîäåëèðîâàíèå

311

д

е Рис. 2.96, д и е. Моделирование фанерного стула

312

Ãëàâà 2 Вы можете задать количество сегментов и, самое интересное, профиль торцевой поверхности на основе сплайна (показано стрелкой 1). При этом связь со сплайном не теряется. Правда, и удалить его нельзя до тех пор, пока стек с модификатором Shell не свернут. Группа параметров, помеченная цифрой 2, позволяет вам разделить результат по Material ID, так же, как вы делали со светильниками для мостика и ступенями бассейна. Параметры, помеченные стрелкой 3, отвечают за визуальное сглаживание получаемых поверхностей. Параметры в выпадающем списке Edge Mapping помогают при текстурировании и предлагают следующие варианты: •

Copy (копия) — каждая новая грань наследует текстурные координаты той, к которой она примыкает.



Nonе — текстурные координаты сбрасываются, в результате ребро получает цвет верхнего левого пиксела текстуры — неплохой способ покрасить торцы в один цвет.



Strip (лента) — текстурные координаты растягиваются в одну линию, это позволяет, например, без проблем положить текстуру торца фанеры.



Interpolate (усреднение) — в этом случае текстура "перетекает" от одной поверхности к другой, если они "затекстурены" по-разному.

Флажки Select Edges и Select Outer Faces выделяют те или иные ребра, что облегчает редактирование в дальнейшем, например, если вам нужно будет снять фаски или сделать выдавливание ребер (команда Extrude). И, наконец, флажок Straighten Corners (выправить углы, стрелка 4). Если этот флажок не установлен, то модификатор Shell пытается сохранить толщину с учетом нормали к поверхности, в результате вы получаете нежелательные округления на углах, что очень плохо выглядит, например, при придании толщины стенам. Установка этого флажка решает эту проблему.

Задние ножки сделать еще проще. Используйте сплайны, модификаторы Extrude и Shell, причем можно просто скопировать последний модификатор с одного объекта на другой (рис. 2.96, e). Первый объект  контекстное меню стека модификаторов  Copy Второй объект  контекстное меню стека модификаторов  Paste или Paste Instance

В том случае, если для достижения изящества форм фанера изогнута более сложно, стоит применять более продвинутые методы моделирования, аналогичные рассмотренным далее. Ïëàñòèêîâàÿ ìåáåëü С пластиковой мебелью так просто не получится. Как правило, такая мебель представляет собой единый кусок пластмассы, и моделировать ее нужно либо

Ìîäåëèðîâàíèå

313

"одним куском", либо с использованием разных объектов с последующим объединением вершин в местах стыков. Мы предлагаем рассмотреть первый вариант.  СОВЕТ Если вы не собираетесь углубляться в дебри полигонального моделирования — не пожалейте денег и купите себе несколько библиотек "на все случаи жизни", например, от компании Dosch Design (https://doschdesign.com /products/3d/).

На примере классического пластикового стула (рис. 2.97) мы покажем, как моделируется такая мебель. Очень хорошо, если у вас под рукой есть такой стул "живьем".

Рис. 2.97. Модель пластикового стула

 СОВЕТ Если у вас есть чертежи такого стула, то воспользуйтесь ими. Если нет, то подойдут и просто фотографии, сделанные с нужных сторон.

Моделировать стоит только одну половину стула, т. к. стул симметричен. Поэтому начните моделирование с плоскости (объекта Plane) по размеру половины сиденья без учета ножек и закругления спинки. Количество разбиений установите таким, чтобы сразу предусмотреть отверстия в сиденье и спинке.  Создайте плоскость с параметрами, показанными на рис. 2.98, а. Размеры на рисунке приблизительные, если же вы моделируете конкретный стул, то и размеры подберите с учетом этого. Главное меню  Create  Standard Primitives  Plane

314

Ãëàâà 2

 Преобразуйте плоскость к редактируемым полигонам, нет смысла тянуть

за собой плоскость, все равно вам не придется к ней возвращаться. Квадрупольное меню  Convert To  Convert to Editable Poly  Перемещая вершины, придайте объекту форму сиденья (рис. 2.98, б).  Выделив нужные ребра и перемещая их, удерживая , вытяните

спинку (рис. 2.98, в).

 Перемещая вершины, добейтесь нужной формы спинки (рис. 2.98, г).

Если бы стул не имел подлокотников, то дальше все было бы просто, можно было бы уже начинать тянуть ножки. На рис. 2.98, д показано, что можно было бы сделать.  СОВЕТ Для таких экспериментов удобно применять модификатор Edit Poly. Если чтото не получилось — его всегда можно удалить. Если все в порядке, то просто сверните стек.

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

го будет "расти" подлокотник (рис. 2.98, е).

 И вот теперь можно вытянуть ножки. Сделайте это в

два приема — сначала вытяните нужные ребра для создания закругления боков стула. При помощи команды Make Planar по оси Z сделайте их планарными (рис. 2.98, ж). Потом вытяните нужные ребра несколько раз и придайте нужную форму ножкам, перемещая вершины (рис. 2.98, з).  Теперь можно "выращивать" подлокотник. Удобно начать это, вытянув

несколько раз полигон командой Extrude (рис. 2.98, и), удалить ненужные полигоны (показаны стрелками), и вытянуть ребра в сторону спинки (рис. 2.98, к).

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

спинке. Для этого выделите ребра, показанные стрелками на рис. 2.98, к, и соедините их командой Connect (рис. 2.98, л).

 Выделите торцевые ребра на подлокотнике и соответствующие им ребра

на спинке и соедините командой Bridge для ребер (рис. 2.98, м).

 Доработайте ножки (рис. 2.98, н).

Ìîäåëèðîâàíèå

315

а

б Рис. 2.98, а и б. Моделирование пластикового стула. Этап 1

316

Ãëàâà 2

в

г Рис. 2.98, в и г. Моделирование пластикового стула. Этап 1

Ìîäåëèðîâàíèå

317

д

е Рис. 2.98, д и е. Моделирование пластикового стула. Этап 1

318

Ãëàâà 2

ж

з Рис. 2.98, ж и з. Моделирование пластикового стула. Этап 1

Ìîäåëèðîâàíèå

319

и

к Рис. 2.98, и и к. Моделирование пластикового стула. Этап 1

320

Ãëàâà 2

л

м Рис. 2.98, л и м. Моделирование пластикового стула. Этап 1

Ìîäåëèðîâàíèå

321

н

о Рис. 2.98, н и о. Моделирование пластикового стула. Этап 1

322

Ãëàâà 2

п Рис. 2.98, п. Моделирование пластикового стула. Этап 1

 ЗАМЕЧАНИЕ Иногда при работе с полигонами, особенно при использовании команды Cut, возникает самопроизвольные разрывы вершин. Трудно сказать, с чем это связано. Чтобы этого избежать, мы рекомендуем иногда выделять все вершины и применять команду Weld с очень маленьким порогом срабатывания (рис. 2.98, о). Вторая проблема, которая может возникнуть, является следствием халатности разработчиков 3ds Max. Если вы случайно начнете перемещать полигоны или вершины с нажатой клавишей , то вам будет предложено либо сделать копию в виде объекта, т. е. аналогично команде Detach, либо в качестве элемента, и второй пункт установлен по умолчанию. Кнопки Cancel не предусмотрено, и самое плохое — это то, что простое закрытие окна расценивается как подтверждение! После этого обязательно нужно отменить действие или удалить вручную получившиеся полигоны или вершины.

 Поработайте с формой, перемещая вершины. В первом приближении мо-

дель готова (рис. 2.98, п)!  ПОЯСНЕНИЕ

Примените модификатор Symmetry. Подберите направление и положение плоскости симметрии, меняя оси и используя флажок Flip, а так же перемещая подобъект Mirror. Флажки Slice Along Mirror и Weld Seam позволяют отсекать

Ìîäåëèðîâàíèå

323

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

Наш стул на этом этапе вы можете найти в файле project1-furniture-var401.max. Дальше немного сложнее. Если сейчас применить модификатор TurboSmooth, то модель будет очень сглаженной (рис. 2.99, а). Связано это с недостаточно сложной геометрией. Обычно такая мебель имеет небольшие радиусы скругления в нагруженных местах, для обеспечения жесткости. Кроме этого, есть и другие проблемы. И совсем забыли про отверстия в сиденье и спинке! Сейчас будем дорабатывать.  Сначала сделайте фаски командой Chamfer для нужных ребер. Чтобы све-

сти к минимуму дальнейшую "вычистку" геометрии, снимите фаску сразу на нужных ребрах, выделив их так, как показано на рис. 2.99, б. Используйте при этом команду Loop. Но есть одна проблема. При попытке сделать фаски командой Chamfer 3ds Max некоторое время "думает" и, выдав ошибку, радостно "рассыпается". Критичными оказываются места, помеченные стрелками, т. е. места с разворотом нормалей. Что же, придется делать по очереди (рис. 2.99, в). Правда, это было замечено только на процессорах AMD, на Intel Pentuim 4 все проходит благополучно. Поэкспериментируйте, но не забывайте сохраняться!  После команды Chamfer приведите в порядок "проблемные места"

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

 ВАЖНО! Для того чтобы эта команда работала, необходимо, чтобы между вершинами было ребро или не было полигона.

 Чтобы избежать излишнего закругления на подлокотнике, доработайте его

так, как показано на рис. 2.99, д. Основные инструменты здесь — Chamfer для вершины, Target Weld и Cut.

 Нечто подобное сделайте и в месте соединения подлокотника и спинки.

324

Ãëàâà 2

И самое проблемное место, показанное на рис. 2.99, е, почти перестает быть проблемным после того, как будет доработано до состояния рис. 2.99, ж путем удаления ребра и применения команды Cut. Но только "почти". Вы к нему еще вернетесь. Наш стул на этом этапе вы можете найти в файле project1-furniture-var402.max. Теперь отверстия. При этом слове у вас не должно возникнуть ассоциации со словом "Boolean". Никаких "булей"!  Сделайте дополнительный поперечный разрез на сиденье, выделите нуж-

ные ребра и примените к ним команду Chamfer с установленным флажком Open (рис. 2.99, з).  ПОЯСНЕНИЕ Отверстия посередине лучше делать после применения модификатора Symmetry. Флажок Open дает возможность сразу получить отверстие.

 И опять дорабатываем геометрию при помощи команд Connect и Cut

(рис. 2.99, и). Посмотрите, как грамотно вы разобрали "противное место" (на врезке).

Дальнейшее моделирование сводится к усложнению геометрии и перемещению вершин с целью придания нужной формы.  После применения симметрии и прорезания отверстий на оси симметрии

получается вот такой стул (рис. 2.99, к).

Наш стул вы можете найти в файле project1-furniture-var4-03.max.  После применения модификатора Shell с параметрами, показанными на

рис. 2.99, л, и модификатора Turbosmooth с одной или двумя итерациями вы получаете прекрасный стул (рис. 2.99, м).  ЗАМЕЧАНИЕ

Не совсем прекрасный. Немного несуразно смотрится недоведенное до конца ребро жесткости возле ножки. Попробуйте решить эту проблему самостоятельно, применив после модификатора Shell модификатор Edit Poly, и, удаляя и создавая заново полигоны, достройте геометрию.

Наш стул вы можете найти в файле project1-furniture-var4-final.max. Ну, а с моделированием стола или табуретки вообще не должно быть проблем.

Ìîäåëèðîâàíèå

325

а

б Рис. 2.99, а и б. Моделирование пластикового стула. Этап 2

326

Ãëàâà 2

в

г Рис. 2.99, в и г. Моделирование пластикового стула. Этап 2

Ìîäåëèðîâàíèå

327

д

е

ж Рис. 2.99, д—ж. Моделирование пластикового стула. Этап 2

328

Ãëàâà 2

з

и Рис. 2.99, з и и. Моделирование пластикового стула. Этап 2

Ìîäåëèðîâàíèå

329

к

л Рис. 2.99, к и л. Моделирование пластикового стула. Этап 2

330

Ãëàâà 2

м Рис. 2.99, м. Моделирование пластикового стула. Этап 2

Ýëåìåíòû îãðàäû è âîðîò Хотя в нашей стране ограды в большинстве случаев представляют собой либо сетку-рабицу на металлических столбах, либо глухие трехметровые заборы, иногда из кирпича, тем не менее, мы предлагаем сделать ограду в классическом стиле — кованые секции на кирпичных оштукатуренных столбах. В том же духе будут выполнены ворота. На рис. 2.100 показан эскиз ворот и ограды. Также имеется чертеж в формате AI в масштабе 1:20, он называется gate.ai. Вы уже знаете, что с ним делать — импортируйте его в сцену и увеличьте в 20 раз. Моделирование начните с самого простого — со столба. Поскольку столб в плане квадратный, то вы можете воспользоваться для его создания модификатором Lathe (Вращение).

Ìîäåëèðîâàíèå

331

Рис. 2.100. Ворота и ограда

Сделайте полуконтур столба, обведя его с использованием привязок, или просто используйте чертеж "напрямую", как вам больше нравится. Контур столба показан на рис. 2.101, а.  СОВЕТЫ При обводке, чтобы избежать проблем с инвертированием нормалей, создавайте контур против часовой стрелки (показано стрелками на рис. 2.101, а). Для масштабирования и перемещения вида в окне проекции используйте клавиши , и , но не используйте среднюю кнопку мыши!

 Примените модификатор Lathe и настройте его так, как показано на

рис. 2.101, б.

 ПОЯСНЕНИЕ Самое главное — установите 4 сегмента (стрелки 1 на рис. 2.101, б) и снимите флажок Smooth (сглаживание) (стрелка 2). Остальное вы уже знаете.

Что-то не так? Совершенно верно, столб развернут. Давайте исправлять ситуацию.  Поверните объект на 45° вокруг оси Z.  Используя привязки, перенесите объект углом основания в соответствую-

щий угол на чертеже (рис. 2.101, в, показано стрелкой).

Теперь внимательно посмотрите на то, что получилось (рис. 2.101, г). Есть проблема — несовпадение исходного контура и контура, получившегося в результате создания поверхности. Решение этой проблемы заключается в масштабировании объекта по двум осям — X и Y (в мировой системе). Не самое лучшее решение, но ничего не поделаешь. Для того чтобы контролировать процесс, хотелось бы масштабировать относительно угла столба. Можно просто перенести в это место точку привязки.

332

Ãëàâà 2

Но мы предлагаем вам использовать достаточно сложную, но эффективную возможность 3ds Max. Использовать ее можно не только для масштабирования, но и вращения.  Перейдите в режим неравномерного масштабирования (Non-Uniform Scale). Главная панель  выпадающее меню кнопок Select and ...Scale  Select and Non-Uniform Scale  Выберите в качестве центра трансформаций начало координат. Главная панель  выпадающее меню кнопок Use... Center  Use Transform Coordinate Center  Выберите в контейнере трансформаций (Gizmo) нужную плоскость.  Включите привязки к вершинам и режим привязок.

а

б Рис. 2.101, а и б. Моделирование столба ограды

Ìîäåëèðîâàíèå

333

в

г Рис. 2.101, в и г. Моделирование столба ограды

334

Ãëàâà 2

д

е Рис. 2.101, д и е. Моделирование столба ограды

Ìîäåëèðîâàíèå

335

ж Рис. 2.101, ж. Моделирование столба ограды

 Щелкните по вершине, относительно которой вы хотите масштабировать,

и масштабируйте (рис. 2.101, д). К сожалению, контролировать процесс придется на глазок.  ЗАМЕЧАНИЕ Эта сложная последовательность действий в 3ds Max 2008 заменена на более эффективный способ с использованием временной рабочей точки привязки (Working Pivot).

Теперь форма столба соответствует нужной, плюс-минус пара процентов.  Сбросьте трансформации командой Reset Xform и установите точку при-

вязки в центр основания столба (рис. 2.101, е).

Командная панель  подпанель Utilities  Reset Xform  Reset Selected Командная панель  подпанель Hierarchy  Affect Pivot Only  Center To Object, затем переместите в основание столба

И еще необязательное, но в некоторых случаях желательное действие — снимите фаски с нужных ребер. С каких именно? Со всех!  Примените модификатор Edit Poly, выделите все ребра и примените

команду Chamfer с небольшим значением (рис. 2.101, ж). Следите только, чтобы не возникло пересечений.

336

Ãëàâà 2

Остальные элементы ограды вы можете смоделировать так, как вам больше нравится. Если вертикальные элементы достаточно сложные, то их можно сделать при помощи все того же Lathe. Только не увлекайтесь с количеством сегментов, 6—8 вполне достаточно. Если же они несложные, как в нашем случае, то можно в качестве заготовки выбрать сплайн, установить ему флажки Enablе in Viewport, значение толщины и количество сегментов в свитке Rendering, а потом на полигональном уровне, применив модификатор Edit Poly и используя команды Extrude и Bevel (именно команды, а не модификатор, это совсем разные вещи!), придайте концам нужную форму. Если они не круглые в плане, то просто переместите нужные вершины. Весь процесс показан на рис. 2.102. После этого выделите все полигоны и задайте им одну группу сглаживания, или разделите по группам так, как вам покажется нужным. При этом можно использовать автоматическое присвоение групп сглаживания.  СОВЕТ Если вы ошиблись с толщиной прутьев, то можете вернуться вниз по стеку и изменить значение в свитке Rendering. Но только этот параметр! Больше ничего менять нельзя!

 Сделайте копии и объедините нужные объекты в единый объект — со-

вершенно нет никакой необходимости тащить за собой такое количество объектов. Только имейте в виду, что вы уже не сможете вернуться к уровню Editable Spline.  Поперечные прутья — это сплайны, Line или Arc (дуга). Вспоминайте

мостик.  Несущие элементы ворот скомбинируйте из прямоугольников, используя

булевы операции объединения для сплайнов на уровне подобъектов, затем при помощи модификатора Extrude или Bevel (если вам нужны фаски) создайте окончательную геометрию (рис. 2.103, а). Командная панель  Выпадающий список модификаторов  Bevel  Выровняйте объекты при помощи команды Align (рис. 2.103, б).

 ВАЖНО! Старайтесь избегать наложений поверхностей! Это касается и пересечения вертикальных и горизонтальных прутьев! Сделать это можно, например, используя разную толщину сплайнов.

Ìîäåëèðîâàíèå

337

а

б Рис. 2.102, а и б. Моделирование вертикальных элементов ограды

338

Ãëàâà 2

в

г Рис. 2.102, в и г. Моделирование вертикальных элементов ограды

Ìîäåëèðîâàíèå

339

д Рис. 2.102, д. Моделирование вертикальных элементов ограды

а Рис. 2.103, а. Моделирование ворот

340

Ãëàâà 2

б

в Рис. 2.103, б и в. Моделирование ворот

Ìîäåëèðîâàíèå

341

г

д Рис. 2.103, г и д. Моделирование ворот

342

Ãëàâà 2

 Петли можно сделать из примитивов Chamfer Cylinder (цилиндр с фас-

ками) (рис. 2.103, в), а замок — из Chamfer Box (кубик с фасками) (рис. 2.103, г). Главное меню  Create  Extended Primitives  Chamfer Cylinder, Chamfer Box

 Объедините все в одно целое, выбрав какой-либо объект, преобразовав его

к типу Editable Poly или применив модификатор Edit Poly, и воспользовавшись командой Attach.  СОВЕТ Мы не планируем создавать анимацию открывания и закрывания ворот, но если такая анимация планируется, то лучше элементы ограды присоединить к "петлям", т. к. у них точка привязки находится в нужном месте. В противном случае вам придется перенести ее вручную.

Вот такая ограда, и ворота получились (рис. 2.103, д). Наш файл на этом этапе называется Project1-Fence01.max. Мы еще разнесли ограду и ворота по двум разным слоям, Fence и Gate. Чего-то не хватает... Декоративных элементов в виде "завитушек"! Вариантов создания таких завитушек несколько, и все зависит от того, насколько детализированными и "похожими на правду" они нужны. Первый вариант — не очень красивый вблизи, но вполне рабочий.  Выделите одну завитушку в исходном чертеже и отделите командой Detach (рис. 2.104, а).  Как видите, вершин много, поэтому преобразуйте все вершины к типу Smooth, а интерполяцию установите равной 0. Можно при этом удалить вершины там, где их много, и добавить там, где не хватает, командой Refine. Обязательно проверьте сплайн на замкнутость и самопересечения, их быть не должно.  Примените модификатор Bevel (или даже Extrude) и выполните настройки так, как показано на рис. 2.104, б.  ПОЯСНЕНИЕ Обратите внимание, какие маленькие значения нужно задать для параметров. Это связано с тем, что объект масштабировался, и трансформации не были сброшены. Установленный флажок Keep Lines From Crossing позволяет вам избавиться от нежелательных самопересечений получаемой поверхности. Только не делайте порог слишком большим.

 После этого примените модификатор Smooth и назначьте одну группу

сглаживания на объект (рис. 2.104, в).

Главное меню  Modifiers  Mesh Editing  Smooth

Ìîäåëèðîâàíèå

343

Грубовато? Пожалуй, да. Но если ограда на окончательной картинке является не самым важным элементом и завитушка занимает площадь 7×5 пикселов, то почему бы и нет? Тем более что вы можете отредактировать ее на полигональном уровне. Второй способ сложнее, но при этом дает вам возможность получить объект с различной степенью детализации. Делается это при помощи составного объекта Loft. Смысл "лофтинга" заключается в построении поверхности путем "прогона" сечения по пути и похож по смыслу на модификатор Sweep. Вот тут требуется небольшой экскурс в историю. Когда-то, "давным-давно", метод "лофтинга" был чуть ли не единственным способом создания сложных поверхностей в 3D Studio для DOS и 3D Studio MAX. Действительно, и сейчас вы в этом убедитесь, возможностей у "лофта" (loft) очень много! Многие уважаемые авторы в своих книгах по 3ds Max до сих пор начинают рассмотрение моделирования в 3ds Max с "лофта", отводя описанию его возможностей большие объемы, при этом о других методах упоминая вскользь. Но благодаря тому, что в 3ds Max появилось большое количество решений, которые уже рассмотрены в этой главе, сфера применения "лофта" значительно сократилась. Мы очень надеемся, что вы не будете "лофтить" провода и прутья, плинтусы и столбы, фонари, ландшафты и т. д.! Но иногда без "лофта" действительно трудно, например, в случае завитушек. Давайте попробуем!

а Рис. 2.104, а. Моделирование завитушки. Вариант 1

344

Ãëàâà 2

б

в Рис. 2.104, б и в. Моделирование завитушки. Вариант 1

Ìîäåëèðîâàíèå

345

Для "лофта" нужны как минимум два сплайна — путь и хотя бы одно сечение. При этом есть некоторые ограничения и правила.  Сплайн пути должен содержать только один подобъект-сплайн.  Если используется несколько сечений, то в каждом из них количество сплайнов должно быть одинаково.  Если одно сечение замкнуто, то и все остальные должны быть замкнутыми.  Желательно (но необязательно), чтобы количество вершин в сечениях совпадало. В противном случае при "лофтинге" с сечениями с разным количеством вершин будет происходить плавное усложнение или упрощение поверхности, дающее иногда очень причудливые артефакты. Поэтому при "лофтинге" по нескольким сечениям стараются добиться более простого сечения перемещением вершин на копии более сложного.  Значение масштабирования объекта-сечения не передается "лофту", как, впрочем, и некоторым другим модификаторам (например, Sweep) и составным объектам. Можно ли использовать в качестве пути для "лофта" что-нибудь из нашего чертежа? К сожалению, нет. Дело в том, что чертеж был изначально подготовлен в пакете Xara Xtreme, и завитушки были сделаны путем применения кистей. Как видите, при экспорте в формат AI они были преобразованы в замкнутые контуры с большим количеством вершин. Чтобы воспользоваться этими сплайнами, нужно было перед экспортом сбросить настройки кистей. Но раз это не сделано — что же, нет никаких препятствий перерисовать сплайн, проходящий по середине завитушки, в 3ds Max (рис. 2.105, а). На этом же рисунке показаны сечения — окружность и квадрат, сделанный из окружности. Второе сечение не обязательно, оно сделано только для демонстрации процесса добавления сечения.  Выделите путь и на основе него создайте объект типа Loft (рис. 2.105, б). Главное меню  Create  Compound  Loft Нажмите на кнопку Get Shape (загрузить сечение) и щелкните на окружности

 ПОЯСНЕНИЯ Настройки "лофта" стоит проводить теперь в режиме Modify. Подобъектами "лофта" являются сечения (Shape) и путь (Path) (стрелка 1 на рис. 2.105, б). Перейдя на эти уровни и выбрав нужный подобъект, вы всегда можете поправить что-нибудь, например, форму пути. Этим вы воспользуетесь в дальнейшем, скопировав эту завитушку и сделав на ее основе все остальные. В свитке Creation Method имеются две кнопки, которые предназначены для того, чтобы можно было создавать "лофт" как на основе пути, так и на основе сечения (стрелка 2). Там же есть переключатель Move/Copy/Instance, он является общим для всех составных объектов, и подробно обсуждался ранее.

346

Ãëàâà 2 В свитке Surface Parameters (параметры поверхности) вы можете задать, будет или нет поверхность сглажена по длине или контуру (стрелка 3). В нашем случае стоит эти флажки оставить установленными. Так же стоит включить режим генерации текстурных координат (стрелка 4). В нашем случае это не очень важно, а вот при создании, например, дорог сложной формы, эта опция помогает легко нанести разметку по всей длине дороги. Переключатель в группе Output оставьте в положении Mesh (стрелка 5), возможности лоскутов (Patch) в данном случае нам не пригодятся. "Лофт" обладает своим механизмом управления сложностью поверхности (стрелка 6), поэтому нет необходимости заботиться об интерполяции исходных сплайнов. Установите количество шагов для пути и сечения небольшими, достаточно 1 или 2, нам не нужна сложная завитушка, т. к. их будет много. Остальные флажки в этом свитке по умолчанию установлены так, как надо. Часть из них вам уже знакома. При желании вы сами можете разобраться с остальными. Предупреждаем вас только об использовании флажка Optimize Shape (оптимизация сечения). Смысл его тот же, что и для сплайнов, и при переходе от криволинейных сечений к сечениям, содержащим прямые участки, вы получите весьма неприятный результат — Loft попытается сделать этот переход, постепенно уменьшая или увеличивая сложность поверхности, добавляя треугольники. Результат выглядит крайне некрасиво. Но при использовании сечений с прямолинейными участками, расположенными одинаково (например, прямоугольники с закругленными углами), этот флажок позволит вам значительно упростить окончательную геометрию.

Давайте попробуем добавить новое сечение.  Откройте свиток Path Parameters (параметры пути) и измените значение параметра Path, например, до 30%. Вы увидите, как по пути переместится желтый крестик. Если теперь в этом состоянии добавить другое сечение кнопкой Get Shape, то вы получите плавный переход от одного сечения к другому (рис. 2.105, в). Вставляя в нужные места соответствующие сечения и затем, находясь на уровне работы с сечениями, вы можете выделять их, перемещать, вращать и масштабировать, добиваясь интересных результатов (рис. 2.105, г). Но в нашем случае достаточно одного круглого сечения. Изменять форму завитушки мы будем по-другому.  Откройте свиток Deformation (Деформации) и откройте окно управления

деформацией масштабирования (Scale) (стрелка 1 рис. 2.105, д). В открывшемся окне с кривой, управляющей деформацией, добавьте две точки (стрелка 2), и, меняя значение, перемещая эти точки, добейтесь нужной формы завитушки. Здорово?

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

Ìîäåëèðîâàíèå

347

а

б Рис. 2.105, а и б. Моделирование завитушки. Вариант 2

348

Ãëàâà 2

в

г Рис. 2.105, в и г. Моделирование завитушки. Вариант 2

Ìîäåëèðîâàíèå

349

д Рис. 2.105, д. Моделирование завитушки. Вариант 2

Вторую завитушку можно сделать так же. А можно просто скопировать уже готовую и изменить форму пути (рис. 2.106).

Рис. 2.106. Вторая завитушка

350

Ãëàâà 2

Перемещая и поворачивая завитушки на 180°, копируя их при этом (лучше при этом использовать метод Instance, вполне возможно, что вам придется что-нибудь подправить), удерживая кнопку , расположите их так, как надо.  СОВЕТ Вам придется выравнивать вновь полученные объекты. Лучше всего это сделать сразу, до копирования, для одного объекта. Но если вы этого не сделали, то удобно выделять объекты по имени (клавиша ). При этом при вводе начальных букв будут выделяться все объекты, название которых начинается с них.

После того как все завитушки будут размножены, присоедините их к нужным объектам командой Attach. Вот такие ограда и ворота получились (рис. 2.107).

Рис. 2.107. Ограда и ворота

Ìîäåëèðîâàíèå

351

 СОВЕТ Объединение — это очень ответственный момент! После объединения вы уже не сможете вернуться к параметрам "лофта"! Поэтому если вам нужны эти объекты для дальнейшего использования и редактирования, то сохраните их в отдельные файлы при помощи команды File  Save Selected.

 ЗАМЕЧАНИЕ Продвинутые пользователи 3ds Max могут спросить — почему поворачивая, а не применяя команду Mirror? Команда Mirror — это очень "хитрая" команда, суть которой заключается в масштабировании объекта вокруг той или иной оси на -100%. Лучше ее избегать, если есть возможность.

 Сгруппируйте объекты в две группы, Gate и Fence, переместите точки

привязки групп в основание столбов и сохраните. Наш файл на этом этапе называется Project1-Fence-Final.max. Мы чувствуем, что вам не терпится вставить ваши объекты в проект! Так чего же вы ждете, сделайте это сейчас!  Откройте ваш проект, или воспользуйтесь нашим

вариантом, Project1-11.мах, и загрузите объекты либо методом drag-and-drop, либо при помощи команды File  Merge.  Разместите их там, где они должны быть (рис. 2.108, а). Вполне возможно,

что вам придется подредактировать дорогу и бордюр. Сделать это просто, т. к. стеки не свернуты, и вы можете вернуться по стеку к уровню сплайнов. Также это можно сделать при помощи модификаторов Edit Poly либо Edit Mesh. Теперь нужно обнести забором весь участок. Если известно расстояние между столбами, то это легко сделать при помощи инструмента Array (массив). Но даже если оно неизвестно, то и тут этот инструмент вам поможет.  Настройте вид в окне проекции так, чтобы было просто контролировать

процесс. К сожалению, инструмент Array не позволяет настраивать параметры интерактивно.  Выделите группу Fencе и примените инструмент Array (рис. 2.108, б). Главное меню  Tools  Array

 ПОЯСНЕНИЕ Прежде всего, включите режим Preview (стрелка 1 на рис. 2.108, б). Этот инструмент позволяет строить интересные массивы объектов, но нас интересует одномерный массив с таким шагом по оси X, при котором забор не рассыпался (стрелка 2).

352

Ãëàâà 2 Задайте количество копий "с запасом" (стрелка 3), и обязательно — Instance (стрелка 4)! Нажмите кнопку OK и удалите лишнее.

На углу размножаемый объект вышел за границу, определенную планом (рис. 2.108, в). Ничего страшного, это вы исправите позже. Пока же поверните эту угловую секцию на 90°, расположите так, как нужно, и постройте массив с уже известным шагом, но уже по другой оси (рис. 2.108, г). Как видите, забор красиво уходит под землю. Если бы рельеф имел постоянный уклон, то можно было бы подкорректировать это при помощи введения шага по оси Z. Но в нашем случае это невозможно, поэтому придется нужные секции поднимать вручную.  СОВЕТ Чтобы при этом не возникло "левитации", откройте группу и увеличьте высоту основания, выделив нижние полигоны или вершины столба и фундамента, и перенесите вниз.

а Рис. 2.108, а. Размещение элементов ограды

Ìîäåëèðîâàíèå

353

б

в Рис. 2.108, б и в. Размещение элементов ограды

354

Ãëàâà 2

г Рис. 2.108, г. Размещение элементов ограды

Обнесите весь участок забором и установите вторую створку ворот. Вполне возможно, что вам придется дорабатывать некоторые секции. Открывайте группы и вносите изменения, не забыв предварительно сделать объекты уникальными. Все получилось. Только есть одно "но" — в сцене уже сейчас примерно 1 500 000 (полтора миллиона) полигонов! Для рендеринга это не является большой проблемой, т. к. большинство моделей скопированы методом Instance. В этом случае при трансляции геометрии в формат рендерера такие объекты передаются один раз и вызываются в нужном месте по мере надобности.  ЗАМЕЧАНИЕ Узнать, сколько полигонов в вашей сцене, вы можете, открыв окно информации (File  Summary Info) (рис. 2.109, а), либо выведя статистику непосредственно на экран (контекстное меню окна проекции  Show Statistics, или клавиша

Ìîäåëèðîâàíèå

355

на основой клавиатуре). Что показывать и что не показывать задается в окне конфигурации окна проекции (контекстное меню окна проекции  Configure  вкладка Statistics) (рис. 2.109, б).

а

б Рис. 2.109. Окно информации (а) и настройка отображения статистики (б)

356

Ãëàâà 2

А вот в окнах проекции с ними работать — уже проблематично. Решений здесь можно предложить несколько. Первое решение — пользоваться режимом Adaptive Degradation (адаптивное упрощение). Этот режим включается и выключается клавишей или в меню Views. При этом при манипуляциях (вращении и т. д.) с объектами или видом все объекты в сцене преобразуются в габаритные контейнеры (Bounding Box). Этот режим очень часто включается случайно. Второй, более продвинутый механизм, называется Object Display Culling (отсечение объектов). Включается или отключается он сочетанием клавиш + и настраивается при помощи одноименной утилиты (Командная панель  подпанель Utilities  More...  Object Display Culling). При настройках, показанных на рис. 2.110, при уменьшении частоты смены кадров ниже 15 кадров в секунду, некоторые объекты будут отображаться в виде Bounding Box. При этом сначала "деградируют" объекты, расположенные на большем расстоянии от наблюдателя.

Рис. 2.110. Настройки Object Display Culling

И, наконец, самый правильный, на наш взгляд, способ. В 3ds Max каждый объект может быть представлен в виде габаритного контейнера. И если вы работаете со слоями, то так представить можно все объекты в слое (рис. 2.111), установив соответствующий флажок в настройках слоя.  СОВЕТ Не всегда это срабатывает. Если вы сделали так, и у вас ничего не получилось, то это означает, что объекты в слое не используют настройки слоя. Выделите все объекты в слое (Менеджер слоев  контекстное меню слоя  Select) и задайте всем объектам режим отображения By Layer (Квадрупольное меню  Object Properties  группа Display Properties). Вы можете поместить в панель инструментов кнопку для быстрого переключения в этот режим (Главное меню  Customize  Customize User Interface  Toolbars  перенесите кнопку By Layer Properies for Selected Objects на панель инструментов).

Наш проект на этом этапе называется Project1-12.max.

Ìîäåëèðîâàíèå

357

Рис. 2.111. Отображение объектов в слое в виде габаритного контейнера

И все же — полтора миллиона полигонов, из них миллион триста тысяч — только на решетки, причем не самые сложные — это слишком расточительно! Чем можно заменить решетку? Плоскостями! Да, да, банальными плоскостями с материалом с использованием карт прозрачности и нормалей. Как сделать такие карты и как их использовать, рассказано в приложении.

Ìîäåëèðîâàíèå áåñåäêè Готовая модель беседки показана на рис. 2.112. Она создана "по мотивам" реальной беседки по фотографии, которая не приводится здесь по известным причинам. Данные к фотографии были такие:  ширина секции — 150 см;  высота столбов — 230 см;  размер по диагонали — 400 см. Все. Еще известно, что она восьмигранная в плане. Но информации почти достаточно, поэтому начнем моделирование. Сделайте основание.  Создайте восьмиугольник (NGone). При желании можно немного скруглить углы, но при этом уменьшите значение интерполяции до 1-го шага (рис. 2.113, а). Главное меню  Create  Shapes  NGone  Используя модификатор Bevel, создайте геометрию (рис. 2.113, б). Не за-

будьте о флажках для генерирования текстурных координат! Командная панель  Выпадающий список модификаторов  Bevel

358

Ãëàâà 2

Рис. 2.112. Модель беседки

 СОВЕТ Перенесите этот объект в начало координат (X = Y = Z = 0), так вам будет проще клонировать секции, столбы, элементы крыши и т. д.

Для точного моделирования требуются некоторые дополнительные построения. Не очень понятно, что понимается под шириной секции. Если это действительно ширина вставки между столбами — это одно, а если это расстояние между центрами столбов — то это немного другое. Такие вещи нужно уточнять. Предположим, что у нас второй вариант и вычислим реальную ширину секции. Определите положение столбов.  Создайте еще один восьмиугольник, без закруглений, и выровняйте его по

центру исходного.  В панели Utilities запустите утилиту Measure (измерение) и создайте плавающее окно (New Floater).  Изменяя радиус восьмиугольника параметрами, добейтесь, чтобы значение Length (длина) было равно 1200 см (150×8).

Ìîäåëèðîâàíèå

359

а

б Рис. 2.113, а и б. Моделирование беседки. Этап 1

360

Ãëàâà 2

в

г Рис. 2.113, в и г. Моделирование беседки. Этап 1

Ìîäåëèðîâàíèå

361

д Рис. 2.113, д. Моделирование беседки. Этап 1

Становится понятным, что под "размером по диагонали" в таблице понимается диагональ внутреннего помещения беседки, т. е. расстояние между противоположными столбами (рис. 2.113, в). Исправьте размеры основания, увеличив радиус на 20 см.  Создайте сечение столба, это просто квадрат со стороной 10 см и неболь-

шим скруглением углов. Удобно это сделать сразу по месту (рис. 2.113, г).  ПОЯСНЕНИЕ

В параметрах создания Rectangle в свитке Creation Method установите переключатель в положение Center. Включите привязку к вершинам и режим привязок (клавиша ). Создайте прямоугольник и настройте его размеры.

362

Ãëàâà 2

е Рис. 2.113, е. Моделирование беседки. Этап 1

 Примените модификатор Extrude на 230 см и установите столб на основа-

ние, исходя из его высоты.  Создайте круговой массив столбов, например, при помощи команды Array (рис. 2.113, д), или простого поворота объекта вокруг начала координат с зажатой клавишей . Конечно, клонировать объекты лучше методом Instance.  ВАЖНО! Очень важно, чтобы вращение проводилось вокруг начала координат! Для этого выберите соответствующую кнопку в выпадающем меню кнопок Use ... Center (помечено стрелкой 1 на рис. 2.113, д). Если вы делаете это на виде сверху, то переключитесь на мировую систему координат (стрелка 2). Так же переключать систему координат можно при помощи квадрупольного меню, открываемого сочетанием +правая кнопка мыши.

Теперь можно замерить расстояние между сторонами столбов.  Выберите привязку к серединам ребер (Midpoint) и включите режим привязок.

Ìîäåëèðîâàíèå

363

 При помощи инструмента Measure Distance (измерение расстояния) за-

мерьте расстояние между серединами, например, верхних ребер столбов (рис. 2.113, е). Главное меню  Tools  Measure Distance Щелкните по середине ребра, помеченного стрелкой 1, и ведите "ниточку" к середине ребра, помеченного стрелкой 2 Считайте значение в поле MaxScript Listener (обведено)

У нас получилось примерно 140 см. У вас это значение может быть другим, используйте в дальнейшем его!  Сделайте основной каркас, взяв за основу прямоугольник размером

230×140 см (рис. 2.114, а—в).  ПОЯСНЕНИЕ

Хотя каркас сделан из элементов одинакового сечения, неплохо показать, что это не единое целое. Поэтому сначала создайте нужные сплайны, перемещая подобъекты-ребра, удерживая клавишу . Вершины, помеченные стрелками, разорвите командой Break (рис. 2.114, а). При помощи команды Refine, перемещения вершин и ручек Безье, а также команды Fillet сделайте форму, показанную на рис. 2.114, б. К каждому сплайну примените команду Outline на нужное значение, после этого переместите вершины либо сегменты (как удобнее) так, чтобы сплайны не пересекались, либо пересекались совсем чуть-чуть. Небольшое пересечение в данном случае не страшно, т. к. после модификатора Bevel не будет наложения полигонов, а сплайны сделаны так, что не образуют отверстий. А вот зазоры нежелательны. Во-первых, это некрасиво, во-вторых — это лишняя нагрузка при расчете непрямого освещения. Идеально, если они будут примыкать (рис. 2.114, в). Вы можете этого добиться, используя привязки к ребрам/сегментам.

 ВАЖНО! Не выходите за габариты! В некоторых случаях команду Outline нужно выполнять с положительным значением, в некоторых — с отрицательным, иногда — относительно центра.

"Досочки" делаются также просто, из прямоугольников (рис. 2.114, г). А вот решетки по краям окна можно сделать по-разному, в зависимости от задачи. Если нужно показать, что они собраны из планок внахлест, то прямоугольники располагаются на разных уровнях по глубине. После вытягивания вы получаете искомый результат (рис. 2.114, д). Если же решетка собрана "заподлицо", то нужно, объединив прямоугольники в единое целое при помощи команды Attach, применить команду Boolean для сплайнов и объединить их

364

Ãëàâà 2

(рис. 2.114, е). При этом сплайны должны лежать в одной плоскости и быть замкнутыми. Выделите один из сплайнов Настройте команду Boolean на объединение и щелкайте по другим сплайнам

 ЗАМЕЧАНИЕ Иногда это не получается, попробуйте начать с другого сплайна. Если и это не получается, то воспользуйтесь командой Trim и отсеките лишнее. Команда Trim использует для определения пересечений плоскость экрана, поэтому обязательно делайте это на ортогональном виде — спереди или сбоку. Обязательно объедините потом вершины командой Weld, автоматом это не делается, как в случае с Boolean!

Такая конструкция — не самая лучшая для дальнейшего вытягивания. Чтобы 3ds Max было проще это сделать — разбейте крайние сегменты командой Divide на несколько (рис. 2.114, ж).

а Рис. 2.114, а. Моделирование оконной секции беседки

Ìîäåëèðîâàíèå

365

б

в Рис. 2.114, б и в. Моделирование оконной секции беседки

Верхняя решетка собирается из прямоугольников, повернутых на 45° крест-накрест (рис. 2.114, з). При ее создании можно применить команду Mirror по нужной оси с копированием. Не забудьте сделать копию, т. к. форма решетки для двери немного отличается. Кроме того, в нее введен сплайн, повторяющий форму рамы. Сделать его можно из самой рамы, выделив нужные сегменты и отсоединив командой Detach с копированием.

366

Ãëàâà 2

г

д Рис. 2.114, г—е. Моделирование оконной секции беседки

е

Ìîäåëèðîâàíèå

367

ж

з

и Рис. 2.114, ж—и. Моделирование оконной секции беседки

368

Ãëàâà 2

к

л Рис. 2.114, к и л. Моделирование оконной секции беседки

Ìîäåëèðîâàíèå

369

м

н

Рис. 2.114, м и н. Моделирование оконной секции беседки

После объединения (Attach) примените команду Trim и отсеките лишнее и объедините вершины (рис. 2.114, и). При применении модификатора Bevel или Extrude вы можете получить странные результаты, например, показанные на рис. 2.114, к. Это означает, что либо у вас есть самопересечения, либо необъединенные вершины. Вернитесь вниз по стеку и поправьте ситуацию. Примените модификатор Bevel с теми же настройками, что и для простых боковых решеток. Можно выделить сразу все внутренние объекты и применить к ним этот модификатор (рис. 2.114, л). И вот тут полезли проблемы (обведено). Причем решить их простым добавлением вершин не удается. Да и не стоит, т. к. вы, таким образом, неоправданно усложните геометрию.

370

Ãëàâà 2

Придется делать из двух частей, сначала удалив лишние сегменты и соединив вершины командой Connect (рис. 2.114, м), а затем при помощи команды Outline сделав ширину для внешнего сплайна. Ни в коем случае не допускайте пересечений сплайнов, это приведет к закрытию отверстий! Пусть останется небольшой зазор. Вот такая секция получилась (рис. 2.114, н)! Дверная секция моделируется так же. После того, как все будет готово, сгруппируйте секции и размножьте. Результат показан на рис. 1.115. И вот теперь мы откроем вам один секрет — данная конструкция была нами усложнена, причем не совсем оправданно. Если вы справились с ней, то справитесь и с любой другой подобной задачей! Наша беседка — Project1-Besedka-03.max.

Рис. 2.115. Беседка. Этап 2

Пока вы занимались "тримом", мы уверены, что вас периодически посещала мысль — "а не проще ли вырезать это все “булем?”". Если эта книга по 3ds Max у вас не первая, то вы наверняка обратили внимание, что большин-

Ìîäåëèðîâàíèå

371

ство из них начинается с моделирования "лофтом" и "булином". Что же, посмотрим, как это работает и как Boolean справится с этой задачей.  ЗАМЕЧАНИЕ Не путайте команду Boolean, встроенную в сплайны, и составной (Compound) объект Boolean (точнее, ProBoolean), который мы будем сейчас рассматривать, — это разные вещи!

Прежде чем продолжить, стоит сказать несколько слов о некоторых особенностях булевых, или логических, операций над объектами. В 3ds Max не реализовано так называемое "твердотельное" моделирование, операции проводятся с поверхностями, и для булевых операций существует несколько правил, которые следует соблюдать во избежание некорректных результатов.  Прежде всего, самое главное правило — не использовать булевы операции

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

стие в логических операциях, по возможности не был слишком большим. Идеально, если он свернут до состояния Editablе Mesh. Мы подготовили сцену, которая называется Project1-ProBoolen.max. При желании вы можете сделать свою. Что в ней есть (рис. 2.116, а). Внешний объект, помеченный стрелкой 1, — это контур, вытянутый модификатором Extrude. Пока он отставлен в сторону, т. к. логические операции придется проводить в два приема. Внутренняя рамка (стрелка 2) сделана так же. Величина вытягивания ее не важна, она должна быть больше внешней рамки. Несколько кубиков (стрелка 3) объединены в единый объект и пересекаются с внутренней рамкой. В принципе, их можно было не объединять, но лучше все же это сделать. Что нужно выполнить? Сначала сделать пересечение кубиков с внутренней рамкой, а затем вычесть то, что получилось, из внешней рамки.  Выделите объект, состоящий из кубиков, и создайте составной объект

ProBoolean. Главное меню  Create  Compound  ProBoolean  Сделайте пересечение с внешней рамкой (рис. 2.116, б).

372

Ãëàâà 2

 ПОЯСНЕНИЕ Переключитесь в режим пересечения (стрелка 1). Нажмите на кнопку Start Picking (стрелка 2) и щелкните по внешней рамке. На рис. 2.116, б эта операция уже выполнена. Как видите, операндов в объекте ProBoolean может быть несколько. Изменить тип операции можно выбрав в списке нужный операнд, затем выбрав нужную операцию и нажав на кнопку Change Operation (стрелка 3). От того, в какой последовательности проведены операции, зависит результат. Эту последовательность так же можно изменить, выбрав операнд, затем выбрав уровень и нажав на кнопку Reorder Ops (стрелка 4).

Пока все хорошо, по крайней мере, внешне. Давайте продолжать.  Выберите внешнюю рамку, пододвиньте ее так, чтобы она пересекалась с другими объектами.  Создайте на ее основе объект ProBoolean и вычтите "лишнее" (рис. 2.116, в).  ПОЯСНЕНИЕ Установите переключатель в положение Subtraction (вычитание) (стрелка 1 на рис. 2.116, в) и щелкните по второму объекту.

а Рис. 2.116, а. Создание рамки с использованием ProBoolean

Ìîäåëèðîâàíèå

373

б

в Рис. 2.116, б и в. Создание рамки с использованием ProBoolean

Вроде, неплохо. Давайте проверим.  Примените к результату модификатор Edit Mesh и перейдите к уровню

вершин. Вот так! Откуда-то появились лишние вершины (рис. 2.117, а).

374

Ãëàâà 2

а

б Рис. 2.117. Паразитные вершины после проведения булевых операций (а) и результат снятия фасок модификатором Edit Poly (б)

Ìîäåëèðîâàíèå

375

Попытка отредактировать такой объект на уровне полигонов, например, снять фаски, приведет к плачевному результату (рис. 2.117, б). Есть ли какие-то способы оптимизировать получаемую сетку, кроме "веселого" занятия корректировки геометрии вручную? Давайте посмотрим. В ProBoolean есть несколько методов управления топологией получемой модели. Все они сосредоточены в свитке Advanced Options (рис. 2.118, а). Первый способ — упрощение геометрии при помощи параметра Decimation. Вы задаете значение в процентах, сколько полигонов будет удалено после операции. При больших значениях (рис. 2.118, б) вы получаете очень плохую сетку. Второй режим, включаемый флажком Make Quadrilaterals и управляемый также процентами, позволяет получить четырехугольную сетку (рис. 2.118, в). Тоже ничего хорошего. Но, тем не менее, именно этот результат вы можете подправить в Edit Poly и даже применить модификатор TurboSmooth. Но, похоже, в нашем случае и во многих других, ни то, ни другое не помогает. Логические операции можно считать "финишными" операциями, результат применения которых почти не поддается дальнейшему редактированию

а Рис. 2.118, а. Управление сложностью и топологией сетки в ProBoolean

376

Ãëàâà 2

б

в Рис. 2.118, б и в. Управление сложностью и топологией сетки в ProBoolean

на низком уровне. Не случайно разработчики 3ds Max пропагандируют применение ProBoolean для создания неорганических объектов — деталей машин и механизмов и т. д. И все же, что можно и нужно было бы сделать, чтобы получить нужную геометрию? При использовании логических операций позаботьтесь о том, чтобы сложность объектов, принимающих участие в них, была сопоставима. Не стоит, например, вычитать множество цилиндров из кубика с четырьмя вершинами в основании.

Ìîäåëèðîâàíèå

377

Можно было бы самый первый объект сделать уже со скосами, тогда фаски получились бы сразу после логических операций. Но в этом случае зачастую подготовка операндов и подгонка занимает больше времени, чем моделирование другими способами.  ЗАМЕЧАНИЕ Следует сказать, что геометрия после модификатора Bevel или Extrude также не является идеальной, т. к. эти модификаторы совершенно "не заботятся" об оптимизации сетки. Но в простых случаях они предпочтительнее Boolean, т. к., по крайней мере, не образуются лишние вершины.

И, наконец, два самых грамотных решения с точки зрения окончательного рендеринга. Первое — создать решетку, используя полигональное моделирование, например, из кубика при помощи команд Extrude, Bridge и Chamfer (рис. 2.119). Мы не думаем, что необходимо что-то пояснять, если вы сделали пластиковый стул, то разобраться в этих рисунках не составит труда. При таком моделировании вы получаете оптимальную сетку, как по количеству полигонов, так и по топологии. Можно также сделать решетку, вытянув ее из внешней рамки. Второе решение — применение плоскостей с картой прозрачности и рельефа (Bump или Normal Bump) или даже смещения (Displace). Но вернемся к беседке. Осталось сделать крышу. И если до этого момента мы не заостряли ваше внимание на том, что на все объекты будут наложены материалы с текстурами, полагаясь на автоматическую генерацию текстурных координат, то теперь так безрассудно поступать уже нельзя. Крыша беседки покрыта пластиковой "черепицей". Чтобы проще было наложить текстуру в дальнейшем, мы предлагаем сделать одну секцию крыши, подготовить ее, а затем скопировать и объединить в один объект. При этом вся информация о текстурных координатах сохранится. Было бы здорово, если бы была видна при этом текстура, но очень часто приходится обходиться без нее.  Сделайте сплайн по форме крыши (рис. 2.120, а).  Все вершины сделайте типа Smooth, уменьшите интерполяцию.  Центральную вершину переместите к началу координат по нужной оси

(X или Y, все зависит в какой проекции вы делаете модель).

 Выделив центральную вершину, примените модификатор Lathe (рис. 2.120, б). Главное меню  Modifiers  Patch|Spline Editing  Lathe

378

Ãëàâà 2

а

б Рис. 2.119, а и б. Процесс моделирования решетки при помощи полигонов

Ìîäåëèðîâàíèå

379

в

г Рис. 2.119, в и г. Процесс моделирования решетки при помощи полигонов

380

Ãëàâà 2

 ПОЯСНЕНИЕ Весьма странно, но модификатор Lathе не позволяет использовать меньше трех сегментов при вращении. Поэтому сделайте поворот на 135° и 3 сегмента.

 Примените модификатор Edit Poly и удалите лишние полигоны.  Выделите все боковые ребра и примените команду Chamfer (рис. 2.120, в).  Обратите внимание на проблемы, возникающие в месте, где сходятся реб-

   

ра. При помощи перемещения вершин и объединения командой Target Weld, или же просто Weld с большим порогом, решите эту проблему (рис. 2.120, г). Выделите все полигоны и задайте им идентификатор материалов (Material ID) равный 1 (Set ID). Это делается "на всякий случай" (рис. 2.120, д). Внешним полигонам задайте ID — 2 (рис. 2.120, е). Это нужно для того, чтобы в дальнейшем без проблем создать многокомпонентный материал. Снимите выделение и выйдите из режима работы с полигонами. Ко всему объекту примените модификатор UVW Map и выполните настройки так, как показано на рис. 2.120, ж. Главное меню  Modifiers  UV Coordinates  UVW Map

 ПОЯСНЕНИЕ Прежде всего, снимите флажок Real-World Map Size, он делает процесс настройки текстурных координат весьма неудобным (стрелка 1 на рис. 2.120, ж). Выберите нужный тип наложения, нас вполне устроит плоский — Planar (стрелка 2).

а Рис. 2.120, а. Моделирование крыши

Ìîäåëèðîâàíèå

381

б

в Рис. 2.120, б и в. Моделирование крыши

382

Ãëàâà 2

г

д Рис. 2.120, г и д. Моделирование крыши

Ìîäåëèðîâàíèå

383

е Рис. 2.120, е. Моделирование крыши

Перейдите к редактированию подобъекта Gizmo (стрелка 3). Именно его положение и ориентация определяет как будет лежать текстура. Поворачивая его либо в мировой, либо в локальной системе координат (стрелка 4) и используя кнопку Fit (стрелка 5), добейтесь как можно более точной ориентации Gizmo. Ни в коем случае не применяйте масштабирование! После того как вы справитесь с ориентацией Gizmo, установите флажок RealWorld Map Size.

Наш проект на этом этапе называется Project1-Besedka-04.max. Теперь основная черепица будет лежать так, как надо. Остается настроить текстурные координаты для боковых и верхних полигонов.  Нет смысла "тянуть" за собой весь стек модификаторов, поэтому сверните

его, например, конвертировав объект к типу редактируемых полигонов. Квадрупольное меню  Convert to  Convert to Editable Poly  Выделите полигоны по одной стороне, примените к ним модификатор

UVW Map и выполните настройку так, как показано на рис. 2.120, з.

 Вновь сверните стек, выделите полигоны по другой стороне и выполните

то же самое.

384

Ãëàâà 2

ж Рис. 2.120, ж. Моделирование крыши

 Сделайте копии по кругу, присоедините все части крыши к одной, и затем

объедините вершины. Крыша готова! (рис. 2.120, и, к, л).

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

Ìîäåëèðîâàíèå

385

з

и Рис. 2.120, з и и. Моделирование крыши

386

Ãëàâà 2

к

л Рис. 2.120, к и л. Моделирование крыши

Ìîäåëèðîâàíèå

387

а

б Рис. 2.121, а и б. Несущая конструкция для крыши

388

Ãëàâà 2

в Рис. 2.121, в. Несущая конструкция для крыши

Рис. 2.122. Беседка в сцене проекта

Ìîäåëèðîâàíèå

389

Загрузите беседку в основной проект (рис. 2.122). Удивлены? Когда мы показали промежуточный вариант автору проекта, она настоятельно рекомендовала упростить мостик и удалить площадку около бассейна. Что и было сделано, и сделать это было несложно, т. к. все объекты не объединены и стеки не свернуты.

Ôîíòàí Фонтан выполнен в виде каменной горки с гротом. Дело в том, что в цокольном этаже размещается баня, и заказчику очень хотелось иметь бассейн в непосредственной близости от нее. Но не просто бассейн, а с холодным душем, выполненным в виде водопада над "гротом". Что-то похожее на то, что изображено на рис. 2.123 (спасибо Екатерине Беляевой за эскиз).

Рис. 2.123. Эскиз фонтана

Для моделирования такой формы наиболее подходящим является полигональное моделирование. Процесс создания модели показан на рис. 2.124. Давайте разбираться.  За основу возьмите сплайн по внешней форме "бассейна". Все вершины в нем преобразованы к типу Corner.  Создайте внутренний сплайн при помощи команды Outline на 50 см внутрь. Затем при помощи модификатора Extrude вытяните стенки

390



  

 

Ãëàâà 2

(рис. 2.124, а) на высоту примерно 60 см. Обратите внимание, что флажки Cap Start и Cap End сняты! Примените модификатор Edit Poly и, выбрав два верхних подобъекта Border, при помощи команды Bridge создайте верхнюю поверхность, которая при этом делится на полигоны (рис. 2.124, б). Далее путем простейших операций — перемещения подобъектов и вытягивания полигонов командой Extrude, сформируйте "горку" (рис. 2.124, в). Выделите полигоны на противоположных сторонах "горки" и при помощи команды Bridge создайте "грот" (рис. 2.124, г). При помощи команд Extrude по локальным нормалям (рис. 2.124, д), Make Planar по нужным осям, Inset и Extrude сформируйте клумбу (рис. 2.124, е) и сиденья (рис. 2.124, ж). Обязательно удалите полигоны, получившиеся в результате применения команды Extrude! (рис. 2.124, з). Вытяните внутренний подобъект Border вниз, придав необходимую глубину бассейну, и сформируйте элементы дна между сиденьями. Для этого используйте команду Bridge для ребер (Edges) или создавайте полигоны вручную командой Create (рис. 2.124, и).

а Рис. 2.124, а. Моделирование фонтана

Ìîäåëèðîâàíèå

391

б

в Рис. 2.124, б и в. Моделирование фонтана

392

Ãëàâà 2

г

д Рис. 2.124, г и д. Моделирование фонтана

Ìîäåëèðîâàíèå

393

е

ж Рис. 2.124, е и ж. Моделирование фонтана

394

Ãëàâà 2

з

и Рис. 2.124, з и и. Моделирование фонтана

Ìîäåëèðîâàíèå

395

к

л Рис. 2.124, к и л. Моделирование фонтана

396

Ãëàâà 2

а

б Рис. 2.125. Сплайновый каркас (а) и окончательный вид (б) объекта для имитации падающей воды

Ìîäåëèðîâàíèå

397

 Создайте дно, несколько раз отмасштабировав внутренний Border с нажа-

той клавишей . Примените команду Collapse и избавьтесь от треугольников, удаляя ребра командой Remove или добавляя их командой Cut (рис. 2.124, к). После сглаживания вы получите вот такой результат (рис. 2.124, л). Камни же будут созданы при помощи карты смещения. И последний штрих. На окончательной картинке или ролике эффектно выглядят струи воды, извергающиеся в виде водопада. Имитировать их можно при помощи карты, наложенной на объект, показанный на рис. 2.125. Сделан он из ребер при помощи команды Create Shape, копированием сплайна с установленным флажком Connect (помечено стрелкой на рис. 2.125, а) и применением модификатора Edit Patch. Наш вариант называется Project1-Fountain-Final.max. Установите фонтан на место. Вам придется удалить лишние полигоны ландшафта и немного изменить форму бордюра. Файл проекта со встроенным фонтаном — Project1-14.max.

Ìîäåëèðîâàíèå è ðàçìåùåíèå ôîíàðåé Нам кажется, что сделать фонари, показанные на рис. 2.126, а и б, не составит для вас большого труда. Плафоны изготовлены из пластика, поэтому или сделайте основание фонарей и плафоны отдельными объектами и сгруппируйте их, или разделите поверхности одного объекта по Material ID так же, как вы делали для фонарей мостика. Кроме этого, переместите точку привязки в центр основания, так вам будет проще размещать их по поверхности. Расположить фонари первого типа вдоль дороги весьма просто. А вот вторые, предназначенные для подсветки дорожки, мы предлагаем расположить при помощи специального инструмента — Clone and Align. Создайте несколько объектов-пустышек (Dummy) непосредственно на поверхности объекта. Для этого включите при создании флажок AutoGrid (автоматическая сетка) (рис. 2.127, а). При таком создании точка привязки находится точно на поверхности другого объекта. Локальная ось Z так же выровнена по нормали к поверхности, но это не должно вас волновать. Главное меню  Create  Helpers  Dummy  Выберите подгруженную ранее группу с маленьким фонарем (у нас она

называется SmallLighterGroup), вызовите инструмент Clone and Align и настройте его так, как показано на рис. 2.127, б. Главное меню  Tools  Clone and Align

398

Ãëàâà 2

а

б Рис. 2.126. Модели фонарей

Ìîäåëèðîâàíèå

399

а

б Рис. 2.127. Размещение фонарей по поверхности ландшафта

400

Ãëàâà 2

 ПОЯСНЕНИЕ При помощи диалогового окна выбора по имени, вызываемого после нажатия кнопки Pick List (показана стрелкой 1 на рис. 2.127, б), выберите все "даммики" (dummy). В окне Clone and Align установите переключатель типа копии — Instance. Выравнивание по положению (свиток Align Position) установите по всем осям. А вот выравнивание ориентации (группа Align Orientation) отключите.

 ЗАМЕЧАНИЕ В этом инструменте есть небольшая ошибка. При перемещении вида в окне проекции все копии пропадают. Решить это можно, изменив какой-либо параметр в диалоговом окне.

 Нажав кнопку Apply, подтвердите расстановку объектов. Теперь можно

удалить исходный объект и все "даммики".

Ñïîðòèâíàÿ ïëîùàäêà Модель площадки, встроенная в проект, показана на рис. 2.128. Мы думаем, что комментарии излишни. Наш проект на этом этапе называется Project1-15.max.

Рис. 2.128. Спортплощадка

Ìîäåëèðîâàíèå

401

Ìîäåëèðîâàíèå äîìà И вот, наконец-то, вы приступаете к самому главному — моделированию дома. Это наиболее трудоемкий и ответственный этап работы мы решили перенести почти в самый конец раздела. До этого момента вы моделировали достаточно простые объекты самыми различными способами. При моделировании дома вам потребуются все те знания и навыки, которые вы получили до этого! И если вы выполнили все предыдущие упражнения, то моделирование дома для вас не будет проблемой. Вот теперь нужно немного подумать, что делать. И первый вопрос, на который необходимо ответить — нужно ли "строить дом"? Нужна ли толщина стен, или достаточно построить внешние поверхности и сделать углубления в местах оконных проемов? Если еще несколько лет назад в стенах не было особой необходимости, то сейчас их стоит сделать. Планируется использование глобального освещения, причем с возможной подсветкой изнутри, и отсутствие толщины у стен может сыграть злую шутку. Обязательно нужно учесть оконные проемы еще на этапе построения плана стен, так вам будет проще моделировать впоследствии. Строить дом имеет смысл в два этажа хотя бы потому, что окна на первом и втором этажах разные по размеру. Да и вообще, вносить изменения при необходимости так удобнее. Эркер1 сделайте отдельным объектом. Так удобнее, к тому же эркер немного выше потолка второго этажа. На окна вы "повесите шторы" — обычные плоскости с соответствующей текстурой. Иногда практикуются непрозрачные зеркальные стекла, но такие окна выглядят крайне неубедительно. Самое сложное, конечно, крыша. Придется делать ее единым целым, нарезая из плоскости, т. к. планируется использование карты смещения. Особенно важна правильность геометрии в том случае, если для кровли вы планируете применить карту смещения.

Ïîäãîòîâêà è ðàçìåùåíèå ÷åðòåæåé На диске в папке Photos\House и на цветной вкладке (см. ЦВ1 и ЦВ2) есть несколько фотографий этого дома в процессе строительства. Обязательно рассмотрите их внимательно и попробуйте самостоятельно решить, что и как моделировать! Чертежи проекта с проставленными размерами показаны на рис. 2.129 (см. ЦВ3). 1

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

402

Ãëàâà 2

а Рис. 2.129, а. Чертежи дома

Ìîäåëèðîâàíèå

403

б Рис. 2.129, б. Чертежи дома

По этим чертежам, из которых было удалено все лишнее — размерные линии, штриховки и т. д. — был сделан файл house.ai, который находится в папке Project1\Import.  Загрузите (Import) этот файл в новый файл как единый объект. Чертежи выполнены в масштабе 1:100, поэтому отмасштабируйте в 100 раз, или на 10 000%.  Разделите объект на проекции, затем при помощи перемещения c использованием привязок к вершинам выровняйте проекции относительно друг друга и разместите их вплотную (рис. 2.130 и см. ЦВ4). Исключением является только крыша.  Зафиксируйте слой (freeze). Наш проект на этом этапе называется Project1-House-Start.max.

404

Ãëàâà 2

Рис. 2.130. Подготовленная сцена

Ñòåíû äîìà è ýðêåðà Скройте все ненужные проекции, кроме плана.  Создайте новый слой, назовите его, например, 1st Floor.  На виде сверху создайте замкнутый контур внешней стены, используя

привязки к вершинам и включив привязки к замороженным объектам (рис. 2.131, а).  Сделайте копию этого объекта, он вам понадобится для создания кар-

низов.  Используя привязки, при помощи команды Refine наметьте оконные и

дверные проемы первого этажа (рис. 2.131, б).

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

Ìîäåëèðîâàíèå

405

И тут выяснилось, что проемы на плане (это план первого этажа) и проекциях не совпадают! Это хорошо видно на рис. 2.131, г. Дело в том, что чертежи — это компиляция из чертежей нескольких версий. И похоже, что ориентироваться на план нельзя! Еще раз напоминаем, что от качества исходных материалов, от того, насколько аккуратно они подготовлены, зависит то, как быстро и точно будет выполнен проект. Давайте переделывать. К счастью, это не очень сложно. Работать при этом удобно в изометрической проекции (User) или перспективе, поворачивая вид в окне проекции.  Сделайте видимой любую проекцию, например, сзади.  Включите режим ограничения по осям при использовании привязок

(стрелка 1 на рис. 2.131, д).

 Выбирая нужную ось и используя привязки к вершинам, перемещайте

вершины (стрелка 2).

а Рис. 2.131, а. Моделирование стен. Этап 1

406

Ãëàâà 2

б

в Рис. 2.131, б и в. Моделирование стен. Этап 1

Ìîäåëèðîâàíèå

407

г

д Рис. 2.131, г и д. Моделирование стен. Этап 1

408

Ãëàâà 2

е

ж Рис. 2.131, е и ж. Моделирование стен. Этап 1

Те же самые операции проведите при необходимости и со всеми остальными вершинами.  Сделайте копию этого контура для второго этажа.  Поднимите на высоту окон второго этажа и вновь проведите ту же опе-

рацию.  ВАЖНО! Делайте это очень аккуратно! Если вы не уверены, что правильно выполнили операцию, то лучше отмените действие и выполните еще раз!

Ìîäåëèðîâàíèå

409

 СОВЕТ Вполне возможно, что вам удобнее будет использовать комбинацию привязок — к вершинам и ребрам. И, конечно, когда привязки не нужны, то отключайте их.

 Опустите оба сплайна на нужные уровни, т. е. уровни пола первого и вто-

рого этажей. Почти все готово для того, чтобы вытягивать стены. Но обратите внимание, что по углам расположены выступающие столбы (пилястры). На плане это не отражено, но сделать их нужно. По совету специалистов студии Realtime, их лучше сделать отдельными объектами (так проще переделывать при необходимости), поэтому при создании контуров они не были предусмотрены.  Размеры стены немного (на 3—5 см) уменьшите командой Outline для

сплайнов (рис. 2.131, е). Внешние контуры, получившиеся в результате этой операции, удалите!

 Вытяните верхний и нижний контуры на нужную высоту при помощи мо-

дификатора Extrude (рис. 2.131, ж).  ПОЯСНЕНИЕ

Снимите флажки Cap Start и Cap End, эти "крышки" вам не нужны. Количество сегментов задайте равное 3, чтобы сразу предусмотреть проемы. Можно установить флажки для генерации текстурных координат, но т. к. в дальнейшем будет использоваться полигональное моделирование, то это вам не очень поможет, стены придется перетекстурировать заново.

Наш файл на этом этапе называется Project1-House-01.max.  Примените к объектам — стенам первого и второго этажа — модификатор

Edit Poly (причем это можно сделать сразу к обоим объектам). Выделите и поднимите или опустите поперечные ребра на нужную высоту — по верхней и нижней кромкам проемов (рис. 2.132, а).  СОВЕТ Быстро это можно сделать, выделяя одно горизонтальное ребро, и командой Loop выделяя все ребра, образующие замкнутый контур.

 Выделите полигоны на месте проемов, но не удаляйте их! Из них получат-

ся прекрасные стекла, а также рамы и шторы! Сделайте из них объекты командой Detach (рис. 2.132, б), назовите объекты Glasses, и скройте. Теперь можно придать толщину стенам модификатором Shell с настройками, показанными на рис. 2.132, в.

410

Ãëàâà 2

а

б Рис. 2.132, а и б. Моделирование стен. Этап 2

Ìîäåëèðîâàíèå

411

в Рис. 2.132, в. Моделирование стен. Этап 2

 ПОЯСНЕНИЕ Так как у вас имеются внешние контуры, то и создавать толщину нужно при помощи параметра Inner. Чтобы сразу предусмотреть тот факт, что снаружи, внутри и в проемах будут использованы разные материалы, настройте параметры Material ID. Снимите флажок Auto Smooth Edge — сглаживание вам ни к чему. Для того чтобы избежать скругления углов, установите флажок Straighten Corner.

 СОВЕТ Давайте объектам осмысленные имена и распределяйте их по слоям (рис. 2.133)!

 Сделайте угловые столбы. При их создании можно ориентироваться на

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

412

Ãëàâà 2

Можно использовать кубики (примитивы Box), а можно прямоугольник с последующим вытягиванием модификатором Extrude. То же самое касается и вставок (рис. 2.134).

Рис. 2.133. Структура сцены в менеджере слоев

Рис. 2.134. Угловые пилястры

Обратите внимание на вставку, показанную на рис. 2.135 — в ней проделаны проемы под окна. Моделируется она почти так же, как и стены, но проемы проделаны при помощи команды Bridge для полигонов, которые выделяются

Ìîäåëèðîâàíèå

413

попарно с разных сторон. При этом удобно установить флажок Ignore Backfacing.

Рис. 2.135. Вставка с проемами

Эркер строится точно так же, как и стены, но из незамкнутого сплайна. Не забудьте только скопировать этот сплайн, назвав его, например, Border2, для создания карниза. Оговоримся, что способ создания эркера, показанный на рис. 2.136, — это быстрый способ, но не лучший. Эркер стоит моделировать также в два этажа.  ЗАМЕЧАНИЕ Обратите внимание на настройку, показанную и обведенную на рис. 2.136, в. Эта настройка позволяет вам перемещать подобъекты (в данном случае вершины) по направлению, заданному ребром (Edge) или гранью (Face). Это дает возможность при перемещении не нарушить плоскость. Но не забывайте ее отключать, выбрав None (рис. 2.136, г), если она не нужна.

414

Ãëàâà 2

а

б Рис. 2.136, а и б. Моделирование эркера

Ìîäåëèðîâàíèå

415

в

г Рис. 2.136, в и г. Моделирование эркера

416

Ãëàâà 2

д Рис. 2.136, д. Моделирование эркера

Сделайте карнизы. Начните с самого простого, проходящего вокруг всего здания без разрывов.  Сделайте видимым объект Border.  Объект Border2 выровняйте относительно объекта Border при помощи

команды Align по оси Z по центру (рис. 2.137, а).

 Присоедините один объект к другому командой Attach, отсеките лишнее

командой Trim (вполне возможно, что придется сначала переместить вершины так, чтобы сплайны пересеклись) и объедините вершины командой Weld.  Настройте

параметры в свитке Rendering так, как показано на рис. 2.137, б.

 Нижний и верхний карнизы делаются из центрального копированием, раз-

резанием и удалением ненужных сегментов (рис. 2.137, в).

Наш файл на этом этапе называется Project1-House-02.max.  ЗАМЕЧАНИЕ Если хотите, то сделайте полы и потолки. Все необходимое для этого у вас есть.

Ìîäåëèðîâàíèå

417

а

б Рис. 2.137, а и б. Моделирование карнизов

418

Ãëàâà 2

в Рис. 2.137, в. Моделирование карнизов

Ìîäåëèðîâàíèå íàëè÷íèêîâ, îêîííûõ ðàì è ñòåêîë Замечательные наличники на окнах второго этажа делаются полигональным моделированием из плоскости (рис. 2.138, а—д). Так как они входят в стены, нет особой необходимости заделывать их с обратной стороны. Но если вы хотите, то сделайте это при помощи команды Bridge для Borders.  ЗАМЕЧАНИЕ Вы не могли не обратить внимание на то, что кое-где происходит наложение полигонов. Это не очень страшно, т. к. в окна будут вставлены рамы, они перекроют эти наложения. Кроме этого, оконные проемы немного меньше, чем нужно. Каемся — это все следствие неаккуратности при моделировании. Надеемся, что у вас все получится значительно лучше. Нам же остается только уповать на то, что рамы, которые мы с вами сейчас сделаем, прикроют эти недостатки.

Наш файл на этом этапе называется Project1-House-03.max. Как вы помните, были "зарезервированы" объекты под стекла. Они же станут и рамами, и шторами. Давайте посмотрим, как это сделать. Начните с окон второго этажа.  Сделайте две копии (именно Copy!) объекта 2nd Floor Glasses. Один назовите 2nd Floor Curtains, второй — 2nd Floor Frames.  Скройте все объекты, кроме 2nd Floor Frames.

Ìîäåëèðîâàíèå

419

а

б Рис. 2.138, а—в. Моделирование наличников окон второго этажа

в

420

Ãëàâà 2

г

д

Рис. 2.138, г и д. Моделирование наличников окон второго этажа

 Выделите все полигоны объекта и увеличьте их размер командой Outline

примерно на 2 см (рис. 2.139, а).

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

Connect так, как показано на рис. 2.139, б. Затем также разделите полигоны, выделив вертикальные ребра (рис. 2.139, в). При выделении ребер вам поможет команда Ring.

 Используя выделение ребер и команду Connect, разделите полигоны так,

как показано на рис. 2.139, г.

 Выделив нужные ребра и используя команду Chamfer, получите полиго-

ны, показанные на рис. 2.139, д. Здесь вам поможет команда Loop.

 Удалите "ненужные" полигоны и при помощи модификатора Shell при-

дайте толщину (рис. 2.139, е).

Ìîäåëèðîâàíèå

421

а

б Рис. 2.139, а и б. Моделирование рам второго этажа

422

Ãëàâà 2

в

г Рис. 2.139, в и г. Моделирование рам второго этажа

Ìîäåëèðîâàíèå

423

д

е Рис. 2.139, д и е. Моделирование рам второго этажа

424

Ãëàâà 2

 ПОЯСНЕНИЕ Значение Outer Amount, равное 1 см, делает рамы немного выступающими наружу, что позволяет избежать наложения полигонов. Выступать они не будут, т. к. все эти окна заключены в наличники.

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

Рис. 2.140. Стекла и рамы

 Полигоны штор переместите внутрь помещения и увеличьте их размер,

например, масштабируя в локальной системе координат (рис. 2.141). Придавать им толщину не нужно. Аналогичные элементы первого этажа моделируются так же. Но здесь все несколько проще. Не нужно увеличивать размер рам. Используя команды Inset, Tesselate и Chamfer для ребер, удалив ненужные полигоны и придав толщину, вы получите рамы, показанные на рис. 2.142.

Ìîäåëèðîâàíèå

425

Рис. 2.141. Шторы, стекла и рамы второго этажа

Рис. 2.142. Рама окна первого этажа

426

Ãëàâà 2

Рис. 2.143. Дом. Промежуточный результат

И вот теперь мы должны вас немного предостеречь от использования этого метода в дальнейшем. Этот способ быстрый, но совершенно неправильный с точки зрения возможного дальнейшего редактирования и внесения изменений. Все же правильнее сделать отдельно группу объектов для окна (рама, стекло, штора), и расставлять их. Именно так и сделайте двери и окна эркера. Ну, а "мелочевку" — ставни, подоконники и т. д. вы в состоянии сделать самостоятельно. Вот такой дом на этом этапе получился! (рис. 2.143). Обратите внимание, что мы сделали цокольный этаж, вытянув полигоны стен вниз. Будем надеяться, что никто туда заглядывать не будет, т. к. там ничего не проработано. При желании, вы можете сами сделать двери и окна. Наш файл на этом этапе называется Project1-House-04.max.

Âåðàíäà è ëåñòíèöà Веранда — это просто! (рис. 2.144). Для создания лестницы мы предлагаем вам воспользоваться параметрическим объектом, который так и называется — Stair (лестница). Главное меню  Create  AEC Objects  Straight Stair

Ìîäåëèðîâàíèå

427

Рис. 2.144. Веранда

Если вы раньше пытались изучать 3ds Max, то, мы уверены, вы сейчас недоумеваете: ведь в 3ds Max есть специальные объекты для создания окон, дверей и т. д., почему мы их не используем? Эти объекты хороши, спору нет. Но в нашем случае они слишком сложны, в них очень много ненужных деталей. В случае же создания более сложных проектов, например, в классическом стиле, эти объекты слишком просты. Ни специалисты студии Realtime, ни многие другие эти объекты не используют, предпочитая создавать свою собственную библиотеку моделей окон, дверей и т. д. Есть и еще одна причина, по которой мы не рекомендуем их использовать — создавались они очень давно, без учета алгоритмов глобального освещения, и в них попадаются наложенные друг на друга полигоны. А вот лестница в нашем случае — просто находка! Посмотрите, как легко и просто она настраивается (рис. 2.145)! Мы думаем, что вы получили массу удовольствия, пытаясь сделать эту лестницу нужной высоты. Дело в том, что параметры лестницы завязаны друг на друга. Например, нужно сначала задать высоту ступенек, зафиксировать ее, и, подбирая количество ступенек или значение высоты, добиться нужного результата. Но, тем не менее, смысл в использовании этих объектов есть, иногда они очень помогают. Наш файл на этом этапе называется Project1-House-05.max.

428

Ãëàâà 2

Рис. 2.145. Лестница

Ìîäåëèðîâàíèå êðûøè И теперь, самое сложное — крыша. Правда, сложной она оказывается только на первый взгляд.  "Вычистите"

план крыши, оставив только самое необходимое (рис. 2.146, а). Как видите, еще одно преимущество слоев — вы можете выбрать объект в замороженном слое и редактировать его.  Переместите план крыши на нужный уровень (рис. 2.146, б). Вновь видны несовпадения плана крыши и проекций дома, но это не принципиально. После того, как геометрия крыши будет создана, ничто не помешает подправить ее.  Используя привязки к вершинам, создайте плоскость (Plane) по размерам основной крыши (рис. 2.146, в). Сделайте это в новом слое, а сам слой сделайте прозрачным.

Ìîäåëèðîâàíèå

429

 Преобразуйте плоскость к типу редактируемых полигонов, при помощи

команды Cut разрежьте по форме, и, используя привязки по вершинам и ограничение по осям, поднимите конек на нужную высоту (рис. 2.146, г).  ЗАМЕЧАНИЕ Еще раз напомним, что при использовании команды Cut периодически нужно выделять все вершины и объединять их командой Weld с небольшим порогом срабатывания.

 При помощи команды Cut на виде сверху сделайте надрезы по форме час-

ти крыши эркера и больших слуховых окон (рис. 2.146, д). При этом вам нужно использовать привязки к серединам ребер в дополнение к привязкам к вершинам, а иногда отключать использование привязок.  Удалите ненужные полигоны.  Так же, как вы поднимали конек крыши, поднимите верхнюю вершину крыши эркера (рис. 2.147, а). Привязываться уже можно непосредственно к вершинам самой крыши. Сформируйте крышу эркера.  Создайте треугольный полигон на основе вершин эркера командой Create для полигонов (рис. 2.147, б).

а Рис. 2.146, а. Моделирование крыши. Начальный этап

430

Ãëàâà 2

б

в Рис. 2.146, б и в. Моделирование крыши. Начальный этап

Ìîäåëèðîâàíèå

431

г

д Рис. 2.146, г и д. Моделирование крыши. Начальный этап

 Командой Cut разрежьте созданный полигон на нужное количество час-

тей. Сделайте это "на глазок", отключив привязки (рис. 2.147, в).

 Используя привязки к вершинам и перемещая вершины в плоскости, до-

бейтесь нужной формы (рис. 2.147, г).

432

Ãëàâà 2

а

б Рис. 2.147, а и б. Моделирование крыши эркера

Ìîäåëèðîâàíèå

433

в

г Рис. 2.147, в и г. Моделирование крыши эркера

434

Ãëàâà 2

Дальше стоит немного подумать. Дело в том, что крыша эркера имеет немного вогнутую форму. Делать это сейчас немного накладно, т. к. придется резать всю крышу. Поэтому вы сделаете это позже, отсоединив крышу эркера от основной и доработав ее. Сделайте участки крыши, соответствующие большим слуховым окнам.  При помощи команды Extrude для полигонов вытяните полигоны на произвольное расстояние (рис. 2.148, а).  При помощи команды Target Weld для вершин объедините вершины (рис. 2.148, б).  Выровняйте вершины конька крыш, перемещая их с привязкой по вершинам по нужным осям.  Удалите ненужные полигоны (рис. 2.148, в).  Чтобы сделать крышу над пристройкой, также нужно немного подумать. На плане необходимой информации нет, поэтому делать разрезы нужно ориентируясь на фасад, и выполнять это надо на виде спереди (рис. 2.149, а).  СОВЕТ Установите флажок Ignore Backfacing, чтобы разрез был сделан на том полигоне, который ориентирован к вам.

 Сделав еще один разрез, выделите и удалите полигон (рис. 2.149, б).

а Рис. 2.148, а. Моделирование крыш больших слуховых окон

Ìîäåëèðîâàíèå

435

б

в Рис. 2.148, б и в. Моделирование крыш больших слуховых окон

436

Ãëàâà 2

Настала пора отсоединить крышу эркера. Ничего не поделаешь, на виде спереди видно, что она не стыкуется с крышей пристройки и будет мешать. Сначала немного подправьте геометрию крыши эркера. А заодно и всей крыши. Перемещайте вершины, ориентируясь на виды спереди и слева. Еще раз отметьте, что прежде чем начинать моделирование, нужно очень тщательно проверить исходные материалы. Небольшое несовпадение чертежей привело к очень большим неудобствам при моделировании.  ВНИМАНИЕ! Перемещение вершин по вертикали в плоскости вида спереди неизбежно приводит к искажению формы крыши! Не оставляйте этот факт без внимания. Обязательно подкорректируйте результат на виде слева!

 Выделите полигоны крыши эркера и командой Detach отсоедините ее

(рис. 2.149, в).

 Выделяя нужные ребра и перемещая их с нажатой клавишей , соз-

дайте полигоны крыши пристройки (рис. 2.149, г). Как видите, это сделано без каких-либо привязок.

 А вот теперь, ориентируясь на чертежи видов слева и спереди, нужно по-

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

а Рис. 2.149, а. Моделирование крыши пристройки

Ìîäåëèðîâàíèå

437

б

в Рис. 2.149, б и в. Моделирование крыши пристройки

438

Ãëàâà 2

г

д Рис. 2.149, г и д. Моделирование крыши пристройки

Ìîäåëèðîâàíèå

439

е Рис. 2.149, е. Моделирование крыши пристройки

Теперь можно скрыть все чертежи и выровнять оставшиеся вершины и достроить полигон (рис. 2.149, е). Ребра для участков крыши над задними окнами сделайте на виде сзади, ориентируясь на чертежи вида сзади (рис. 2.150, а). И на фотографии. Больше ориентироваться не на что.

а Рис. 2.150, а. Моделирование крыши. Промежуточный этап

440

Ãëàâà 2

б

в Рис. 2.150, б и в. Моделирование крыши. Промежуточный этап

Для остальных участков крыши переключайтесь в нужные виды и используйте соответствующие чертежи. В результате у вас должно получиться примерно так, как показано на рис. 2.150, б. Обратите внимание, что сделаны дополнительные ребра. Многоугольные полигоны — это не лучшее решение. Наиболее сложным является участок, взятый в прямоугольник. На рис. 2.150, в этот участок показан с двух сторон в укрупненном виде. Попробуйте догадаться, как он был сделан. Инструментов для этого нужно немного — Cut и Target Weld для вершин.

Ìîäåëèðîâàíèå

441

Крыша эркера показана на рис. 2.151. Во-первых, при помощи добавления ребер командами Connect и Cut, а также перемещения вершин была создана нужная форма. Во-вторых, было сделано место для слухового окна.

Рис. 2.151. Крыша эркера

 ЗАМЕЧАНИЕ Честно говоря, о точном моделировании уже речи не идет. Расхождения в чертежах такие, что не понятно, на что ориентироваться. Старайтесь работать "точно на глазок". Постарайтесь выдержать плоскости, поэтому многие перемещения стоит делать на ортогональных видах.

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

кажется, что все же имеет смысл располагать материалы в порядке их значимости. Командная панель  Polygon Properties  Material:Set ID

442

Ãëàâà 2

 В нужных местах с помощью команды Inset сделайте для полигонов вло-

женные области (рис. 2.152, а). В процессе применения команды Inset сразу задавайте полигонам первый (1) идентификационный номер материала.  То же самое сделайте и с крышей эркера (рис. 2.152, б).  На крышах при помощи команды Cut избавьтесь от мест, показанных на рис. 2.152, в. Должно получиться так, как на рис. 2.152, г. У вас может возникнуть два вопроса на одну и ту же тему — а зачем так сложно? Первый вопрос из этой серии — а нельзя ли обойтись без последнего этапа, без разделения полигонов? Можно. Вы могли бы после моделирования сделать полную развертку крыши без пересекающихся элементов и создать полную текстуру (правда, это не намного проще). Это хороший способ, но не оптимальный, т. к. текстура вам понадобится в этом случае огромная (до 4000×4000 пикселов). В нашем же случае вы сможете ограничиться повторяющимися элементами значительно меньшего размера. Для черепицы хватит 256×256, а для коньков — вообще 128×128, или даже достаточно будет цвета и процедурной карты.

а Рис. 2.152, а. Разделение полигонов крыши по Material ID

Ìîäåëèðîâàíèå

443

б

в

г

Рис. 2.152, б—г. Разделение полигонов крыши по Material ID

Второй вопрос более принципиальный и касается процесса моделирования — а нельзя ли подготовить элементы крыши и объединить их при помощи булевых операций? Ответ утвердительный, но при этом нужно очень точно выравнивать объекты один относительно другого, все объекты должны быть замкнутыми, и после проведения операции объединения необходимо "вычистить" геометрию. Можно так же использовать составной объект ProCutter, при его использовании нет необходимости применять замкнутые объекты, но

444

Ãëàâà 2

вычищать геометрию придется все равно. Единственное преимущество данного подхода — возможность создать элементы будущей крыши по размерам. Попробуйте!

Ìîäåëèðîâàíèå âîäîñòî÷íîãî æåëîáà Последний сложный элемент в доме — это водосточный желоб. Сделать его мы предлагаем при помощи модификатора Sweep на основе сплайна, полученного непосредственно из крыши.  Выделите подобъект Border по контуру крыши и преобразуйте его в

сплайн (рис. 2.153, а).  ПОЯСНЕНИЕ

Задайте подходящее имя в поле Curve Name. Обязательно переключитесь на тип Linear (линейный).

 "Почистите" сплайн, удалив лишние вершины и сегменты (рис. 2.153, б).  Примените модификатор Sweep и выполните настройку так, как показано

на рис. 2.153, в.

 ПОЯСНЕНИЯ Для желоба вполне можно было бы использовать встроенное сечение Quarter Round (четверть окружности) с подходящими размерами. Но оно не очень подходит, поэтому сделайте свое собственное (помечено стрелкой 1 на рис. 2.153, в). Желательно, чтобы оно было замкнуто. Ориентируясь по краю крыши, при помощи параметров в области, помеченной цифрой 2, добейтесь правильного расположения желоба. Если при этом различные секции ориентируются по-разному, то вернитесь вниз по стеку и реверсируйте нужные сплайны. Снимите флажок Banking (наклон на повороте), он в данном случае вреден (стрелка 3).

 Сделайте видимыми другие элементы и поправьте форму желоба

(рис. 2.153, г), изменяя положение вершин сечения. После этого сечение можно удалить.

Наш файл называется Project1-House-06.max.  Примените модификатор Edit Poly и доработайте форму желоба там, где

это нужно (рис. 2.153, д). Обязательно удалите полигоны, совпадающие с полигонами крыши (помечено стрелками на рис. 2.153, е)!

Ìîäåëèðîâàíèå

445

а

б Рис. 2.153, а и б. Моделирование водосточного желоба

446

Ãëàâà 2

в

г Рис. 2.153, в и г. Моделирование водосточного желоба

Ìîäåëèðîâàíèå

447

д

е Рис. 2.153, д и е. Моделирование водосточного желоба

448

Ãëàâà 2

Îêîí÷àòåëüíàÿ äîâîäêà ìîäåëè äîìà И вот теперь звучит коронная фраза, которой заканчиваются почти все уроки в Интернете: "немного поправив геометрию, добейтесь нужного результата". Геометрию каких объектов? Всех! Из-за неосмотрительного применения разных версий чертежей с самого начала все пошло немного не так, как надо. Это "немного" и привело к нестыковкам. Правда, не только у нас. Обратите внимание на окна второго этажа эркера на фотографиях, размещенных на диске. Каково? К счастью, этот проект достаточно простой, и его можно без особых усилий довести до нужного состояния. Просмотрите все объекты. Достройте недостающие элементы, например, слуховые окна. Достройте крышу в нужных местах, стены эркера, трубу, добавьте наличники. Вот такой дом получился (рис. 2.154)! Наш дом вы можете найти в файле Project1-House-final.max.

Рис. 2.154. Окончательная модель дома

Ìîäåëèðîâàíèå

449

Ìîäåëèðîâàíèå è ðàçìåùåíèå ðàñòèòåëüíîñòè На моделировании растительности останавливаться достаточно подробно мы не считаем нужным. Дело в том, что деревья и кусты могут быть двух видов — или упрощенный вариант, представляющий собой плоскости с наложенными на них текстурами и использованием карты прозрачности, или растения, выполненные со всеми деталями, в которых все, вплоть до последнего листочка, представлены геометрией. Модели первого типа показаны на рис. 2.155. Самый простой вариант — плоскости, поставленные под углом друг к другу (рис. 2.155, а). Более сложные варианты показаны на других рисунках (рис. 2.155, б—г). Но все равно, основным элементом в них являются плоскости.

а Рис. 2.155, а. Простые модели растений

450

Ãëàâà 2

б

в Рис. 2.155, б и в. Простые модели растений

Ìîäåëèðîâàíèå

451

г Рис. 2.155, г. Простые модели растений

Хотим вас предостеречь от массового применения таких моделей, особенно если вы используете расчет глобального освещения и мягкие тени. Дело в том, что процесс расчета этих элементов при применении карт прозрачности замедляется в разы и десятки раз. Так же возникают проблемы при расчете карты глубины (Z-Buffer). Так как при построении глубины прозрачность не учитывается, такие "плашки" в этом канале дают просто контуры геометрии, на которые они наложены. При использовании mental ray вы можете применить в этом случае специальный шейдер p_z, написанный Павлом Лединым (http://puppet.cgtalk.ru/). В поставку 3ds Max 2008 так же включен специальный шейдер, позволяющий получить корректный Z-buffer от объектов с картой прозрачности. При использовании метода имитации глобального освещения, называемого Ambient Occlusion (окклюзия окружения), так же могут возникнуть проблемы уже при окончательном рендеринге, т. к. этот алгоритм не учитывает прозрачности.  СОВЕТ Если вы заинтересованы в этом методе создания растительности, то вам будет полезен плагин ForestPack от ItooSoftware (http://www.itoosoft.com/), распространяемый в двух версиях — Pro (250 евро) и Lite (бесплатный). В комплект входят несколько плагинов для 3D Studio Viz 4/2005/2006/2007/2008 и 3ds Max 4/5/6/7/8/9-32bit/9-64bit и шейдеры для mental ray. VRay "рендерит" эти "деревья" без проблем.

А вот для создания сложных растений, и, самое главное, похожих на нужные, не обойтись без применения специальных плагинов и программ. Краткий об-

452

Ãëàâà 2

зор двух из них, OnyxTREE Pro и EasyNat, приведен в приложении 2. Ценность такого подхода в том, что для этих пакетов существует большая библиотека уже готовых растений, причем построенных правильно с точки зрения биологии. При этом имеется возможность варьировать те или иные параметры в зависимости от задачи. На практике применяются и те и другие модели. На переднем плане используются высокодетализированные растения, на заднем можно обойтись "плашками" или вообще одной плашкой, на которую натянута текстура целого леса. Но в нашем случае есть растение, которое придется смоделировать, т. к. использовать для этого генераторы растительности слишком накладно. Это ирисы в пруду и по его берегам. Такая модель создается очень просто, а копии размещаются по поверхности с помощью волос (Hair and Fur) или плагина Scatter от Питера Ватье. Так как при их размещении используется метод Instance, в памяти такие объекты занимают очень мало места, ровно столько, сколько нужно для одного растения. Модели растений такого типа очень просты и показаны на рис. 2.156. Сделать их можно любыми доступными вам способами. Учитывать при этом нужно следующее.  Модель должна содержать как можно меньше полигонов, но при этом

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

по длине стебля или листа. Поэтому при моделировании важно учесть этот момент, наложив на каждый элемент текстурные координаты так, как показано на рис. 2.156, а. Не используйте флажок Real-World Scale в модификаторе UVW Mapping!  Листья на внешней и внутренней поверхностях, как правило, различаются

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

объект выровнен по мировым координатам утилитой Reset Xform (рис. 2.156, г).  Разделите полигоны листьев и цветка по Material ID.

Для размещения ирисов мы предлагаем вам воспользоваться плагином, написанным много лет назад для 3D Studio MAX 3 Питером Ватье (Peter Watje). Плагин Scatter (буквально "разместитель") настолько удачен, что каждый, кто

Ìîäåëèðîâàíèå

453

работает с 3ds Max, просто обязан иметь его в арсенале своих средств, тем более что он совершенно бесплатный. Сам Питер давно уже не поддерживает свои старые плагины, но исходные тексты он передал Дэвиду Бейкеру (David Baker). Благодаря ему вы можете использовать их в новых версиях 3ds Max. Найти этот плагин (и не только его) можно на сайте www.maxplugins.de. Скачайте файл ScatterV9.zip, распакуйте и поместите соответствующий вашей системе файл (для 32- или 64-битной версии) Scatter.dlu в папку 3dsmax\Plugins. Плагин будет загружаться автоматически при запуске 3ds Max. Если вы не хотите перезапускать 3ds Max, запустите плагин из менеджера плагинов — Plug-in Manager (рис. 2.157). Главное меню  Customize  Plug-in Manager Контекстное меню Plug-in Manager  Load New Plug-in  найдите и загрузите файл Scatter.dlu

а

б Рис. 2.156, а и б. Модель ириса

454

Ãëàâà 2

в

г Рис. 2.156, в и г. Модель ириса

Ìîäåëèðîâàíèå

455

д Рис. 2.156, д. Модель ириса

В отличие от аналогичного по названию составного объекта 3ds Max, плагин Scatter Питера Ватье представляет собой утилиту для размножения копий одного объекта по поверхности другого. На примере размещения осоки по дну пруда рассмотрим настройки и возможности этого плагина.  Загрузите модель ириса в проект командой Merge из файла Iris.max.  Настройте вид так, чтобы был виден участок пруда, на котором вы будете

рассаживать цветы. Важно при этом сделать активным слой Iris, иначе копии попадут в другой слой.

456

Ãëàâà 2

Рис. 2.157. Менеджер плагинов

 Запустите утилиту Scatter и выполните настройку так, как показано на

рис. 2.158, а.

Командная панель  подпанель Utilities  More...  Scatter

 ПОЯСНЕНИЕ Плагин может работать в двух режимах, автоматическом и интерактивном. Нас интересует второй, поэтому перейдем сразу к группе Copy Method (метод клонирования). Введите разумное имя для клонов (стрелка 1 на рис. 2.158, а). Конечно, нужно использовать метод Instance (стрелка 2). В группе Offset Method (метод сдвига) (стрелка 3) вы можете задать вариации по смещению, углу поворота и масштабу. В качестве объекта для размножения выберите ирис (стрелка 4). Обратите внимание, что утилита Scatter позволяет использовать до 8-ми объектов с разными весовыми коэффициентами. В качестве объекта-эмиттера выберите ландшафт.

 После того как все настроено, нажмите кнопку Paint, и, щелкая левой

кнопкой мыши по ландшафту, рассадите цветы (рис. 2.158, б). После этого удалите оригинальный объект.

Ìîäåëèðîâàíèå

457

а

б Рис. 2.158. Размножение ирисов с помощью утилиты Scatter

458

Ãëàâà 2

Несколько больше возможностей дает применение модификатора Hair and Fur, например, анимацию под действием ветра. Но с ним больше мороки, и возможности по рассаживанию растений с его помощью рассмотрены в соответствующем разделе главы 3. Осталось разместить деревья и кусты в соответствии с планом. Загружайте растения из соответствующих по названию файлов (Tree....max и далее латинское название, кроме Bush) и размножайте, используя команду Instance. Вы можете вращать и масштабировать деревья. Кусты можно расставлять при помощи утилиты Scatter. Сразу после расстановки переключайте слои в отображение в виде бокса!  ВНИМАНИЕ! Растения сгенерированы при помощи ONYX TreeStorm. Поэтому им уже присвоены составные материалы, и подобъекты распределены по Material ID. Не переназначайте им материалы для тестовых рендерингов!

Забыли совсем про газонную траву. Как ни странно, но создание и самого простого (с использованием карты смещения, Displacement), и более сложного (с использованием модификатора Hair and Fur для mental ray или объекта VRay Fur для VRay) варианта такой травы рассмотрено в разделах, посвященных материалам и рендерингу, т. к. это больше относится именно к этому разделу, нежели к моделированию. Злаки на террасах также будут созданы с использованием волос. Окончательный вариант геометрии сцены вы можете найти в файле Project1FinalGeometry.max. Откройте его и тщательно изучите. Удивлены внесенными изменениями? Дело в том, что в своем желании описать как можно большее количество возможностей 3ds Max в области моделирования, мы ушли далеко от первоначального проекта. Автор проекта сделала критические замечания, и пришлось в спешном порядке менять достаточно много. Изменения коснулись следующего:  Была изменена форма бассейна, т. к. по

проекту это не бассейн в обычном понимании, а часть пруда, с берегами, декорированными камнем. Если исходный контур для модификатора Sweep не сохранился, то его можно извлечь из модификатора при помощи команды Extract.  Ступени для входа в воду также немного переделаны.  Изменен мостик. Благодаря тому, что стеки не свернуты, достаточно вер-

нуться вниз по стеку на уровень редактируемого сплайна (Editable Spline) и перемещать вершины. Так как эти элементы уже повернуты, при перемещении вершин делайте это в системе координат Parent (родительского объекта).

Ìîäåëèðîâàíèå

459

 Изменены размеры и расположение деревьев вокруг пруда.  И изменения "по мелочи" — изменена ограда для спортплощадки, умень-

шено сечение бордюра вокруг подъездной дороги, добавлены фонари на веранду и т. д. Если вы сделали свой собственный проект, то, конечно, вам ничего изменять не нужно. При внесении изменений у нас было два чувства: первое — как хорошо, что все объекты разложены по слоям! Это очень облегчает работу с большой сценой. И если бы еще группы в менеджере слоев были бы представлены в виде иерархии — было бы вообще великолепно! Второе — как плохо, что объекты загружены в сцену при помощи команды Merge (слияние), а не XRef (ссылка). Это очень бы упростило процесс изменения объектов, т. к. можно было редактировать их в исходном файле, а изменения передавались в окончательную сцену автоматически. Ну, и конечно — как хорошо, что все можно так быстро изменить и переделать!

Êîíòðîëüíûå âîïðîñû 1. Перечислите преимущества и недостатки реализации слоев в 3ds Max? (См. разд. "Настройка рабочего пространства".) 2. Каковы преимущества использования папки разд. "Создание и установка папки проекта".)

проекта?

(См.

3. Объясните принцип выбора единиц измерения (см. разд. "Установка единиц измерения и шага сетки"). 4. Каковы требования к справочному растровому изображению в 3ds Max? (См. разд. "Подготовка и использование в проекте плана ландшафта".) 5. Каковы требования к использованию чертежей в векторном формате? (См. разд. "Моделирование дома".) 6. В чем заключаются особенности и преимущества составных (Compound) объектов в 3ds Max? (См. разд. "Использование изолиний для построения ландшафта" и "Беговая дорожка".) 7. Каковы достоинства и недостатки построения ландшафта с использованием лоскутов (Patches)? (См. разд. "Создание ландшафта при помощи лоскутов".) 8. Что необходимо для создания рельефа смещением? (См. разд. "Создание ландшафта по растровой карте высот".)

460

Ãëàâà 2

9. Каковы общие черты и различия между модификатором Sweep и составным объектом Loft? Каковы достоинства и недостатки того и другого? (См. разд. "Подъездная дорога и стоянка", "Бассейн" и "Элементы ограды и ворот".) 10. В чем преимущества и недостатки применения логических операций — составных объектов Boolean и ProBoolean? Как можно и в каких случаях нужно избегать их применения? (См. разд. "Моделирование беседки".) 11. Каковы этапы моделирования сложных природных неорганических и органических объектов? Можно ли использовать заготовки на основе сплайнов и лоскутов для дальнейшего полигонального моделирования? (См. разд. "Фонтан".) 12. Каковы требования к геометрии модели для последующего геометрического сглаживания модификаторами Turbosmooth и MeshSmooth? (См. разд. "Мостик" и "Фонтан".) 13. Каковы требования к моделированию стен и их элементов? Можно ли моделировать их единым целым? (См. разд. "Стены дома и эркера".) 14. Предложите варианты моделирования крыши дома и эркера. В каком случае имеет смысл моделировать крышу как единое целое? (См. разд. "Моделирование крыши".) 15. Каковы основные приемы создания растений? Объясните преимущества и недостатки использования плоскостей с картой прозрачности (см. разд. "Моделирование и размещение растительности"). 16. Каковы методы загрузки объектов в сцену? Каково преимущество использования ссылок (XRef) по сравнению с простым слиянием (Merge)?

Глава 3 Визуализация

Э

та глава посвящена заключительной стадии работы над проектом — визуализации, или рендерингу. В ней будут затронуты вопросы использования двух модулей рендеринга — встроенного mental ray 3.5 и внешнего подключаемого VRay 1.5. С этого момента ваш проект разделяется на два независимых проекта. Один проект ориентирован на применение mental ray, второй — VRay. Несмотря на это, между ними очень много общего, различие только в применяемых инструментах. Но и различия таковы, что мы не можем совсем абстрагироваться от особенностей реализаций и дать вам какие-то общие принципы. Слишком много нюансов при применении и того, и другого. Как указывалось в главе 1, каждый модуль рендеринга привносит в 3ds Max свои элементы — материалы, источники света, камеры, карты и т. д. Как правило, наилучшего результата с точки зрения качества и скорости можно добиться при применении именно этих средств. Поэтому, начиная с этой главы, мы будем четко разделять настройки для mental ray и VRay. Какой модуль рендеринга вы будете использовать впоследствии, зависит только от ваших предпочтений — и тот, и другой обладают всеми необходимыми средствами для достижения нужного результата в приемлемое время. И у того, и у другого есть некоторые недостатки. Достоинством mental ray прежде всего является то, что он встроен в 3ds Max. Практически уже можно считать, что он является "родным" рендерером, и не только для 3ds Max, но и Autodesk Maya, Avid Softimage|XSI и даже... Autodesk AutoCAD. Настройки достаточно простые и логичные, новые шейдеры, которыми вы будете пользоваться, специально разработаны для использования в архитектурной и технической визуализации (неслучайно библиотека называется architectural.mi). В нее, в частности, включены шейдеры для имитации физически корректного естественного освещения и замечательный материал Arch+Design, при помощи которого можно решить большинство задач реалистичного рендеринга. Имеется большое количество настроек, дающих возможность оптимизировать рендеринг. Кроме этого, mental

464

Ãëàâà 3

ray весьма лояльно относится ко всем стандартным средствам 3ds Max, которые были переписаны в шейдеры (программные модули) mental ray с сохранением почти всех свойств и настроек. И, наконец, для mental ray существует огромное количество шейдеров независимых разработчиков, позволяющих получить такие эффекты, как дисперсия, дифракция и т. д. Недостатком mental ray в связке с 3ds Max являются весьма бедные возможности по управлению самим рендерером из 3ds Max. Трудно сказать, чем руководствовались разработчики транслятора, не включив многие полезные настройки, например, возможность исключения объектов из расчета окончательного сбора (Final Gather). По мнению профессионалов, по сравнению с Maya или Softimage|XSI, в 3ds Max mental ray встроен наименее удачно. Определенные ограничения накладывает и логическая структура 3ds Max, отличная от большинства пакетов высшего класса. Часто практикуется экспорт из 3ds Max в формат mental ray (MI), который представляет собой текстовый файл, правится в текстовом редакторе и передается для рендеринга пакету mental ray Standalone. Такой подход выгоден еще и тем, что вы экономите память, да и рендеринг можно проводить под любой операционной системой, в том числе и Linux. И, наконец, в справке к 3ds Max, в разделах, посвященных mental ray, допущены ошибки и неточности, поэтому мы вас призываем читать документацию к mental ray, хотя это и не просто. Мы выражаем огромную благодарность Павлу Ледину и Игорю Сивакову за помощь при подготовке материала этой главы, касающегося mental ray.  ЗАМЕЧАНИЕ Мы используем версию 3ds Max 9 с установленным пакетом расширений Productivity Booster Extension 1: Rev3. В нем некоторые настройки mental ray отличаются от тех, что присутствуют в обычной версии, в том числе и с установленным SP2 для 3ds Max 9.

Модуль VRay компании ChaosGroup разрабатывался изначально как плагин к 3ds Max. Разработку начинал и продолжает в основном один человек, Владимир Колязов, или просто Владо. На сегодняшний момент именно этот модуль является наиболее используемым в архитектурной и интерьерной визуализации, т. к. позволяет получать высокое качество за относительно короткое время. К недостаткам можно отнести обилие настроек. Но именно такое количество настроек и дает возможность балансировать между качеством и скоростью. К сожалению, часть этих настроек оставлена исключительно "для совместимости". Не радует и отсутствие полной окончательной документации. Дело в том, что VRay 1.5 до последнего момента находился в состоянии "перманентной беты", и только в августе 2007 года вышел официальный окончательный релиз.

Âèçóàëèçàöèÿ

465

Последний вариант документации вы можете найти по адресу http:// www.spot3d.com/. В начале главы рассматривается версия VRay 1.5 RC5 (Realize Candidate), а окончательный рендеринг и настройки — уже финальной версии. Поэтому не удивляйтесь, что некоторые скриншоты в начале главы не совпадают с вашими, это не принципиально. Цена VRay составляет примерно $800. Но пока для коммерческих проектов интерьерного, архитектурного и ландшафтного характера VRay — наиболее выгодное решение. При подготовке материала нам очень помог Алексей Дук, за что выражаем ему огромную признательность и благодарность. Также выражаем благодарность Антону Стець, Артуру Абидинову и Юрию Копылову (Realtime Studio) за помощь. Версия VRay была предоставлена руководством Realtime Studio, которая является официальным дистрибутором VRay в России (http://www.realtime.ru/studio). По вопросам приобретения VRay обращайтесь по адресу [email protected].

Îñâåùåíèå Настройка освещения — очень важный этап. Какими бы ни были прекрасными ваши модели, они не произведут впечатления на заказчика, если освещены неграмотно. В этой главе рассмотрены варианты дневного и вечернего освещения. Дневное освещение складывается из трех составляющих — света, получаемого от солнца (прямое освещение), света от неба и окружающих предметов (непрямое, или глобальное освещение). При создании вечернего или ночного освещения добавляется еще и свет от фонарей.  ВНИМАНИЕ! Мы считаем, что в процессе моделирования вы достаточно освоились с навигацией в 3ds Max и манипуляциями с объектами и слоями. Поэтому считаем излишним перегружать текст упоминаниями о горячих клавишах и пунктах меню, кроме тех, что встречаются впервые.

Îñâåùåíèå ñ èñïîëüçîâàíèåì mental ray Ïîäãîòîâêà ñöåíû è íàñòðîéêà ïàðàìåòðîâ mental ray äëÿ ÷åðíîâûõ ðàñ÷åòîâ В окнах проекции свет от источников хотя и отображается, но происходит это весьма приблизительно. И совсем не отображается непрямое освещение.

466

Ãëàâà 3

Поэтому вам придется проводить большое количество тестовых расчетов, или "рендеров", как принято их называть среди трехмерщиков. Необходимо сделать так, чтобы эти расчеты были максимально быстрыми. Поэтому вы должны соответствующим образом оптимизировать сцену и настроить mental ray.  Откройте файл Project1-FinalGeometry.max или свой собственный.  Скройте все слои с большими объемами геометрии. На рис. 3.1 показано,

какие слои скрыты.

Рис. 3.1. Сцена, подготовленная к настройке освещения

 Перейдите к настройкам рендеринга. Главное меню  Rendering  Render или  Убедитесь, что в качестве текущего модуля рендеринга установлен mental

ray. Если это не так, то установите его (рис. 3.2, а). Вкладка Common  свиток Assign Render В строке Production должен быть вписан mental ray. Если это не так, нажмите на кнопку с символом "..." и выберите mental ray.

Âèçóàëèçàöèÿ

467

 Задайте размер изображения. Для быстрых расчетов подойдет 320×240 пик-

селов (рис. 3.2, б), либо, если у вас достаточно быстрый компьютер, оставьте значение по умолчанию (640×480). Вкладка Common  cвиток Common Parameters  группа Output Size  Проверьте, установлен ли флажок Rendered Frame

Window (Экранный буфер). Вкладка Common  cвиток Common Parameters  группа Render Output

Ставить свет принято "по серому". Поэтому назначьте на все объекты в сцене нейтральный серый материал. В mental ray это можно сделать, не заменяя материалы в сцене в явном виде (рис. 3.2, в). Вкладка Processing  группа Material Override Установите флажок Enable (включить, стрелка 1 на рис. 3.2, в) Щелкните на кнопке None Выберите в браузере материалов и карт новый материал типа Standard (стрелки 2 и 3 на рис. 3.2, в) и щелкните на нем дважды левой кнопкой мыши

 ЗАМЕЧАНИЕ Не выбирайте материал mental ray! Это совсем не то, что вы подумали!

 Убедитесь, что настройки антиалиасинга (сглаживания) установлены по

разумному минимуму, так, как показано на рис. 3.2, г. При необходимости измените их. Вкладка Renderer  свиток Sampling Quality  Чтобы иметь возможность получить освещение от неба и переотражение

света, включите расчет непрямого освещения по методу окончательного сбора и выберите предустановку Draft (черновой) (рис. 3.2, д). Вкладка Indirect Illumination  свиток Final Gather

 ЗАМЕЧАНИЕ Если у вас возникло чувство, что вы ничего не поняли — не отчаивайтесь! Мы ничего пока и не объясняли. В разделе, посвященном окончательной визуализации, все эти настройки рассмотрены самым подробным образом.

 Сохраните ваши настройки. Возможно, вы захотите использовать их в

дальнейшем. Выпадающий список Presets  выберите Save Preset... (рис. 3.3, а) Задайте имя файла и выберите то, что хотите сохранить, и нажмите Save (рис. 3.3, б)

И теперь сохраните вашу сцену. Наш файл называется Project1-mrLightStart.max.

468

Ãëàâà 3

а

б

в Рис. 3.2, а—в. Настройки mental ray для чернового расчета

Âèçóàëèçàöèÿ

469

г

д Рис. 3.2, г и д. Настройки mental ray для чернового расчета

а Рис. 3.3. Сохранение настроек рендерера

б

470

Ãëàâà 3

Можете провести расчет, нажав на кнопку Render. Ничего интересного. Но это только начало!

Äíåâíîå îñâåùåíèå ñ èñïîëüçîâàíèåì ôèçè÷åñêè êîððåêòíûõ èñòî÷íèêîâ ñâåòà mental ray Первый вариант дневного освещения мы предлагаем настроить самым современным способом — с использованием системы дневного освещения (Daylight System). Это действительно система, позволяющая вам учитывать географическое положение ваших объектов, время года и суток. Жаль, что нет пока возможности связываться с метеорологическим сервером и получать данные о погоде...  Создайте новый слой, назовите его Light-Daylight. Кроме того, что так удобнее, это позволит вам быстро переключаться между различными моделями освещения, устанавливая или снимая флажок Render в менеджере слоев.  Создайте систему дневного освещения на виде сверху или перспективы в

любом месте сцены (рис. 3.4, а). Главное меню  Create  Lights  Daylight System

 ЗАМЕЧАНИЕ Если в процессе создания системы появятся диалоговые окна, показанные на рис. 3.4, б, в, ответьте утвердительно на вопросы. Что это такое, обсуждается далее.

 Перейдите к настройкам в панель Modify (рис. 3.5, а).  Убедитесь, что в качестве источников света установлены mrSun и mrSky

(на рис. 3.5, а помечены стрелками 1 и 2). Если это не так, то установите их. Давайте разбираться с элементами системы. Вся система привязана к вспомогательному объекту, компасу (Compass), определяющему направление на стороны света. По умолчанию направление на север совпадает с верхом окна проекции вида сверху, что логично, т. к. совпадает с общепринятыми в картографии принципами. Так же это совпадает с направлением на север в мировой системе координат. Если вас это не устраивает, то вы можете повернуть компас так, как вам нравится. Сделать это можно либо просто повернув компас, либо изменив ориентацию в настройках контроллера анимации. В свитке Daylight Parameters, кроме выбора типа источников света для солнца и неба, есть переключатель, позволяющий задавать положение солнца вручную (Manual) или в зависимости от реального положения объектов на

Âèçóàëèçàöèÿ

471

а

б

в Рис. 3.4. Создание системы дневного освещения

472

Ãëàâà 3

поверхности планеты Земля (помечено стрелкой 3 на рис. 3.5, а). Разницы в том, как вы настраиваете положение солнца, вручную или по параметрам, нет никакой. При определении интенсивности и цвета солнца и неба учитывается только угол наклона солнца и параметры источников света. Но автоматический способ постановки солнца вам может пригодиться. Как известно, расчеты инсоляции делаются для полудня в день весеннего или осеннего равноденствия (20—21 марта или 23 сентября). Давайте настроим освещение таким образом.  Нажмите кнопку Setup (стрелка 4 на рис. 3.5, а). Вы попадете в режим редактирования параметров специального контроллера анимации (стрелка 1 на рис. 3.5, б). На этом рисунке все установки уже проведены для Москвы. Если же вы хотите настроить освещение для другого города, то вы можете это сделать. Группа Time. Параметры этой группы определяют момент времени — время суток и день в году — на который рассчитывается освещение. Некоторое затруднение может вызвать параметр Time Zone (временная зона), которая определяет сдвиг времени относительно Гринвичского меридиана. 3ds Max автоматически настраивает этот параметр в соответствии с системными установками. Также автоматически снимаются показания системного таймера на момент создания системы дневного освещения.  ЗАМЕЧАНИЕ Найти значение этого параметра можно в настройках Windows. Для русской версии: Панель управления  Дата и Время  Часовой пояс. Для англоязычной версии: Control Panel  Date and Time  Time Zone

Флажок Daylight Saving Time учитывает значение летнего времени, в нашем случае он должен быть снят. Группа Location позволяет ввести значение широты и долготы расположения объекта вручную, при этом положительные значения соответствуют северной широте и западной долготе. Но удобно воспользоваться картой, на которой можно выбрать его местоположение (стрелка 2 на рис. 3.5, б). Параметры группы Site определяют расстояние до "Солнца" и "Неба" (Orbital Scale) и направление на Север (North Direction). Параметр Orbital Scale не является критичным, не стоит вводить реальные расстояния (150 млн км), достаточно, чтобы солнце находилось выше объектов в сцене, а в случае использования mr Sun и это необязательно, т. к. этот источник света является "бесконечным" (Infinite). Второй параметр (North Direction) управляет компасом, вы можете изменить направление на север по своему желанию. Все параметры анимируются, поэтому вы можете с легкостью создать анимацию изменения освещения от времени суток или времени года.

Âèçóàëèçàöèÿ

473

Вернемся к параметрам освещения, в подпанель Modify и рассмотрим основные параметры в порядке их значимости. Самыми главными параметрами являются те, что сосредоточены в свитке mr Sky Parameters (стрелка 5 на рис. 3.5, а). По умолчанию все настроено так, что именно они управляют освещением в сцене и цветом неба. Параметр Multiplier (множитель) позволяет отклоняться в ту или иную сторону от физически корректной величины. Понадобиться это может, например, в том случае, если вы имитируете освещение в солнечный день высоко в горах. В этом случае из-за разреженности атмосферы вклад неба в общее освещение уменьшается, и этот параметр можно уменьшить, а соответствующий параметр в настройках солнца увеличить.

а Рис. 3.5, а. Настройки системы дневного освещения

474

Ãëàâà 3

б Рис. 3.5, б. Настройки системы дневного освещения

Параметр Haze (смог) определяет загрязненность атмосферы. Он меняется от 0 (совершенно чистый воздух) до 15 (смог). При этом меняется соотношение вклада в освещение от солнца и неба, а так же цвет (от голубого к желтому) и размытие тени. Параметр Height в группе Horizon (горизонт) определяет высоту расположения объекта над линией горизонта, и меняется от –10 до 10. Например, если вы хотите показать, что дом находится в горах, то нужно задать значение меньше 0, например, "–1". При помощи параметра Blur можно размыть линию горизонта, а параметр Ground Color определяет цвет земли. Этот цвет участвует в освещении. Например, в случае имитации зимнего пейзажа его можно сделать светлее. Цвет Night Color (цвет неба ночью) работает тогда, когда солнце скрыто за горизонтом. Параметры группы Nonphysical Tuning (не физические подстройки) позволяют ввести "нечестные" коррективы в освещение. Параметр Red/Blue Tint позволяет изменять баланс в сторону красного оттенка, а Saturation умень-

Âèçóàëèçàöèÿ

475

шить насыщенность непрямого освещения от неба, что иногда весьма полезно. Параметр Aerial Perspective (воздушная перспектива) добавляет дымку. Забегая вперед, отметим, что в случае использования в качестве карты окружения файла в формате HDRI придется отказаться от этой возможности. Следующий свиток, mr Sun Parameters (параметры солнца) (стрелка 6 на рис. 3.5, а) содержит аналогичные настройки для солнца. Как видите, они не доступны, т. к. установлен флажок Inherit from mr Sky (наследовать настройки неба). Но при желании вы можете сделать солнце немного другим. В свитке mr Sun Basic Parameters (основные настройки солнца) вы можете подкорректировать в ту или иную сторону степень размытия теней от солнца (параметр Softness) и изменить (увеличить) качество теней (Softness Samples). Не советуем вам делать бездумно ни того, ни другого, меняя эти параметры, т. к. размытие теней определяется автоматически исходя из загрязненности атмосферы, а качество теней во многом зависит от настроек антиалиасинга. В свитке mr Sun Photons есть возможность определить направление испускания фотонов, необходимых, например, для создания эффекта каустики, и ограничить радиус области для оптимизации расчетов (стрелка 7 на рис. 3.5, а). В общем, можно считать, что по умолчанию все настроено правильно. Подберите нужный ракурс вида перспективы и проведите тестовый рендеринг (сочетание клавиш +). У вас может получиться либо так, как показано на рис. 3.6, а (все нормально), или рис. 3.6, б (черный фон), либо белый экран. Во всех случаях есть повод обсудить еще один важный момент — экспозицию. Этот термин хорошо известен тем, кто серьезно занимается фотографией и знает, что такое чувствительность пленки, диафрагма и выдержка. Благодаря повсеместному распространению цифровых технологий, можно провести следующую аналогию. При съемке при дневном свете ситуация такова, что разница в освещенности между яркими участками (например, небом) и затененными (например, лицом человека на фоне неба) различаются на несколько (до десятка) порядков. Даже глаз, самый совершенный оптический прибор, не в состоянии видеть одновременно и то, и другое со всеми деталями. Что и говорить о матрице цифрового фотоаппарата или фотопленке, способных воспринимать значительно более узкий диапазон! Но еще хуже ситуация в том случае, когда результат, полученный матрицей, так называемый RAW-формат, переводится в формат с еще более узким диапазоном, например, JPEG. Вы не можете получить на снимке одновременно и красивые облака на небе, и лицо со всеми

476

Ãëàâà 3

а

б Рис. 3.6. Результат тестового расчета

Âèçóàëèçàöèÿ

477

деталями на фоне этого неба. Вы получите либо облака и темное пятно по контуру головы, либо лицо на светлом фоне. Приходится выбирать, настраивая параметры экспозиции. При рендеринге происходят очень похожие процессы. Сам рендеринг ведется в большом динамическом диапазоне, при этом все операции проводятся с числами с плавающей точкой. На выходе вы получаете что-то аналогичное RAW. В случае применения физически корректных источников света (а именно такими и являются mr Sun и mr Sky, неслучайно полное название этих шейдеров — mental ray physical sun и physical sky), динамический диапазон соответствует диапазону реального мира. Для вывода на экран или в файл с глубиной цвета 8 или 16 бит на канал с целочисленным представлением (TIFF, JPG) производится операция сжатия диапазона в пределы от 0 (черная точка) до 1 (белая точка) путем замены одних значений (с плавающей точкой) на другие (целочисленные) по какому-либо закону. Все то, что не попадает в этот диапазон, как и в случае цифрового фотоаппарата, обрезается, информация теряется безвозвратно.  ЗАМЕЧАНИЕ

Этот процесс получил название Tone Mapping или Color Mapping, и, опять же, должен хорошо быть знаком профессиональным "цифровым" фотографам.

Если в результате тестового расчета вы получили белый экран, то значит, по каким-либо причинам не было включено управление экспозицией. Сделайте это и посмотрите, как его настраивать (рис. 3.7). Главное меню  Rendering  Environment  свиток Exposure Control Выберите в выпадающем списке Logarithmic Exposure Control

 ЗАМЕЧАНИЕ Никакие другие варианты не работают при использовании mental ray. А жаль.

Рис. 3.7. Настройки логарифмического управления экспозицией по умолчанию

478

Ãëàâà 3

Настройки во многом аналогичны настройкам кривых (Curves) в Adobe Photoshop, но представлены не столь наглядно. Параметры Brightness и Contrast определяют соответственно яркость и контрастность окончательной картинки, аналогично процессу с таким же названием в Adobe Photoshop. Параметр Mid Tones сдвигает среднюю точку на кривой в более или менее яркую область. Другие параметры более специфичны. Очень важным является флажок Exterior daylight (дневной свет). Именно он и позволяет привести динамический диапазон дневного освещения в норму. Параметр Physical Scale нужен в том случае, когда в сцене присутствуют как физически корректные, так и стандартные источники света. Поскольку контроль экспозиции настроен прежде всего на применение первых, то для того, чтобы корректно обрабатывать свет от стандартных источников света, предусмотрен этот параметр, преобразующий единицы стандартных источников света в физические величины. В нашей сцене этот параметр никакого влияния на конечный результат не оказывает. Параметр Color Correction позволяет устанавливать "баланс белого". Если ваша сцена "уходит в синеву", то вы можете скорректировать это добавлением синего цвета в поле справа от флажка. Если у вас установлен пакет расширений Productivity Booster, то вы можете поступить следующим образом.  Откройте окно настроек цвета (Color Picker), щелкнув по прямоугольнику с цветом (стрелка 1 на рис. 3.8).  Выбрав пипетку, щелкните по тому цвету в окне с результатом рендеринга (стрелка 2), который, по вашему мнению, должен быть белым.  Увеличьте значение Value, не изменяя других (стрелка 3). Несмотря на то, что этот метод решает проблему пересвета, он имеет несколько недостатков. Логарифмическое управление экспозицией с установками по умолчанию приводит к излишнему осветлению и потере контрастности. Кроме этого, "плывут" цвета материалов и текстур при рендеринге по сравнению с отображением их в окнах предварительного просмотра (слотах) редактора материала. От первого недостатка можно избавиться, правильно настроив этот процесс. При настройках, показанных на рис. 3.9, удается получить достаточно контрастное изображение. Со вторым недостатком сложнее, но если вас не сильно волнует некоторое несоответствие по цветам, и если вы владеете редактором растровой графики (а вы должны им владеть, если собираетесь заниматься трехмерной графикой серьезно), то вы можете поправить цвета на окончательном изображении.  ЗАМЕЧАНИЕ В руководстве пользователя 3ds Max при использовании управления экспозицией не рекомендуется использовать коррекцию гаммы (этот процесс описан в

Âèçóàëèçàöèÿ

479

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

Рис. 3.8. Установка баланса белого

Рис. 3.9. Окончательные настройки логарифмического управления экспозицией

480

Ãëàâà 3

Другой способ управления экспозицией заключается в использовании специального шейдера mental ray, mia_exposure_simple. Вполне возможно, что он покажется вам, как и нам, более предпочтительным.  Отключите использование управления экспозицией. Главное меню  Rendering  Environment  свиток Exposure Control Выберите в выпадающем списке  В параметрах рендерера назначьте на слот Lens шейдер mia_exposure_

simple (рис. 3.10, а). Главное меню  Rendering  Render  вкладка Renderer  группа Camera Shaders Нажмите на кнопку в строке Lens и назначьте шейдер mia_exposure_simple (показано стрелкой на рис. 3.10, а)  Перенесите его в слот редактора материалов, используя метод Instance, и

выполните настройку так, как показано на рис. 3.10, б.  ПОЯСНЕНИЕ Данный материал взят с небольшими изменениями из статьи Игоря Сивакова с разрешения автора. Шейдер достаточно прост по своим возможностям, но удобен в практической работе. Алгоритм его работы следующий. Он преобразует цвет типа большого динамического диапазона (high dynamic range) в обычный (low dinamic range), пригодный для отображения на обычных мониторах следующим образом: •

К цвету добавляется значение параметра pedestal.



Цвет умножается на значение gain.



Результат сравнивается со значением, заданным в knee, и если он больше, то цвет "сжимается" по логарифмическому закону в зависимости от значения параметра compression.



К полученному результату применяется гамма-коррекция (gamma).

Параметры подбираются "по вкусу", ориентироваться при этом нужно на значение цвета, взятого их экранного буфера нажатием правой кнопки мыши на ярком месте. Значения цветов (RGB) не должно быть больше или равно 1. Смысл параметров таков: •

Параметр pedestal используется для настройки "точки черного". Небольшие его положительные значения делают черный цвет слегка серым, а отрицательные вычитаются и позволяют сделать изображение более контрастным.



Параметр gain является основным средством преобразования цветов high dynamic range в low dynamic range. Поэтому его значения должны быть меньше единицы. Рекомендованные значения от 0.15 до 0.2, но в 3ds Max результат работы шейдеров mr Sun и Mr Sky интерпретируются с большими значениями на выходе, чем, например, в Maya, поэтому это значение несколько меньше (0.04—0.06).

Âèçóàëèçàöèÿ

481

а

б Рис. 3.10. Настройка шейдера mia_exposure_simple



Параметр knee определяет пороговый цвет. Все цвета со значением выше knee будут нелинейно сжиматься в соответствии со значением compression. Таким образом, параметр knee определяет, с какого момента цвета яркого диапазона начнут компрессироваться. Параметр может изменяться от 0 до 1, но практическое значение имеют величины от 0.5 до 0.75.



Параметр compression определяет степень сжатия для цветов со значением выше knee. Нулевая компрессия означает отсутствие сжатия, значение 5 — очень сильное сжатие. Конкретное значение этого параметра определяется по особенностям освещения сцены.



Параметр gamma определяет обычную экранную гамма-коррекцию. Если в сцене используется глобальная гамма-коррекция, то для того, чтобы не вносить путаницу, стоит установить это значение равным 1.

482

Ãëàâà 3 Очень полезной особенностью этого шейдера является возможность выполнения настроек без повторных рендеров. Чтобы ее использовать, необходимо сделать следующее. На время выключить перед рендером шейдер mia_exposure_simple и "отрендерить" изображение в файл формата HDR (например, .exr или .hdr). Затем снова включить шейдер mia_exposure_simple, установить флажок Use Preview и открыть файл изображения в слоте Preview. Необходимо отключить использование фотонных карт или final gathering, если они используются. Выполнить рендер. При этом расчет изображения будет очень быстрым, поскольку на самом деле рендера не происходит, а берется изображение из файла, и к нему применяются настройки tone mapping. Далее можно выполнять настройки параметров и быстро "перерендеривать" изображение, пока не будет достигнут требуемый результат. После этого нужно снять флажок use_preview и использовать его уже для рендеринга.

Поэкспериментируйте с этими параметрами. Вполне возможно, что вы найдете более интересный вариант. Теперь решим возможную проблему с небом, а точнее, с его отсутствием. Надо очень четко понимать, что при использовании mental ray небо, участвующее в освещении, и небо, отображающееся на окончательном изображении — это два разных процесса, хотя и связаны они друг с другом при такой схеме освещения самым тесным образом. Поэтому независимо от того, отображается небо или нет при окончательном рендеринге, свет от него имеет место быть.  Обратите внимание на свиток Common Parameters в настройках окружения (Environments). Если на большой кнопке Environment Map (карта окружения) написано "None", то нажмите ее и выберите из списка mr Physical Sky. При желании вы можете поэкспериментировать с настройками этой карты, открыв редактор материалов и перенеся карту mr Physical Sky в любой слот редактора материалов, используя метод Instance (наследования). Где бы ни была назначена карта, редактируется она в редакторе материалов! Главное меню  Rendering  Material Editor или клавиша

Рассмотрение настроек этой карты выходит за рамки книги, тем более что они завязаны на параметры неба, участвующего в освещении. При желании вы можете сами попробовать настроить эту карту "по вкусу", но нам кажется, что использование сферической карты в формате HDRI, описанное в следующем разделе, все же более оправданно в случае, если вам необходимо красивое небо. Наши файлы называются Project1-mrLight-LogExposure.max и Project1mrLight-mia-exposure-simple.max соответственно.

Âèçóàëèçàöèÿ

483

Äíåâíîå îñâåùåíèå ñ èñïîëüçîâàíèåì ñòàíäàðòíûõ èñòî÷íèêîâ ñâåòà è èñòî÷íèêîâ mental ray Несмотря на все преимущества предыдущего способа, классический метод, основанный на применении стандартных источников света, дает не худшие результаты, а возможностей предоставляет ничуть не меньше. Этот метод продолжает успешно применяться и вряд ли в ближайшее время есть смысл отказываться от него совсем. В нашем варианте использованы источники света типа mr Area Spot (протяженный прожектор mental ray) для имитации солнца и Skylight для неба.  Загрузите ваш вариант с настройками для быстрых расчетов или используйте наш файл Project1-mrLight-Start.max.  Отключите использование управления экспозицией. Главное меню  Rendering  Environment  свиток Exposure Control  выберите  Создайте новый слой.  Создайте источник света, имитирующий солнце, и разместите его так, как

показано на рис. 3.11, а, т. е. достаточно далеко от поверхности "земли" и примерно под 45° к поверхности и 45° к фасаду в плане. Главное меню  Create  Lights  Standard Light  mr Area Spot  Настройте параметры так, как показано на рис. 3.11, б.

 ПОЯСНЕНИЕ Мы расположили свитки в том порядке, в котором они будут описаны далее. Cвиток General Parameters (основные параметры). Флажок On позволяет включать или выключать источник света. Выпадающий список Spot/Direct/Omni позволяет менять тип источника света. Старайтесь не пользоваться этой опцией для источников mental ray, это приводит иногда к некорректному результату! В нашем случае было бы логичнее использовать тип Direct, дающий параллельные лучи, но при этом теряется возможность создания мягких реалистичных теней (Area Shadows). В группе Shadows (Тени) можно включить и выбрать тип теней. В нашем случае нужно использовать тени Ray Traced Shadows, т. к. только они дают возможность получить мягкие тени. Кнопка Exclude вызывает диалоговое окно, в котором можно исключить объекты из освещения данным источником света. Свиток Intensity/Color/Attenuation (интенсивность, цвет и ослабление света). Для управления интенсивностью света используется параметр Multiplier (множитель). Установите его равным 1.1—1.2, не больше. Обычные значения, при которых не происходит явного "пересвета", лежат в пределах от 0 до 1.5. Этот параметр может быть отрицательным, при этом источник света превращается в источник тени!

484

Ãëàâà 3 Щелкнув на белом прямоугольнике, вы откроете диалоговое окно выбора цвета света. Сделайте его желтоватым, но не чрезмерно. По умолчанию стандартные источники света обладают свойством светить без ослабления света. И для солнца это действительно так. Свет от светила прошел 150 млн км, вряд ли он заметно ослабнет, пройдя еще три десятка метров. Поэтому никакие другие параметры в этом свитке менять не нужно. Свиток Spotlight Parameters (параметры прожектора) является специфическим именно для прожектора. В нем задаются углы раскрытия в градусах. В пределах угла Hotspot/Beam (луч) свет имеет интенсивность, определяемую значением Multiplier, вне конуса Falloff/Field (поле) света нет, ослабление реализовано по линейному закону. Задайте их так, чтобы в область освещения попадали все объекты. Интересным является флажок Overshoot (Превышение), установка которого превращает прожектор во всенаправленный источник, а параллельный — в "стену света". Это позволяет освещать равномерно большие площади, при этом тени и проекция текстуры, если они есть, все равно будут строиться в пределах области, ограниченной значением параметра Falloff/Field.

а Рис. 3.11, а. Положение (а) и настройки (б) источника света для имитации солнца

Âèçóàëèçàöèÿ

485

б Рис. 3.11, б. Настройки (б) источника света для имитации солнца

В свитке Advanced Effects (дополнительные эффекты) находятся параметры, позволяющие тонко настроить источник света. Мы вам не советуем менять значения Contrast (контрастность) и Soften Diff. Edge (мягкость перехода от рассеянной компоненты материала). А вот флажки Diffuse и Specular (действовать на рассеянную и зеркальную компоненты материала) позволяют убрать блик от источника света там, где он не нужен, и усилить там, где это нужно. Для солнца стоит оставить и то, и другое. В этом же свитке есть возможность назначить карту на источник света. Таким образом, вы можете легко добиться эффекта света сквозь облака. Свиток Area Light Parameters (Параметры протяженного источника света) является специфическим для источников света mental ray. В нем задается форма (для Spot это может быть прямоугольник или диск, для Omni — сфера либо цилиндр) и размеры источника света. Их можно контролировать в окне проекции, но, к сожалению, только при изменении размеров. Наш выбор — это диск. Качество света и теней определяется параметрами группы Samples (образцы). По сути, один источник света заменяется на матрицу точечных, количество ко-

486

Ãëàâà 3 торых определяется этими значениями. Снятие флажка On превращает протяженный источник света в обычный точечный. Еще раз напоминаем, что не стоит увлекаться повышением качества теней в параметрах источника света, т. к. это можно сделать глобально в параметрах антиалиасинга. Флажок Show Icon in Renderer (показывать иконку при рендеринге) делает источник света видимым на окончательном изображении. Но выглядит это просто как светлый диск с четкими краями, поэтому для солнца использовать эту возможность не стоит. Настройки теней в параметрах источников света в 3ds Max разделены на два свитка. Один из них, Shadow Parameters, является общим для теней всех типов. Параметры Color и Dens. (density) определяют цвет и плотность тени. Немного (подчеркиваем, немного) изменяя значения этих параметров, можно ослабить или подкрасить тень. Но не стоит увлекаться, при использовании непрямого освещения цвет и плотность тени будут зависеть от него. Второй свиток является уникальным для каждого типа теней. Для теней типа Ray Traced Shadows лучше ничего не менять, за исключением флажка 2 Sided Shadows (двусторонние тени). Этот флажок устанавливается в том случае, когда нужно получить тень от обратной стороны поверхности. Интересным является возможность назначить на тень карту. Правда, для солнца это не актуально. Флажок Light Affects Shadow Color позволяет немного окрашивать тень в цвет света. Принцип "свет теплый — тень холодная", принятый в живописи, здесь не используется.

 Но только солнца в нашем случае недостаточно. Нужно еще небо. Создай-

те его! (рис. 3.12). Главное меню  Create  Lights  Standard Light  Skylight

 ПОЯСНЕНИЕ Небо можно разместить в любом месте сцены, это только "иконка" с настройками. При использовании mental ray небо не является прямым источником света и светит только при включенном расчете непрямого освещения.

Можете провести тестовые расчеты. Вы быстро придете к выводу, что сумма множителей (multipliers) двух источников света не должна превышать 1.2— 1.4. Меняя их соотношение, вы можете получить либо солнечный (рис. 3.13, а), либо пасмурный (рис. 3.13, б) день. Причем для создания последнего стоит увеличить радиус диска "солнца", чтобы получить более размытые тени.  СОВЕТ

Удобно пользоваться инструментом Light Lister (Главное меню  Tools  Light Lister) для быстрого изменения параметров источников света.

Как-то маловато настроек у этого неба... И что это за кнопка None?

Âèçóàëèçàöèÿ

487

Рис. 3.12. Настройки "неба"

Дело в том, что вы можете использовать для освещения не просто цвет, а карту. При рендеринге информация о яркости будет сниматься с пикселов этой карты и передаваться источнику света. Обычно используется сферическая панорама с изображением неба и окружающего ландшафта, например, гор либо места в городе и т. д. Получить такую панораму можно из набора фотографий. Для их создания существует достаточно много программ, от бесплатных до достаточно дорогих, например RealVIZ Stitcher, да и в поставке ряда "больших" пакетов (например, Adobe PhotoShop CS3) такие средства то же имеются. Хотя такие панорамы прекрасно подходят в качестве окружения и, в меньшей степени, для создания отражений, они не совсем пригодны (или совсем не пригодны) для освещения. Дело в том, что обычные форматы с глубиной цвета 8 бит на канал не в состоянии передать динамического диапазона освещения реального мира, в котором яркость неба и поверхности Земли может отличаться на десятки порядков. Применение такой карты для освещения приводит к очень неконтрастной картинке.

488

Ãëàâà 3

а

б Рис. 3.13. Результаты тестовых расчетов при разных значениях множителей источников света

Âèçóàëèçàöèÿ

489

В настоящий момент разработано несколько форматов, позволяющих исправить этот и другие недостатки линейных 8- и 16-битных (на канал) изображений. Самым распространенным и ставшим де-факто стандартом является формат RGBE (Radiance RGBE Format), именно с ним и отождествляется, как правило, аббревиатура HDRI (High Dynamic Range Image, изображение широкого динамического диапазона). Этот формат впервые был предложен Грегом Вардом (Greg Ward). Не вдаваясь в подробности, особенность его заключается в том, что кроме обычных значений RGB в нем для каждого пиксела записывается значение экспозиции в логарифмическом формате, что дает возможность покрыть динамический диапазон в 76 порядков. Создается такое изображение путем комбинации нескольких "обычных" фотографий, снятых с различными экспозициями, о чем более подробно написано в соответствующем приложении. Мы же предлагаем воспользоваться панорамой, созданной в пакете Vue 6 Infinity. При создании карты мы учли положение солнца. Файл называется day.hdr. Эта карта имеет размер 3200×1600 пикселов и будет использована для окружения (Enviroment) (рис. 3.14, а). Для освещения принято использовать карту меньшего размера, более размытую и немного обесцвеченную (рис. 3.14, б, на рисунке показаны параметры отката (Edit  Fade) после применения фильтра Desaturate) для ускорения расчета и уменьшения артефактов. Ее размер 400×200 пикселов. Файл называется daylight.hdr. Кроме размеров и размытия они абсолютно идентичны, т. к. вторая карта была сделана из первой в пакете Adobe Photoshop CS3.  Загрузите карту day-light.hdr в качестве источника информации для осве-

щения. Нажмите кнопку None в параметрах источника света Skylight и в окне браузера материалов и карт выберите Bitmap Найдите и загрузите файл day-light.hdr

Откроется окно настроек карты HDRI (рис. 3.15, а). Разработчики рекомендуют загружать эти файлы именно таким образом — с глубиной 16 бит на канал. Казалось бы, при этом исчезают свойства HDR, но это не так.  Настройте значение параметра линейной точки белого (параметр White

Point в строке Linear), при котором исчезают фиолетовые области. Это значение следует запомнить, оно вам пригодится в дальнейшем.  Откройте редактор материалов (клавиша ) и перенесите карту мето-

дом drag-and-drop в любое окно редактора материалов, используя наследование (Instance) (рис. 3.15, б). Как и при моделировании, "инстансирование" позволяет не терять связи между картами, в данном случае, в редакторе материалов и в настройках источника света.

490

Ãëàâà 3

а

б Рис. 3.14. Карты в формате HDRI для окружения (а) и освещения (б)

 Измените тип использования в свитке Coordinates на Environment (окру-

жение) и выберите Spherical (Сферическое) (отмечено стрелкой 1 на рис. 3.15, в).  Значение параметра RGB Level (уровень) в свитке Output установите равным (или немного больше) запомненному значению Linear White Point из диалога настроек карты HDRI (цифра 2). Этим вы восстановите динамический диапазон карты. Сделайте красивое небо!  Загрузите большую карту day.hdr в качестве глобального окружения. Действия при этом те же самые, только назначаются они в другом месте (рис. 3.16). Главное меню  Rendering  Environment  кнопка Environment Map

Âèçóàëèçàöèÿ

491

Так как обе карты наложены как сферическое окружение (Spherical Environment), они привязаны к "миру". При изменении ракурса все останется на своих местах. При назначении карты по умолчанию она ориентирована так, как показано на рис. 3.17. Для того чтобы повернуть карту вокруг мировой оси Z, измените значение параметра Offset (смещение) по оси U. Этот параметр меняется от 0 до 1, что соответствует изменению угла от 0 до 360°.

а

б Рис. 3.15, а и б. Назначение карты на источник света SkyLight

492

Ãëàâà 3

в Рис. 3.15, в. Назначение карты на источник света SkyLight

 ЗАМЕЧАНИЕ При настройке окружения очень часто совершаются следующие ошибки. Первая заключается в том, что в окружение подставляется фотография (неважно, в каком формате) с координатами (Mapping) Screen (экран). Такая фотография очень эффектно смотрится, но при этом отражается, преломляется и участвует в глобальном освещении не корректно. Если вам очень хочется иметь такой фон, то в материалах, использующих отражения и преломления, необходимо на канал окружения (Environment) назначить сферическую карту. Вторая ошибка является следствием того, что панорамные карты HDRI, распространяемые в библиотеках, могут быть представлены в нескольких видах — полная развернутая панорама (Longitude-Latitude), зеркальный шар (Mirrored Ball, Light Probe), развернутый шар (Angular Map) и кубическая панорама в виде горизонтального или вертикального креста (Cubic map, Cross). 3ds Max стандартными средствами может корректно использовать только первый тип, причем даже в интерактивной помощи показан неправильный пример! Если у вас есть карта не в виде развернутой панорамы, вы должны ее преобразовать к нужному типу, например, при помощи пакета HDRShop или плагина Flexify 2 для Photoshop.

Такая схема освещения требует настройки еще одного параметра, гаммы. Что это такое?

Âèçóàëèçàöèÿ

493

Рис. 3.16. Назначение карты на окружение

Рис. 3.17. Ориентация карты окружения

494

Ãëàâà 3

Обычный монитор является нелинейным устройством, т. е. линейный градиент от черного к белому передает нелинейно. В результате линейный градиент кажется сдвинутым в темную область. Чтобы скомпенсировать этот эффект, используется процесс коррекции гаммы (рис. 3.18). Главное меню  Customize  Preferences  Gamma and LUT Включите использование настроек гаммы Изменяя значение в окошке Gamma добейтесь того, чтобы внутренний и внешний квадраты сравнялись по яркости

Рис. 3.18. Настройка гаммы

Чтобы иметь возможность видеть корректный результат в редакторе материалов и диалоговом окне выбора цвета, установите соответствующие флажки (Affect Material Editor и Affect Color Selectors). Гамма входящих текстур корректируется и уравнивается со значением гаммы, чтобы избежать осветления текстур. При рендеринге в обычный формат (линейный 8 или 16 бит на канал, например, TGA или TIFF) гамма выходящих изображений так же уравнивается со значением Gamma. А вот изменять гамму выходящих изображений при рендеринге в формат с большим динамическим диапазоном (например, OpenEXR) не нужно, т. к.

Âèçóàëèçàöèÿ

495

значительно выгоднее исправить все на этапе монтажа, эти форматы были разработаны в том числе и для облегчения цветокоррекции. Зачастую используются фиксированные значения Gamma, независимо от того, что отображается на мониторе. Например, для вывода на видео используется значение 2.2, а для того, чтобы получить изображение, похожее на фотографию, — 1.8. Вот так замечательно выглядит теперь сцена (рис. 3.19). Ее же можно посмотреть и на цветной вкладке (см. ЦВ5).

Рис. 3.19. Окончательный вид сцены с настроенным дневным освещением

Какой из этих вариантов использовать — выбирать вам. Мы склоняемся к варианту с использованием физически корректных шейдеров mental ray. Несмотря на большое количество дополнительных условий (управление экспозицией и т. д.), такая схема освещения упрощает процесс перенастройки освещения, например, с дневного на вечернее — для этого достаточно опустить солнце над горизонтом и перенести его на запад. К тому же, если вашей задачей кроме красивой картинки является еще и, например, исследование освещенности участка в зависимости от времени года и времени суток с целью

496

Ãëàâà 3

выявить узкие места в проекте или наоборот доказать, что с этой точки зрения проект хорош — то первый вариант может очень помочь вам в этом. Но второй вариант также имеет ряд достоинств, он предоставляет больше свободы и возможностей для получения красивой картинки. Можно ли как-то комбинировать эти методы? Можно. Например, в качестве солнца в последнем варианте можно взять источник mr Sun. Но, поскольку при этом вы не используете управление экспозицией, уменьшите его множитель вплоть до 0.03—0.02. Можно использовать карту mr Sky для окружения, и так же настроить ее независимо от всего остального. Можно ли в этой схеме отказаться от использования от источника света для солнца? Можно, и в случае создания эффекта облачного или пасмурного дня даже нужно! Область на карте HDRI, соответствующая положению солнца, на несколько порядков более яркая, нежели остальная часть неба, и вы получите достаточно интересный результат без конкретных теней. Есть только одно противопоказание, следующее из особенностей реализации непрямого освещения по методу Final Gathering — на материалах с картой для создания эффекта шероховатости (Bump) вы этого эффекта не получите. Поэтому в этом случае все же желательно использование слабого прямого источника света. Поэкспериментируйте!

Âå÷åðíåå îñâåùåíèå Создание красивого вечернего освещения — задача значительно более сложная, нежели создание дневного освещения. Вечернее освещение складывается из освещения фонарями и освещения, пусть и слабого, вечерним небом. Кроме этого, сам дом дает свет, исходящий от освещенных окон. Если с подсветкой вечерним небом все достаточно просто, т. к. мы подготовили два варианта такой карты — sunset.hdr и sunset-light.hdr, то с фонарями все несколько сложнее, слишком велик выбор. И выбор опять заключается в том, что использовать — стандартные источники света 3ds Max или mental ray или физически корректные (фотометрические)? Рассмотрим и тот, и другой вариант.  Вновь загрузите сцену с настройками для быстрого рендеринга (Project1-

mrLight-start.max).  Настройте вид в окне перспективы так, чтобы видеть один из фонарей,

расположенных возле беговой дорожки. Это самый сложный случай.  Настройте параметры гаммы так, как было рассказано ранее.  Создайте новый слой, назовите его, например, Night-Lights.

Âèçóàëèçàöèÿ

497

 Создайте источник света mr Area Omni (протяженный всенаправленный

источник света mental ray) и расположите его над фонарем (рис. 3.20, а). Главное меню  Create  Lights  Standard Light  mr Area Omni

 СОВЕТ При создании источника света удобно включить флажок AutoGrid. Это даст вам возможность разместить источник света непосредственно на поверхности объекта.

 Настраивая параметры источника света и проводя тестовые расчеты, до-

бейтесь хорошего света. Наши настройки показаны на рис. 3.20, б.  ПОЯСНЕНИЕ Кроме того, что тип источника света всенаправленный, все остальные параметры аналогичны параметрам для "солнца", рассмотренным ранее. Исключение составляют параметры, определяющие затухание света (обведено). По умолчанию стандартные источники света обладают свойством светить без ослабления света. Если бы это было бы так в реальной жизни, то было бы здорово! К сожалению, в реальной жизни все не так. Параметры в группах Decay (затухание) и Attenuation (ослабление) приводят свет в 3ds Max в соответствие с законами природы, но при этом немного по-разному. В выпадающем списке Decay предлагается на выбор три способа ослабления: None — ослабления нет, Inverse — ослабление по закону 1/R, Inverse Square — 2 1/R , где R — расстояние от точки до источника света. Наиболее корректным с точки зрения физики является последний алгоритм, именно им мы и предлагаем воспользоваться. Параметром Start можно задать расстояние от источника света (не забывайте, что они точечные), начиная с которого вступает в силу ослабление. Чтобы скомпенсировать это ослабление, увеличено значение множителя. Второй способ (параметры Attenuation) позволяет настраивать затухание "не честно". При использовании всех этих параметров свет будет вести себя так: до границы Near Attenuation Start свет вообще не светит (но тени от объектов, попавших в этот промежуток, будут строиться!). Затем интенсивность нарастает по линейному закону до значения Multiplier у границы Near End. До границы Far Start свет светит с постоянной интенсивностью, и ослабляется до нуля опять же по линейному закону, достигнув границы Far End. Можно, а в нашем случае нужно, использовать оба эти способа вместе. Если не ограничить свет, то mental ray при рендеринге будет пытаться построить тени от источника даже в самой дальней точке, где вклад этого источника настолько мал, что им можно пренебречь. Поэтому с этим расчетом и установлены значения для Far Attenuation. Использование Near Attenuation позволяет не освещать сам фонарь. А свечение самому фонарю будет придано при помощи материала.

Можно ли поместить источник света непосредственно в фонарь? Можно! При этом стоит исключить фонари из освещения, нажав кнопку Exclude и

498

Ãëàâà 3

выбрав и переместив нужные объекты из левой панели в правую при помощи кнопки с символом ">>" (рис. 3.20, в). Вариант с использованием фотометрического источника света показан на рис. 3.20, г.  ПОЯСНЕНИЕ Эти источники света применяются в основном для создания физически корректного освещения, но могут использоваться и в декоративных целях. Существуют три типа этих источников — точечные (Point), линейные (Linear) и протяженные (Area). К огромному сожалению, получить реалистичные мягкие тени при использовании mental ray можно только от двух последних. Но при этом при обычном распределении (Diffuse) нельзя иметь форму, отличную от линии или плоскости, и такие источники светят только в одной полуплоскости. А вот при другом распределении Web (сеть, это не Интернет!) эти источники светят во все стороны в соответствии с распределением, задаваемом в файлах специального формата. Для конкретного светильника вы можете использовать такой файл, взятый, например, с сайта производителя лампочек. Но можете и сделать его сами, например, в программе IES Generator, написанной Андреем Козловым (рис. 3.20, д), которую можно найти в Интернете. Она бесплатная. Мы сделали такой файл и получили имитацию теней от столба. Как видите, интенсивность этих источников света измеряется в люменах, канделах и люксах на единицу расстояния. Вы можете воспользоваться каталогом к вашим светильникам и настроить их точно. При этом нужно обязательно использовать управление экспозицией в том или ином виде. Но поскольку мы отказались от мысли настроить эти источники света физически корректно, то интенсивность можете изменять в любых пределах, важен только конечный результат.

а Рис. 3.20, а. Настройка источников света mr Area Omni (а)

Âèçóàëèçàöèÿ

499

б

в Рис. 3.20, б и в. Настройка источников света mr Area Omni (б, в)

500

Ãëàâà 3

г

д Рис. 3.20, г и д. Настройка фотометрических источников (г, д)

Âèçóàëèçàöèÿ

501

Ослабление света в зависимости от расстояния никак не управляется, и рассчитывается автоматически в зависимости от типа, формы источника света и т. д. Размеры источника света устанавливаются в свитке Area Light Parameters, а качество света и тени в свитке Area Light Sampling.

Какие источники света использовать — зависит от ваших предпочтений.  Создайте и настройте источники света для всех типов фонарей (их в сцене

четыре). Все они похожи, исключением являются прожекторы вокруг спортплощадки, для них лучше использовать mr Area Spot, как и для "солнца", но и с затуханием. Распределить их можно при помощи инструмента Clone And Align (копировать и выравнивать), при этом используя метод Instance и связывая (Link to Destination) источники света с фонарями (рис. 3.21, помечено стрелкой). Это даст вам возможность, перемещая фонари, перемещать и соответствующие

Рис. 3.21. Размещение источников света при помощи Clone And Align

502

Ãëàâà 3

им источники света. Не забудьте исправить список исключаемых объектов для других фонарей! Главное меню  Tools  Clone And Align

Все очень хорошо, но есть одно "но" — при попытке сделать тестовый рендеринг он проходит очень долго. Что можно предложить для того, чтобы ускорить процесс? Первое — отказаться от применения всенаправленных источников света с тенями типа Ray Traced в пользу прожекторов с тенями типа Shadow Map. Что под этим подразумевается, показано на рис. 3.22.  ПОЯСНЕНИЕ Как видите, источники света (рис. 3.22, а).

при

этом располагаются

над

фонарями

Источники света преобразованы к типу Spot (цифра 1 на рис. 3.22, б). Это можно сделать, т. к. мы отказываемся от использования Area Light — флажок On сброшен (цифра 2). Углы раскрытия подобраны так, чтобы получить мягкий свет (цифра 3). При этом можно отказаться от использования затухания и уменьшить интенсивность света (цифра 4), но лучше все же использовать обратно квадратичное затухание, с ним результат выглядит убедительнее.

а Рис. 3.22, а. Расположение (а) альтернативных источников света

Âèçóàëèçàöèÿ

503

б

в Рис. 3.22, б и в. Настройки (б) и результат рендеринга (в) альтернативных источников света

504

Ãëàâà 3 Чтобы эти источники не давали бликов, в свитке Advanced Effects (цифра 5) снят флажок Specular. Было бы странно увидеть, например, в воде какие-то странные блики над фонарями. В качестве теней выбраны тени mental ray Shadow Map (цифра 6), хотя можно использовать и стандартные тени Shadow Map. Они различаются настройками, и настройки теней mental ray более логичные. В свитке mental ray Shadow Map как раз и настраиваются эти тени (цифра 7). В поле Map Size задается размер карты теней в пикселах. Чем она больше, тем качественнее тени, тем больше памяти требуется. В нашем случае достаточно 256 пикселов. При других ракурсах, например с высоты птичьего полета, можно уменьшить этот параметр до 128. Параметр Samples Range задает область размытия в сотых долях размера карты (1 = 100%), а не в сантиметрах, как подписано, это ошибка 3ds Max. Таким образом, размытие теневой карты mental ray, в отличие от стандартной, не зависит от ее размера. Параметр Samples отвечает за качество размытия. Вновь призываем вас не увлекаться увеличением этого значения. Так как размытие производится во все стороны, чтобы его компенсировать и не получить тени на освещенной части объекта, используется флажок Use Bias (использовать сдвиг) и соответствующее поле, задающее значение параметра сдвига. Опять же, не увлекайтесь этим параметром — при больших значениях вы можете получить "левитацию" объектов. Тени mental ray Shadow Map позволяют получить полупрозрачные тени (Transparent Shadows) от полупрозрачных объектов. Жаль, что в нашем проекте их негде применить.

На рис. 3.22, в показан результат рендеринга. Мы добавили два кубика для демонстрации того, как выглядят тени.  ЗАМЕЧАНИЕ Можно ли использовать тени Shadow Map с всенаправленными источниками света? Можно, но не желательно, т. к. в этом случае строится не одна, а шесть карт. Это не рационально.

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

чтобы свет от них не попадал на стены (рис. 3.23, б). В параметрах установите углы раскрытия так, чтобы получить мягкий свет.

Âèçóàëèçàöèÿ

505

а

б Рис. 3.23. Настройки источника света для беседки (а) и расположение и параметры источников света для имитации света из окон (б)

506

Ãëàâà 3

 И, наконец, добавьте источник света Skylight с картой sunset-light.hdr и

окружение sunset.hdr. В первом приближении можно считать, что все настроено (рис. 3.24 и цветная вкладка ЦВ6). Без светящихся фонарей и окон трудно решить, насколько все правильно. Окончательного вида вы будете добиваться уже в самом конце, и, вполне возможно, что не в 3ds Max, а в Photoshop.

Рис. 3.24. Результат тестового расчета для вечернего освещения

Îñâåùåíèå ñ èñïîëüçîâàíèåì VRay Íàñòðîéêà VRay äëÿ áûñòðîãî ðåíäåðèíãà Для настройки внешнего рендерера VRay вы можете воспользоваться сценой Project1-mrLight-start.max. Сразу сохраните ее под именем Project1-VRayLightstart.max.

Âèçóàëèçàöèÿ

507

 Проверьте, что вы не используете управления экспозицией и коррекцию

гаммы. Главное меню  Rendering  Environment  свиток Exposure Control Отключите использование управления экспозицией Главное меню  Customize  Preferences  вкладка Gamma and LUT Отключите использование гаммы  Переключитесь на использование модуля VRay. Конечно, предварительно

он должен быть установлен. Для настроек вы можете использовать демоверсию VRay. Главное меню  Rendering  Render  вкладка Common  свиток Assign Render Щелкните по кнопке с символом "..." в строке Production и выберите VRay...

 ЗАМЕЧАНИЕ Еще раз напоминаем, что мы в этом разделе используем версию VRay 1.5 RC5. Мы не стали переписывать этот раздел под релизную версию, т. к. по ряду причин многие продолжают использовать RC5. В случае, если вы применяете финальную версию, настройки могут отличаться.

У VRay 1.5 RCx все настройки сосредоточены в одной вкладке — Renderer. В финальной версии они разделены по нескольким вкладкам. В скобках наклонным шрифтом мы будем давать название вкладки в релизной версии.  В свитке V-Ray:: Global switches (глобальные установки) (вкладка V-Ray) задайте материал. Это должен быть материал типа VrayMtl (стрелка 1 на рис. 3.25, а)  В свитке V-Ray:: Image sampler (Antialiasing) (вкладка V-Ray) выберите алгоритм Adaptive Subdivision (стрелка 2).  Для ускорения расчетов отключите использование фильтра (стрелка 3).  В настройках антиалиасинга (свиток VRay:: Adaptive Subdivision Image sampler) (вкладка V-Ray) уменьшите значение Max. rate (максимальный уровень) до 1 (стрелка 4).  Сразу включите расчет непрямого (глобального) освещения в свитке VRay:: Indirect illumination (GI) (вкладка Indirect Illumination) (стрелка 1 на рис. 3.25, б)  На первичный "отскок" (Primary bounces) назначьте Irradiance map (карта освещенности). На вторичные отскоки (Secondary bounces) — ничего (стрелка 2).  В параметрах настроек Irradiance map выберите предустановку Very low

(очень низкое качество) и отображение расчета (Show calc. phase) (стрелка 3). Больше ничего не меняйте!

508

Ãëàâà 3

а

б Рис. 3.25. Настройки VRay для быстрого расчета

Âèçóàëèçàöèÿ

509

 ЗАМЕЧАНИЕ Вы опять ничего не поняли? Всему свое время...

К сожалению, демо-версия VRay не дает возможности сохранить свои настройки, да и не демо-версия тоже не всегда это позволяет. Но попробуйте это сделать. Свиток VRay ::System вкладки Settings  кнопка Presets (рис. 3.26)

Рис. 3.26. Сохранение настроек

Äíåâíîå îñâåùåíèå ñ èñïîëüçîâàíèåì ôèçè÷åñêè êîððåêòíûõ èñòî÷íèêîâ ñâåòà è êàìåðû VRay Так как VRay наиболее активно используется для интерьерной и архитектурной визуализации, совершенно естественно, что и в его арсенале есть физически корректные солнце и небо. Именно при помощи этих инструментов вы и создадите дневное освещение. Первый шаг тот же самый, что и в аналогичном разделе по mental ray.  Создайте систему дневного освещения (Daylight System). На все коварные

вопросы при этом отвечайте отрицательно, т. к. вам не понадобится ничего из того, что предлагает 3ds Max! Главное меню  Create  Lights  Daylight System  Перейдите в панель Modify и в качестве источников света для солнца и

неба выберите VRaySun и соответственно (рис. 3.27, а).

510

Ãëàâà 3

а

б

в Рис. 3.27. Установка в качестве источников освещения VRaySun и VRaySky

Âèçóàëèçàöèÿ

511

При выборе VRaySun вам будет предложено установить карту VRaySky в окружение (рис. 3.27, б). Ответьте утвердительно на этот вопрос. Почему не был установлен источник света для неба? Дело в том, что, в отличие от mental ray, VRay при расчете глобального освещения использует в качестве неба цвет или карту, назначенные на окружение.  Убедитесь, что такая карта установлена (рис. 3.27, в). Если это не так, то установите ее вручную, щелкнув на кнопке Nonе и выбрав VraySky. Главное меню  Rendering  Environment

Пока мы не будем обсуждать настройки освещения, т. к. в этом нет смысла. Почему? Проведите тестовый расчет на виде перспективы. Мы не будем приводить иллюстрацию — вы получите белый квадрат. Если вы прочитали и выполнили все то, что было написано по поводу аналогичной схемы mental ray, это не должно стать для вас неожиданностью. Все дело в экспозиции. И тут VRay предлагает вам для управления экспозицией новый метод, постепенно завоевывающий признание. Это физически корректная камера, попросту говоря, фотоаппарат.  Создайте физически корректную камеру VRay в окне проекции вида перспективы (рис. 3.28, а). Панель управления  подпанель Create  подпанель Camera  выпадающий список, VRay  VRayPhysicalCam Задайте положение камеры и потяните ее цель (Target) в нужную сторону Поднимите камеру над поверхностью ландшафта

 ПОЯСНЕНИЕ Мы просто чувствуем, как радостно вздохнули фотографы и как побледнели все остальные! Еще одна куча настроек! Из всего этого разнообразия нас сейчас интересуют только позиции, относящиеся к экспозиции. Это чувствительность пленки — film speed (ISO) (стрелка 1 на рис. 3.28, б), выдержка — shutter speed (s∧-1) (стрелка 2) и диафрагма — f-number (стрелка 3). Установленные нами значения должны дать нормальную "фотографию" для ясного солнечного дня. Снимите флажок vignetting (виньетирование) (стрелка 4). Насладиться всем этим многообразием настроек мы предлагаем вам самостоятельно. Отметим лишь параметр vertical shift, позволяющий бороться с трехточечной перспективой. Правда, есть и более простой способ — держать камеру горизонтально.

Перейдите на вид из камеры (клавиша ) и проведите тестовый расчет (+ или кнопка Quick Render в главной панели). Да, похоже на правду (рис. 3.29).

512

Ãëàâà 3

а

б Рис. 3.28. Создание физически корректной камеры VRay (а) и ее настройки (б)

Âèçóàëèçàöèÿ

513

Рис. 3.29. Результат тестового расчета

 ЗАМЕЧАНИЕ При виде из камеры средняя клавиша мыши используется только для панорамирования. Поворот камеры и т. д. можно осуществлять из панели навигации.

Теперь можно вернуться к настройкам солнца. В отличие от mental ray, главным в этой связке является именно оно (рис. 3.30, а).  ЗАМЕЧАНИЕ Выбирать для настройки нужно объект Daylight01, т. к. солнце (VRaySun) является сейчас его частью.

Параметр turbidity (замутненность) (см. рис. 3.30, а) определяет чистоту атмосферы. От этого параметра зависит цвет неба, доля распределения между освещением солнцем и небом и размытость теней. Нормальные значения от 2 до 15. Параметр ozone (озон) определяет влияние озонового слоя и изменяет цвет света от солнца в пределах от 0 (желтый) до 1 (голубой). При некоторых усилиях вы можете получить освещение луной. Параметр intensity multiplier (множитель интенсивности) отвечает за яркость солнца и неба. Используя значения 0.01—0.02, вы можете получить нормальную картинку и без применения физически корректной камеры.

514

Ãëàâà 3

а

б Рис. 3.30. Параметры VRaySun (а) и VraySky (б)

Параметр shadow subdivs отвечает за качество размытой тени, size multiplier — за размер диска (если не установлен флажок invisible, невидимый) и размытие теней. Параметр shadow bias (сдвиг тени) позволяет побороть проблему появления теней в освещенной области, так же, как и в случае применения теней Shadow Map. Параметр photon emit radius (радиус эмиттера фотонов) определяет область, в которой испускаются фотоны для создания эффекта каустики. Как видите, все очень похоже на аналогичные объекты mental ray. Параметры карты VRaySky значительно проще, нежели у mrSky (рис. 3.30, б). Чтобы их увидеть, откройте редактор материалов и перенесите в любой слот карту VRaySky из окна настроек окружения. Главное меню Rendering  Environment

Как видите, все настройки недоступны, т. к. параметры автоматически завязаны на присутствующий в сцене объект VRaySun. Нужно ли еще что-то поправить на этом этапе, кроме, может быть, экспозиции в параметрах камеры? В принципе, не обязательно. В VRay 1.5 RC5 и выше связка "солнце-небо-камера" работают достаточно хорошо.

Âèçóàëèçàöèÿ

515

Рис. 3.31. Настройка гаммы

Но можно попробовать. Для начала установите параметры Gamma так же, как и для mental ray (рис. 3.31). Главное меню  Customize  Preferences  Gamma and LUT

При рендеринге у нас получились яркие пересвеченные области. Узнать значение цвета можно, щелкнув правой кнопкой мыши по картинке в экранном буфере (рис. 3.32). Для исправления ситуации можно изменить параметры камеры, например, уменьшить чувствительность пленки (ISO) в два раза. При этом неизбежно затемнение картинки и потеря контраста. Мы предлагаем воспользоваться механизмом Color Mapping. Он в VRay свой. Главное меню  Rendering  Render  вкладка Renderer  свиток Color Mapping

По умолчанию выбран метод Linear multiply (линейный) (рис. 3.33, а). При его применении изображение большого динамического диапазона, получаемого при рендеринге, конвертируется в обычный формат по линейному закону. Два параметра Bright multiplier и Dark multiplier позволяют бороться с пересветами и недосветами соответственно. Если они равны 1, то преобразование производится "один в один". При рендеринге в формат с большим динамическим диапазоном (например, OpenEXR) для последующей обработки крайне нежелательно менять эти параметры. Параметр Gamma позволяет корректировать гамму — пока не меняйте ее, вы это сделали глобально. При окончательных настройках мы более подробно коснемся этого момента, т. к. есть некоторые весьма важные нюансы.

516

Ãëàâà 3

Рис. 3.32. Определение значения цвета в экранном буфере

В нашем случае настраивать линейное преобразование не имеет смысла, эту задачу берет на себя экспозиция камеры. Второй часто используемый метод — Exponential (экспоненциальный) (рис. 3.33, б и цветная вкладка ЦВ7), аналогичен логарифмическому, встроенному в 3ds Max, и позволяет легко бороться с пересветами. Но при этом теряется контрастность и приглушаются цвета, как и в случае встроенного в 3ds Max. Наиболее предпочтительным является использование метода Reinhard, который представляет собой комбинацию линейного и экспоненциального метода

а Рис. 3.33, а. Настройки преобразования цветов (свиток V-Ray:: Color mapping)

Âèçóàëèçàöèÿ

517

б

в Рис. 3.33, б и в. Настройки преобразования цветов (свиток V-Ray:: Color mapping)

518

Ãëàâà 3

(рис. 3.33, в и см. ЦВ8) и по смыслу очень похож на шейдер mental ray mia_exposure_simple. При значении параметра Burn value равного 0 вы получаете "экспоненту", при 1 — "линейку". При промежуточных значениях удается сохранить контраст и цвета и побороть пересветы. У нас получилось неплохо при значении Burn value = 0.8. Остальные методы достаточно специфичны и почти не используются, тем более что не все они работают так, как заявлено. И остальные настройки в этом свитке. Флажок Sub-pixel mapping включает режим, при котором преобразование проводится не целиком для пиксела, а для каждого луча (Sample), используемого при рендеринге. Разработчики не рекомендуют его использование, ссылаясь на некорректный результат. Но практика показывает, что в некоторых случаях (например, для сглаживания ярких бликов) применение этого метода оправдано. Флажок Clamp output (отсечение на выходе) приводит к принудительному отсечению цветов, уровень которых превышает 1, причем происходит это до антиалиасинга. Опять же, это дает возможность сгладить яркие блики. Но обычно в нем нет необходимости, а при использовании карт в формате HDRI этот флажок просто вреден. Флажок Affect background распространяет преобразование цвета и на изображение или цвет, подложенные в качестве фона. Вы можете снять этот флажок, чтобы избежать искажения цвета фона, но имейте в виду, что в отражениях и преломлениях такой фон будет участвовать некорректно, с учетом преобразования. При включенном флажке Don't affect colors (не оказывать влияния на цвет) действительно не происходит влияния на цвет, результат при всех настройках аналогичен Linear 1/1. Но при этом преобразование учитывается на этапе антиалиасинга, что позволяет бороться с шумом. Это актуально при рендеринге в формат с большим динамическим диапазоном и последующей цветокоррекции. Итак, все настроено. Конечно, VRaySky — неплохое небо, но скучноватое, хотелось бы использовать свое. Но при этом неплохо бы оставить освещение, связанное с солнцем... Нет никаких препятствий для этого! VRay позволяет переназначить карты на освещение, отражение и преломления, сделав их независимыми от глобального окружения (рис. 3.34, а). Главное меню  Rendering  Render  вкладка Renderer  свиток VRay:: Environment На канал GI Environment (Skylight) override назначьте карту VRaySky и включите ее использование

Âèçóàëèçàöèÿ

519

а

б

в Рис. 3.34. Совместное использование карты VRaySky и HDRI

520

Ãëàâà 3

Теперь можно на глобальное окружение назначить карту day.hdr. Но при использовании VRay нужно накладывать ее с применением дополнительной карты, VRayHDRI. Главное меню  Rendering  Enviroment Щелкните по кнопке Environment Map и выберите VRayHDRI (рис. 3.34, б) Перенесите эту карту в редактор материалов, используя Instance Загрузите при помощи кнопки Browse файл day.hdr и настройте карту так, как показано на рис. 3.34, в

 ПОЯСНЕНИЕ

Выберите правильный тип карты (группа Map type, стрелка 1 на рис. 3.34, в). В отличие от средств 3ds Max, VRay позволяет использовать различные виды панорам. Так как в сцене используется VRay камера с установленной экспозицией, множитель самой карты должен быть таким, чтобы скомпенсировать ее (стрелка 2). В редакторе материалов карта неизбежно станет белой. Но на окончательном изображении все в порядке (стрелка 3).

Сохраните вашу сцену. Наш файл называется Project1-VRayLight-Physical.max.

Äíåâíîå îñâåùåíèå ñ èñïîëüçîâàíèåì ñòàíäàðòíûõ èñòî÷íèêîâ ñâåòà è ñðåäñòâ VRay Как и в случае с mental ray, эта схема — альтернативная предыдущей и в ней используются старые испытанные способы.  Загрузите файл с настройками VRay для быстрого рендеринга (Project1VRayLight-start.max).  В качестве солнца используйте направленный источник света. В отличие от mental ray, вы можете использовать источник света типа Directional (направленный), дающий параллельные лучи света (рис. 3.35, а). Главное меню  Create  Lights  Standard Light  Target Directional

 ПОЯСНЕНИЕ Так как настройки аналогичного источника света обсуждались выше, пояснения требуют только специфические настройки. Интенсивность установите равной 1, цвет — желтоватый (помечено цифрой 1 на рис. 3.35, а). Размеры пучка света настройте таким, чтобы в него попадала вся сцена (помечено цифрой 2). В качестве теней выберите тени VrayShadow, они позволяют получить мягкие тени (цифра 3). Настройки аналогичны источникам света mental ray, но, в отли-

Âèçóàëèçàöèÿ

521

чие от них, сам источник остается точечным, размеры касаются только размытия теней.

 Для освещения небом назначьте карту HDRI. Главное меню  Rendering  Render  вкладка Renderer  свиток VRay:: Environment На канал GI Environment (Skylight) override назначьте карту VRayHDRI Перенесите ее в Редактор материалов и настройте так, как показано на рис. 3.35, б

 ПОЯСНЕНИЕ Выберите файл day-light.hdr в папке Project1\sceneaasets\images. Измените тип на Spherical Environment (сферическое окружение) и немного увеличьте множитель (стрелка 1).

При желании назначьте карту day.hdr на глобальное окружение.  Настройте гамму. Вот так получилось, причем без Color Mapping, точнее, с настройками по умолчанию (рис. 3.35, в).  ЗАМЕЧАНИЕ Вы должны уже начать понимать, что красивое небо на заднем фоне совсем не нужно. Его прекрасно можно добавить в Adobe Photoshop.

а Рис. 3.35, а. Классическая схема освещения

522

Ãëàâà 3

б

в Рис. 3.35, б и в. Классическая схема освещения

Âèçóàëèçàöèÿ

523

Рис. 3.36. Параметры стандартной камеры

 Настройте ракурс в окне перспективы (Perspective) и зафиксируйте его,

создав стандартную камеру, нажав сочетание + (рис. 3.36).  ПОЯСНЕНИЕ Настройки стандартной камеры в 3ds Max очень просты. Здесь нет никаких настроек экспозиции и т. д. Самое главное — это фокусное расстояние, связанное с углом зрения (цифра 1 на рис. 3.36). Камера в 3ds Max соответствует 35-миллиметровой пленочной камере, поэтому если вы хотите настроить ее в соответствии со своим любимым цифровым фотоаппаратом, то должны использовать эквивалентные значения. Камера может иметь цель (Target Camera) или быть свободной (Free Camera цифра 2). В первом случае направление зрения достигается путем перемещения вспомогательного объекта-цели. При использовании свободной камеры можно вращать и перемещать ее как любой другой объект. Интересной возможностью камер является отсечение (Clipping Planes, цифра 3). Можно настроить их так, чтобы не было видно деревьев на переднем плане.

 СОВЕТЫ Удобно включить рамку безопасности (Safe Frame) (Контекстное меню окна проекции  Show Safe Frame), она дает возможность контролировать, что попадет в окончательное изображение.

524

Ãëàâà 3 Находясь в окне проекции вида камеры, вы можете устанавливать ее, перемещая стрелками и поворачивая, используя среднюю кнопку мыши, как в игре "от первого лица". Обязательно при этом переключитесь в режим использования специальных горячих клавиш, нажав кнопку Keyboard Shortcut Override Toggle. При этом вам становятся доступными сочетания для перемещения камеры по горизонтали (стрелки, или , , , ), вертикали (+ или и ), изменения шага (, , , ) и установки камеры горизонтально (+). Для того чтобы скомпенсировать трехточечную перспективу, возникающую при наклоне камеры, примените к камере модификатор Camera Correction и нажмите кнопку Guess (Главное меню  Modifiers  Cameras) (рис. 3.37). При смене ракурса обязательно скорректируйте эти изменения повторным нажатием на эту кнопку! И все же призываем вас не злоупотреблять этим модификатором, лучше просто держать камеру горизонтально. К тому же, при использовании VRay этот модификатор по ряду причин не рекомендуется вообще. А если вы используете камеру VRay, то эта возможность введена непосредственно в ее параметры.

Наш файл с настроенным этим методом дневным освещением называется Project1-VRayLight-DayClassics.max.

Рис. 3.37. Применение модификатора Camera Correction

Âèçóàëèçàöèÿ

525

Âå÷åðíåå îñâåùåíèå â VRay Настройка вечернего освещения для VRay аналогична тому, что вы выполнили для mental ray. Первый вариант мы предлагаем сделать "по честному", используя источники света VRay.  Загрузите сцену, подготовленную для быстрого расчета VRay, и сразу сохраните ее с именем, например, Project1-VRayLight-NightLight.max.  Настройте вид окна проекции перспективы так, чтобы видеть один из фонарей.  Создайте источник VRayLight, поместите внутрь фонаря и настройте так, чтобы получить свет, показанный на рис. 3.38. Командная панель  подпанель Creatе  подпанель Lights  выпадающий список типов источников света  VRay  VrayLight

Рис. 3.38. Настройки источника света VRayLight для имитации света от фонарей

526

Ãëàâà 3

 ПОЯСНЕНИЕ Прежде всего, исключите сам фонарь из освещения этим источником света. Для этого нажмите на кнопку Exclude, и в появившемся диалоговом окне перенесите фонарь из левой колонки в правую двойным щелчком левой кнопки мыши. Источники света VRayLight могут быть трех типов. Два из них — Plane (плоскостной) и Sphere (сферический) отличаются только формой. О типе Dome (купол) будет рассказано далее, его настройки отличаются существенно. Сразу исключите из освещения фонари (кнопка Exclude). В нашем случае подходит Sphere. Интенсивность света может измеряться в стандартных величинах (Default (image)) или фотометрических. Во втором случае крайне желательно, чтобы использовалась физическая камера, только тогда результат будет соответствовать реальности. В нашем случае речь о физической корректности не идет, поэтому установите интенсивность так, чтобы получить нормальный свет как на рисунке. Для сферических источников света задается радиус, для плоскости — полуширина и полувысота. Задайте такой радиус, чтобы источник света поместился внутрь фонаря. Даже если вы исключили объекты из освещения, те из них, которые попадают внутрь источника света, засвечиваются. Размер источника света, задаваемый этими параметрами, влияет на его интенсивность, помните об этом! Флажок Double-sided (двусторонний) позволяет плоскостным источникам света светить в обе стороны. Для сферических источников света эта опция не используется. Снимите флажок Invisible (невидимый). Сейчас это не важно, но вы воспользуетесь этой опцией при создании материала светильника. Сквозь матовое стекло будет видна яркая лампа. Флажок Ignore Lights normals (игнорировать направление нормалей источника света) для сферического источника света не играет роли. При снятии этого флажка для плоскостного источника учитывается направление нормали к поверхности источника света, т. е. источник превращается в подобие прожектора. К сожалению, никаких других настроек не предусмотрено. По умолчанию свет от источников света VRay ослабляется в зависимости от расстояния по обратно квадратичному закону. Для этого флажок No decay (без ослабления) в нашем случае должен быть снят. Установить его можно, например, при создании солнца. Флажок Skylight portal (Портал для неба) позволяет задавать цвет и интенсивность в зависимости от настроек окружения. Используется это в основном для создания дневного света в интерьерах. Флажок Store in irradiance map (записать в карту освещенности) добавляет свет от такого источника при расчете карты освещенности в саму карту. Это немного замедляет процесс расчета непрямого освещения, но при этом окончательный рендеринг происходит значительно быстрее, т. к., практически, источник света "отключается". Помните, что если этот флажок установлен, то вы должны включить расчет непрямого освещения, и только по методу Irradiance Map!

Âèçóàëèçàöèÿ

527

Флажки Affect diffuse, Affect specular и Affect reflections позволяют исключить источник света из влияния на рассеянную составляющую материала, блик и отражения соответственно. Параметры в группе Sampling отвечают за качество света и теней (Subdivs), сдвиг тени (Shadow bias) и отсечку света (Cutoff). Последний параметр позволяет оптимизировать свет, отсекая его в принудительном порядке, когда его вклад меньше порогового значения, что значительно ускоряет расчет при большом количестве источников света. И несколько слов о типе Dome (купол). Этот тип служит для создания освещения небом и похож по смыслу и по настройкам на стандартный SkyLight. Но в отличие от него, является прямым источником света, т. е. светит без использования непрямого освещения.

Рис. 3.39. Настройки фотометрического источника света

528

Ãëàâà 3

Неплохо, но как-то неубедительно выглядят столбы без теней. Можно попробовать поднять источники света над фонарями и исключить фонари в окне Exclude не полностью (Both), а только из освещения, оставив возможность получения теней. А можно использовать фотометрические источники 3ds Max, настроив их так, как показано на рис. 3.39, с использованием файла в формате IES. Главное меню  Create  Lights  Photometric Lights  Free Point

 ПОЯСНЕНИЕ С этими источниками света вы уже встречались. Разница только в том, что при применении VRay вы можете получить мягкие тени от любого источника, используя VRayShadows. Правда, никакого отношения к размеру и форме источника они иметь не будут, т. к. зависят только от своих настроек.

а Рис. 3.40, а. Источники света для прожекторов (а)

Âèçóàëèçàöèÿ

529

б

в Рис. 3.40, б и в. Источники для имитации света из окон (б), и результат рендеринга (в)

530

Ãëàâà 3

Создайте и распределите источники света для фонарей. Какие именно, решать вам. Для прожекторов для спортплощадки подойдут стандартные источники типа Spot (рис. 3.40, а) Для имитации света от окон дома подойдут источники света VRay с настройками, показанными на рис. 3.40, б. Введите карты для ночного освещения и окружения. Проведите рендеринг (рис. 3.40, в). Рендеринг занимает достаточно много времени. Сказывается большое количество протяженных источников света. При желании вы можете заменить многие источники на стандартные и использовать тени Shadow Map (не mental ray Shadow Map!). Но мы предлагаем вам пока этого не делать. Вполне возможно, что сцены с ночным освещением вам не пригодятся вообще. Вы сделаете ночь из дня либо в Adobe Photoshop, либо в пакете видеокомпозитинга, например, Combustion. Нечестно, зато быстро и красиво! Наш файл называется Project1-VRayLight-NightLight.max.

Ìàòåðèàëû è òåêñòóðû Вы приступаете к очень интересному и ответственному этапу работы — созданию и назначению материалов. После этого этапа ваша картинка преобразится и будет соответствовать тому, к чему вы стремитесь.

Îáùèå çàìå÷àíèÿ Прежде чем начать создавать материалы, мы хотели бы обратить ваше внимание на некоторые достаточно важные моменты и правила, соблюдение которых значительно уменьшит количество проблем на этом и последующих этапах работы над проектом. В нашем случае вы приступаете к созданию материалов уже тогда, когда сцена собрана. Можно ли создавать и назначать материалы в отдельных файлах с моделями, до постановки света? Конечно, можно, это удобно, но только в том случае, если вы достаточно хорошо ориентируетесь в этом процессе, и для настроек материала вам не нужны промежуточные расчеты. Так же это удобно при использовании ссылок на объекты или сцены (XRef). При сборке сцены вы всегда сможете переназначить (Override) один материал на все объекты так, как было описано ранее, и настроить свет. Но после этого, как правило, приходится корректировать параметры материалов. Как поступить — зависит от вас, как правило, в реальной работе приходится использовать оба подхода.

Âèçóàëèçàöèÿ

531

Позаботьтесь о том, чтобы материалы в сцене имели уникальные и понятные названия. Выбор названия материала может отражать либо свойство материала (например, Black Marble), либо объект, к которому он применен (например, House Roof). Как вам удобнее — так и поступайте, но ни в коем случае не оставляйте названия наподобие Default1222 и т. п. А вот именовать карты, пожалуй, в общем случае нет смысла. Для карт из растровых файлов достаточно информации об имени файла, а для процедурных карт — типа карты и имени материала. Материалы и карты условно можно разделить на два класса — базовые, т. е. те, которые несут полезную информацию (например, материалы Standard или карта Bitmap), и составные, применяемые для смешивания материалов или карт (например, Blend, Multi/Sub-Object и т. д.) или модификации (например, Output, RGB Tint и т. д.). Специфика каждого из рассматриваемых модулей рендеринга такова, что наиболее быстрого и качественного результата можно добиться при использовании базовых материалов, разработанных специально для этого модуля. В случае mental ray предпочтение стоит отдавать материалу Arch+Design, в случае VRay — VrayMtl. Это правило не распространяется (с некоторыми нюансами для VRay) на составные материалы и карты. Их вы можете использовать независимо от того, какой модуль рендеринга применяете. Можно ли использовать стандартные ("максовские", как их называют, т. е. те, которые были разработаны в расчете на стандартный (Default Scanline) модуль рендеринга) материалы 3ds Max при рендеринге с использованием mental ray или VRay? В общем, да. Для mental ray в принципе нет большой разницы, какие материалы использовать, т. к. все стандартные материалы переписаны в виде шейдеров, и, по сути, вы используете при рендеринге именно их. Например, в случае деревьев, которым уже присвоены материалы при экспорте из ONYX Tree, нет смысла менять тип материалов. С VRay все несколько сложнее, и больше ограничений. Например, нежелательно (даже не просто "нежелательно", а "нельзя!") использовать материал и карту типа Raytrace, также не поддерживается архитектурный (Architectural) материал. Ряд составных материалов, например Blend (смешивание), существуют в варианте VRay (аналог Blend — VRayBlendMtl), и при прочих равных условиях использовать лучше именно их, тем более что они обладают рядом дополнительных и весьма полезных свойств. VRay так же "не понимает" некоторые процедурные текстуры 3ds Max, например, Wood (дерево). При использовании дополнительных материалов и карт третьих производителей, например, SymbiontMAX, Elemental Maps или RPC, написанных для стандартного модуля рендеринга, следует учитывать, что mental ray с ними напрямую не работает. Для того чтобы их использовать, необходимо наличие

532

Ãëàâà 3

шейдеров в формате mental ray, которые должны быть предоставлены производителем. В случае использования VRay ситуация "пятьдесят на пятьдесят" — или будет работать, или нет. И, конечно, речи не идет об использовании с mental ray материалов и карт VRay, и наоборот. При использовании в качестве текстур изображений из растровых файлов следует руководствоваться принципом "необходимости и достаточности". Одинаково нежелательно использование слишком маленьких или слишком больших, с точки зрения линейных размеров, изображений относительно размера окончательного изображения. В первом случае 3ds Max вынужден растягивать их, что ведет к эффекту пикселизации, во втором — сжимать, что приводит к размытости. Например, в случае, если на окончательном изображении один тайл (tile — повторяющийся элемент) текстуры занимает площадь 100×100 пикселов, нет смысла использовать текстуру размером более 256×256. Если вы обладаете текстурой большего размера, то желательно уменьшить ее вручную в пакете растровой графики, и немного повысить четкость (например, инструментом Unsharp Mask в Adobe Photoshop), если при уменьшении она размылась. Следует также помнить, что чем больше размер изображения, тем больше требуется оперативной памяти. Старайтесь применять изображения с разумным соотношением сторон, т. е. 1:1, 2:1, 4:3 и т. д. Идеально использование квадратных текстур с использованием степеней двойки (256×256 пикселов, 512×512 и т. д.). Конечно, не всегда это возможно, но, по крайней мере, старайтесь избегать текстур с размерами наподобие 711×373 пикселов. Исключение составляют чертежи или надписи. 3ds Max поддерживает текстуры только в пространствах RGB, Grayscale и (ограниченно) индексированных цветах. Ни CMYK, ни тем более Lab или Duotone, не поддерживаются, поэтому предварительно преобразуйте такие файлы в RGB. Также не используются параметры dpi, ppi и т. д., значение имеют только размеры в пикселах. Есть и некоторые другие ограничения, например, не поддерживаются TIFF со слоями и компрессией ZIP и JPEG, формат файлов JPEG2000 и т. д. Не обходится и без казусов — т. к. 3ds Max определяет тип файла по его расширению, а не сигнатуре, то попытка загрузить, например, файлы с расширением "tiff" или "jpeg" будет приводить к ошибке. В этом случае сократите расширение до трех символов, "tif" и "jpg" соответственно. Подробнее об этом вы можете прочитать в руководстве пользователя 3ds Max. В любом случае, при проблемах, связанных с загрузкой текстур из внешнего файла, прежде всего вы должны обратить внимание на формат вашего файла и преобразовать его в формат, поддерживаемый 3ds Max.

Âèçóàëèçàöèÿ

533

Старайтесь не использовать файлы в формате JPG, если есть аналогичные в форматах без сжатия или со сжатием без потери качества (TIFF, PNG, TGA и т. д.). То, что физический размер файла (т. е. размер в байтах) в формате JPG меньше аналогичного TIFF, не должно вводить вас в заблуждение — никакого выигрыша вы не получите, т. к. при рендеринге все файлы переводятся во внутренний формат, и значение имеют только линейные размеры изображения и глубина цвета. А вот шум, присутствующий на изображениях в формате JPG, особенно проявляющийся при высоких значениях сжатия, может весьма ухудшить качество вашего изображения и даже замедлить процесс рендеринга.  ОЧЕНЬ

ВАЖНО!

Текстуры из внешних файлов не записываются в файл сцены, в сцене сохраняются только ссылки на них. Поэтому при переносе проекта с компьютера на компьютер вы должны перенести и все файлы текстур. Если ваш проект организован так, как вы сделали вначале, для вас это не составит труда — нужно просто скопировать папку проекта целиком.

Ðåäàêòîð ìàòåðèàëîâ Все манипуляции с материалами и картами происходят в редакторе материалов (Material Editor). Где бы вы не назначили какую-либо карту, редактировать ее вы можете только перенеся в окно предварительного просмотра редактора материалов, используя метод Instance (наследования). Редактор материалов принципиальных ревизий в интерфейсе не претерпел со времен первой версии, в отличие от других элементов 3ds Max, которые планомерно и последовательно становились удобнее от версии к версии. Структура редактора материалов такова, что в нем достаточно просто и удобно работать с простыми материалами, но при большой вложенности подматериалов и карт наступает момент, когда процесс начинает "выходить из-под контроля". Начиная с 3ds Max 6, разработчики обещают новую оболочку для редактора материалов, аналогичную другим пакетам, например Maya, а еще лучше, Softimage|XSI, но пока мы имеем то, что имеем. Интерфейс редактора материалов показан на рис. 3.41. До многих команд можно добраться через главное меню редактора материалов (помечено цифрой 1), но удобнее использовать кнопки редактора материалов. Материал или карта отображается в окне предварительного просмотра материала, или слоте (Material Slot) (цифра 2). Если слот помечен "уголками", это означает, что материал присвоен объекту в сцене. Если уголки при этом залиты белым цветом, это означает, что материал присвоен выделенному объекту. Таких слотов в редакторе материалов 24, отображаться они могут тремя

534

Ãëàâà 3

Рис. 3.41. Редактор материалов

способами, в виде матрицы 3×2, 5×3 или 6×4. Выбор отображения осуществляется, например, через контекстное меню редактора материалов (цифра 3). Как быть, если все "шарики" закончились? Один из способов заключается в нажатии кнопки Reset Map/Material... (цифра 4) в параметрах материала, присутствующего в сцене. На вопрос, что делать, ответьте "Действовать только на содержимое в редакторе материалов" (Affect only mtl/map in the editor slot). Материалы, присутствующие в сцене, никуда не денутся. Чтобы загрузить материал из сцены в редактор материалов, можно взять его пипеткой (Pick material from Object) с объекта (цифра 7). Нажатие на кнопку Get Material (получить материал) (цифра 6) и кнопку с типом материала или карты (цифра 9) вызывают диалоговое окно браузера материалов и карт (Materail/Map Browser) (рис. 3.42, а), но есть различие.

Âèçóàëèçàöèÿ

535

а

б Рис. 3.42. Браузер материалов и карт (а) и навигатор материалов и карт (б)

536

Ãëàâà 3

Если материал или карта в этом слоте присвоена объекту в сцене, то в первом случае не происходит изменений в этом материале, во втором случае происходит замена одного типа на другой и в редакторе материалов, и в сцене, как правило, с предупреждением. Назначается материал объекту при помощи кнопки Assign Material to Selection (назначить материал выбранному объекту) (цифра 5 на рис. 3.41) или методом drag-and-drop, просто перенося материал из редактора материалов на объект. Почти на каждый параметр материала можно назначить карту. Делается это нажатием на квадратную кнопку рядом с параметром. Это приводит к вызову браузера материалов и карт. Все карты дублируются в свитке Maps (Карты) (цифра 8), где кроме самой карты иногда имеется параметр Amount, определяющий степень влияния этой карты на данный параметр. После выбора карты вы сразу переходите на уровень работы с параметрами этой карты. Вернуться на более высокий уровень можно при помощи кнопки Go to Parent (идти к родителю), перемещаться по картам или подматериалам позволяет кнопка Go to Sibling (идти к родному брату) (цифра 10). При создании сложного материала достаточно трудно бывает понять, на каком уровне вы находитесь. Помочь может навигатор материалов и текстур (цифра 12 на рис. 3.41), в котором отображается структура выбранного материала (рис. 3.42, б). Тоже не идеальный инструмент, но все же это лучше, чем ничего. Кнопка с "пробиркой" (Show End Result, показывать окончательный результат) (цифра 11 на рис. 3.41) позволяет отображать либо весь материал целиком, либо до текущего уровня, это удобно при настройке конкретной карты. Кнопка Show Map in Viewport (показывать текстуру в окне проекции) (цифра 13) позволяет отображать в окне проекции либо текущую текстуру, либо материал целиком. Следует помнить, что процедурные текстуры, хотя и отображаются в окне проекции, зачастую выводятся некорректно, т. к. для вывода преобразуются в растровый файл и накладываются по координатам UVW. Кроме этого, вы можете воспользоваться некоторыми дополнительными функциями, щедрою рукой разработчиков раскиданных по всему редактору материалов.  ЗАМЕЧАНИЕ На момент написания книги стал доступен первый, действительно работающий и удобный редактор материалов, основанный на "нодовой", узловой (Node Based) структуре (рис. 3.43). Пока он находится в состоянии общественного бета-тестирования, вы можете скачать его по адресу http://www.nodejoe.com.

Âèçóàëèçàöèÿ

537

Рис. 3.43. Редактор материалов NodeJoe

Èñïîëüçîâàíèå òåêñòóð èç âíåøíèõ ðàñòðîâûõ ôàéëîâ Процесс назначения текстуры из внешнего файла на нужный канал материала прост. Мы продемонстрируем этот процесс на примере материала Arch+Design. Для любого другого базового материала процесс аналогичен.  В редакторе материалов щелкните по квадратной кнопке напротив нужного параметра, например Diffuse (рассеянный) (стрелка 1 на рис. 3.44, а). Как писалось ранее, вы попадаете в браузер материалов и карт.  Переключатели, отмеченные стрелками 2 и 3, установите в положения New (новый) и All (все) соответственно.  Выберите Bitmap (стрелка 4) и откройте двойным щелчком левой кнопки мыши диалоговое окно для выбора файла (рис. 3.44, б).  Выберите нужный файл. Обращаем ваше внимание на то, что 3ds Max запоминает тип файла (например, файл с расширением tif, tga и т. д.), загруженного ранее, поэтому иногда нужно выбрать тип файла в выпадающем списке, либо установить All Files (*.*) (все файлы) (стрелка 1 на рис. 3.44, б).

538

Ãëàâà 3

а

б Рис. 3.44, а и б. Назначение в качестве текстуры изображения из внешнего растрового файла

Âèçóàëèçàöèÿ

539

в Рис. 3.44, в. Назначение в качестве текстуры изображения из внешнего растрового файла

 При помощи переключателей в группе, помеченной цифрой 2, вы можете

изменить настройки гаммы. Если вы для подготовки текстур используете Adobe Photoshop, то по умолчанию вы работаете с цветовым профилем sRGB, и файлы сохраняются с гаммой 2.2. Так как в настройках 3ds Max вами уже установлены параметры для корректировки гаммы, то разницы между первым и вторым пунктами (Use image's own gamma/Use system default gamma — использовать гамму изображения или системную) нет. Но в случае использования файлов со значением гаммы, отличным от системной, эта возможность может пригодиться.

540

Ãëàâà 3

После выбора нужного файла и нажатия кнопки Open (открыть) вы возвращаетесь в редактор материалов, но уже на уровень настроек карты (рис. 3.44, в).  СОВЕТ Не пренебрегайте навигатором материалов и текстур (стрелка 1 на рис. 3.44, в), он очень ускоряет процесс перемещения по дереву материала.

В свитке Bitmap Parameters сосредоточены настройки текстуры. Остановимся только на наиболее важных. Главная настройка — имя файла и путь к нему (стрелка 2 на рис. 3.44, в). Вы можете заменить файл или изменить настройки, просто нажав на кнопку с именем файла. Как видите, путь задан в относительном виде \subpath\filename.ext. Это позволяет вам спокойно переносить проект из одной папки в другую, что нельзя сделать в том случае, если путь задан в абсолютной форме drive:\path\filename.ext. В том случае, если 3ds Max не может по какимлибо причинам найти нужный файл, а, как правило, это происходит как раз при использовании абсолютных путей (мы не рассматриваем ситуацию, когда файла просто нет на жестком диске или сервере), при загрузке проекта вы получаете предупреждение (рис. 3.45, а). Есть несколько решений для преодоления этой проблемы. Первый, не самый лучший — нажав кнопку Browse, добавить путь к этому файлу в список путей. Более прогрессивным способом является использование инструмента Asset Tracking (отслеживание ресурсов). На рис. 3.45, б показана ситуация, когда файл текстуры не найден. Решение этой проблемы — преобразование абсолютного пути в относительный при помощи команды из квадрупольного меню (рис. 3.45, в). Естественно, что файл должен находиться в соответствующей подпапке проекта. Главное меню  File  Asset Tracking... или контекстное меню файла

В группе Filtering (фильтрация) (стрелка 3 на рис. 3.44, в) вы можете выбрать тип фильтрации текстуры или отключить ее совсем. Тип Pyramidal (пирамидальный) является быстрым, но не очень качественным, тип Summed Area (суммирование по площади) позволяет получить более качественный результат. Но все это касается только стандартного модуля рендеринга. В случае mental ray второй тип фильтрации не поддерживается, т. к. mental ray использует свой механизм фильтрации, а в VRay разница практически незаметна. При использовании их гораздо более важным являются настройки глобального антиалиасинга.

Âèçóàëèçàöèÿ

541

а

б

в Рис. 3.45. Предупреждение о том, что не найден внешний файл (а), окно Asset Tracking (б) и квадрупольное меню Asset Tracking (в)

Остальные параметры и настройки в этом свитке будут рассмотрены по мере необходимости. Параметры в свитке Coordinates (текстурные координаты) (рис. 3.44, в) позволяют настроить наложение текстуры. Вы уже встречались с некоторыми из них, когда использовали карту HDRI в качестве окружения.

542

Ãëàâà 3

В случае использования внешнего файла в качестве карты в составе материала, переключатель Texture/Environ (текстура/окружение (enviroment), стрелка 4) устанавливается в положение Texture. В этом случае карта привязывается к объекту, и, как правило, это и нужно. Исключением являются каналы Environment (окружение) и некоторые другие (например, Reflection (отражение) в материале типа Standard). В данном случае используется тип наложения Environment, карта в этом случае "привязана к миру". В выпадающем списке Mapping (тип текстурирования) (стрелка 5 на рис. 3.44, в) вы можете выбрать различные типы наложения карты, но основным является тот, который установлен по умолчанию — Explicit Map Channel (точный канал карты). Такой метод наложения требует определения текстурных координат (UV Coordinates) на объекте. Этот процесс описан далее. В группе параметров, помеченной стрелкой 6, сосредоточены основные настройки. И здесь есть один принципиальный момент, который требует тщательного рассмотрения. В 3ds Max, начиная с версии 7.5, появилась достаточно интересная возможность, заключающаяся в том, что вы можете в параметрах текстуры установить размер карты в реальных единицах измерения (Real-World Map Size). Но реализована она несколько своеобразно и требует достаточно аккуратного обращения. На рис. 3.46 показаны варианты применения текстуры "классическим" способом (рис. 3.46, а) и с использованием реального размера (б). В первом случае флажок Use Real-World Scale в параметрах текстуры снят (стрелка 1 на рис. 3.46, а). В этом случае аналогичный флажок (помечен стрелкой 2) должен быть снят и в параметрах объекта или модификатора, только в этом случае вы получите осмысленный результат. Корректным он будет и в том случае, если это условие не выполнено, но управлять им достаточно сложно. При этом параметр Tiling (повторяемость, стрелка 3) определяет количество повторений карты в пределах одной единицы текстурных координат по каждой координате (U и V), а параметр Offset — сдвиг в этих пределах (от 0 до 1). Для объекта Box одна единица текстурных координат совпадает с размерами каждой стороны, что хорошо видно на рисунке. Для большинства примитивов и модификаторов (например, Lathe, Sweep и т. д.) текстурные координаты создаются по тому же принципу "1U/1V". Изменяя параметры Tiling, можно добиться нужного размера текстуры. Но при этом при изменении размеров объекта параметрическим способом или простым масштабированием вам придется корректировать эти значения снова, т. к. размеры текстуры на объекте изменятся.

Âèçóàëèçàöèÿ

543

а

б Рис. 3.46. Два способа использования текстуры

В случае использования реальных размеров необходимо, чтобы флажки, помеченные стрелками 1 и 2 на рис. 3.46, б, были установлены. В этом случае параметр Tiling заменяется на Size (размер) (стрелка 3 на рис. 3.46, б) и позволяет определять размеры текстуры, а в параметре Offset задавать сдвиг в текущих единицах измерения. При этом при изменении размеров параметрическим способом размер карты на объекте остается постоянным. На рис. 3.47 показаны примеры, когда использование этого метода не спасает от искажений, и, как следствие, редактирования текстурных координат (или на жаргоне — "перетекстурирования"). Как видите, текстура на объектах в дальнем ряду прекрасно выглядит (стрелка 1). Но уже на сфере видны искажения текстуры (стрелка 2).

544

Ãëàâà 3

Рис. 3.47. Примеры искажений текстуры

При масштабировании объекта инструментом Select and Scale так же, как и в случае со стандартным способом наложения, размер текстуры изменяется (стрелка 3). Происходит это потому, что размер текстуры задается относительно локальной системы координат объекта, а при масштабировании выполняется как раз масштабирование этой системы, и единицы измерения перестают совпадать с мировыми. Выходом является либо применение утилиты Reset XForm к масштабированному объекту, либо применение модификатора XForm и масштабирование его контейнера (Gizmo), что не приводит к изменению локальной системы координат. Подробно об этом было написано в главе 2, посвященной моделированию. Цифрами 4 и 5 показаны искажения на сплайне с установленным флажком Renderable (отображение при рендеринге) и на объекте типа Loft с примененными деформациями. Если такими искажениями нельзя пренебречь, то остается только одно — "перетекстурировать" заново. При дальнейшем моделировании на низком уровне также происходит искажение текстурных координат (стрелка 6). После моделирования такой объект также нужно перетекстурировать, вполне возможно, только частично.

Âèçóàëèçàöèÿ

545

Как видите, метод хорош, но не лишен недостатков и не является панацеей. Остальные параметры являются общими для обоих способов (см. рис. 3.46, а и б). Флажки Tile (буквально "мозаика", "черепица", в данном контексте "повторение" позволяют отключить повторяемость текстуры. Это дает возможность, например, нанести надпись или узор на конкретный участок модели. Флажки Mirror (отражение) позволяют быстро получить бесшовную текстуру, отражая текстуру по выбранной оси. Но очень часто это приводит к эффекту "калейдоскопа", поэтому пользоваться этой возможностью нужно крайне осторожно. Лучше подготовить бесшовную текстуру заранее. Как это сделать, рассказано в приложении 4. Переключатели UV/VW/WU позволяют менять плоскость наложения текстуры. На рис. 3.48 показано наиболее общеупотребительное расположение осей на плоском полигоне. Как правило, между осями угол равен 90°. При правильном определении текстурных координат не стоит использовать что-то, отличное от UV без особой необходимости.

Рис. 3.48. Обычное расположение осей UVW на полигоне

Параметры в полях Angle (угол) (см. рис. 3.46, а и б) задают угол поворота в градусах вокруг той или иной оси. Следуя из рис. 3.48, смысл имеет поворот вокруг оси W, как правило, на 90° или 180°. Параметры Blur (размытие) и Blur offset (смещение размытия) служат, как нетрудно догадаться, для размытия текстуры, но по-разному. Значение параметра Blur определяет размытие текстуры в плоскости экрана. Таким образом, часть текстуры, расположенная ближе к камере, визуально размывается меньше, а дальняя — больше (рис. 3.49, а). Это позволяет бороться с эффектом муара. Как правило, этот параметр оставляют равным 1 или устанавливают немного меньше, если, конечно, нет цели сильно размыть текстуру. Blur offset размывает текстуру подобно инструменту Gaussian Blur (размытие по Гауссу) в Adobe Photoshop (рис. 3.49, б), но определяет степень размытия не в пикселах, а в процентах от размера текстуры. Значения лежат в диапазоне от 0 (нет размытия) до 1 (100% размытие, практически, усреднение

546

Ãëàâà 3

цвета). Следует учитывать, что делается это не очень качественно, поэтому в случае необходимости такой текстуры лучше сделать размытие в Photoshop. И совсем плохо дело обстоит с размытием процедурных текстур, собственно, на рис. 3.49 и показана такая текстура, Tiles (плитки).

а

б Рис. 3.49. Иллюстрация различий размытия текстуры увеличением параметра Blur (а) и Blur offset (б)

Âèçóàëèçàöèÿ

547

Рис. 3.50. Свиток Output карты Bitmap

В свитке Output (выход, рис. 3.50) вы можете изменить цвет карты. Наибольший интерес представляет кривая Color Map (карта цвета) (стрелка 1 на рис. 3.50), во многом аналогичная инструменту Curves в Adobe Photoshop. Надо отметить, что пользоваться этим свитком не всегда удобно, и если вам приходится часто корректировать ваши текстуры, то для mental ray существует большое количество шейдеров, позволяющих это делать, например, набор шейдеров ctrlColors (рис. 3.51, а), написанный Франческа Луче (Francesca Luce). Вариант этих шейдеров для 3ds Max можно загрузить с сайта http://maxplugins.de/. При использовании VRay или другого модуля рендеринга для 3ds Max (Brazil r/s или FinalRender) хорошим выбором является плагин Color Correct, написанный Кунейтом Оздасом (Cuneyt Ozdas, http://www.cuneytozdas.com) (рис. 3.51, б). Все эти дополнения бесплатны для любого вида использования.

548

Ãëàâà 3

а

б

Рис. 3.51. Интерфейсы шейдера ctrl.Color_Correct из набора ctrl.Colors (а) и карты Color Correct (б)

Âèçóàëèçàöèÿ

549

Íàçíà÷åíèå è ðåäàêòèðîâàíèå òåêñòóðíûõ êîîðäèíàò При использовании текстур из внешних файлов, а именно ими вы и будете в основном пользоваться, наиболее острой является задача редактирования текстурных координат (UV Coordinates) на объектах или текстурирование (UV Mapping), как коротко называют этот процесс. От того, насколько правильно и точно настроены текстурные координаты, зависит, насколько убедительно будут выглядеть материалы. Пора продолжить работу над проектом. В зависимости от того, какой модуль рендеринга вы будете использовать, отправными точками для вас должны стать либо ваш собственный проект, либо наши файлы Project1-mrLight-miasimple-exposure.max или Project1-VRayLight-Physical.max.

Èñïîëüçîâàíèå àâòîìàòè÷åñêîãî íàçíà÷åíèÿ òåêñòóðíûõ êîîðäèíàò Мы надеемся, что теперь вам понятно, почему в процессе моделирования мы обращали внимание на флажки Generate Mapping Coordinates (генерировать текстурные координаты), которые присутствуют в настройках всех геометрических примитивов и модификаторов и составных объектов, предназначенных для создания геометрии на основе сплайнов. Очень часто этой опции в сочетании с опцией использования Real-World Map Size (текстур реального масштаба) бывает достаточно для правильного наложения текстуры. Важно только, чтобы были соблюдены правила, приведенные ранее.

Òåêñòóðèðîâàíèå îáúåêòîâ ïðè ïîìîùè ìîäèôèêàòîðà UVW Map Разберем назначение текстурных координат на простые объекты при помощи модификатора UVW Map на примере подъездной дороги, эркера и крыши. В качестве примера использован стандартный материал с наложенной на канал Diffuse (цвет рассеяния) картой Checker (Шахматная доска). В зависимости от того, над каким вариантом проекта (с использованием mental ray или VRay) вы работаете, вы можете использовать материалы Arch+Design или VRayMtl — это не принципиально, т. к. в любом случае действия одинаковы. На рис. 3.52, а показан вариант текстурирования подъездной дороги и стоянки с применением текстур реального размера. Как уже упоминалось ранее, при таком использовании должен быть установлен флажок Use Real-World Scale в параметрах карты (стрелка 1).  Установите размеры текстуры, например 50×50 см (стрелка 2), и назначьте

материал объекту методом drag-and-drop.

550

Ãëàâà 3

 Включите отображение текстуры в окне проекции (стрелка 3).  Примените к объекту модификатор UVW Map (текстурная карта) и на-

стройте его. Главное меню  Modifiers  UV Coordinates  UVW Map

 ПОЯСНЕНИЕ В стеке и в списке модификатор UVW Map называется UVW Mapping, в меню применяется сокращенное название. Это один и тот же модификатор. Как и многие другие модификаторы, модификатор UVW Map может быть применен как к объекту целиком, так и выбранным подобъектам. В нашем случае необходимо, чтобы модификатор был применен к объекту. Поэтому проверьте это, и при необходимости выйдите из режима редактирования подобъектов (стрелка 4 на рис. 3.52, а). Проверьте, чтобы был установлен флажок Real-World Map Size (стрелка 5). При этом многие опции модификатора перестают быть доступными, в частности размеры контейнера (Gizmo) модификатора. Выберите нужный тип наложения (или "проецирования") текстуры (стрелка 6). В нашем случае подойдет как планарный (Planar) тип, т. к. боковые поверхности скрыты бордюром, так и кубический (Box). Как видите, в режиме использования текстур реального размера некоторые типы наложения недоступны. Положение текстуры на поверхности объекта определяется при помощи подобъекта модификатора — контейнера или "гизмо" (Gizmo). При использовании текстур реального размера он принимает размер системной единицы (в нашем случае 1 см), и пользоваться им неудобно. Поэтому применяйте манипуляторы, нажав на кнопку Manipulate (стрелки 7). Их можно перемещать и вращать. Старайтесь не масштабировать их, этим вы внесете ненужную путаницу!

Несмотря на все преимущества, не всегда вариант с использованием реальных размеров удобен. При создании материала с большим количеством текстур, наложенных на разные каналы, вам придется в параметрах каждой из них указывать размеры. Вы можете так же столкнуться с моделями, на которые уже назначены текстурные координаты, но без применения реальных размеров. Поэтому мы предлагаем второй вариант, который можно считать "классическим". На рис. 3.52, б показаны настройки текстуры и модификатора UVW Map без использования режима применения текстур реального размера.  ПОЯСНЕНИЕ Флажки, отвечающие за этот режим, сняты и в параметрах карты, и в параметрах модификатора (стрелки 1 и 2 на рис. 3.52, б). Параметр Tiling (повторение) установлен равным 1 по обеим осям (стрелка 3), т. е. текстура повторяется один раз в пределах контейнера модификатора UV Map. Размер контейнера модификатора (стрелка 4) и, в конечном счете, текстуры устанавливается непосредственно в параметрах модификатора (стрелка 5).

Âèçóàëèçàöèÿ

551

а

б Рис. 3.52. Текстурирование простого объекта с применением модификатора UVW Map двумя способами

552

Ãëàâà 3

Такой способ позволяет вам накладывать текстуры на разные каналы материала и быть уверенными, что все они лягут одинаково. Эркер на первом этапе текстурируется точно так же (рис. 3.53, а).  ЗАМЕЧАНИЕ

Если объекты объединены в группу, откройте ее (Главное меню  Group  Open).

 СОВЕТЫ

Необходимости в таком большом стеке (рис. 3.53, а, стрелка 1), пожалуй, уже нет, поэтому перед применением модификатора сверните его (Контекстное меню стека  Collapse All). Вполне возможно, что в затененном режиме вы не сможете увидеть текстуру на некоторых гранях, т. к. свет падает на них по касательной. Поэтому используйте режим отображения Flat (плоский) (Контекстное меню окна проекции  Other  Flat).

а Рис. 3.53, а. Текстурирование эркера при помощи модификатора UVW Map

Âèçóàëèçàöèÿ

553

б

в Рис. 3.53, б и в. Текстурирование эркера при помощи модификатора UVW Map

554

Ãëàâà 3

Как видно на рисунке, на гранях, расположенных под углом 45° к стенам, заметны потеки текстуры (стрелка 2). В том случае, если этого никто не заметит (например, штукатурка), то можно оставить и так. Но лучше доработать, "перетекстурировать" нужные полигоны. Для этого нужно выделить их и применить модификатор UVW Map уже к ним. Здесь часто совершается большая ошибка! Начинающие пользователи 3ds Max опускаются вниз по стеку к модификатору Edit Poly, выделяют нужные полигоны и теряют все то, что было сделано до этого! В этом случае модификатор UVW Map перестает действовать на весь объект и начинает действовать на выделенные полигоны. Так поступать нельзя ни в коем случае!  Если вы не хотите сворачивать стек, то примените модификатор Poly

Select и выберите нужные полигоны (рис. 3.53, б). Главное меню  Modifiers  Selection  Poly Select  Примените модификатор UVW Map и настройте текстурные координаты

на выделенных полигонах (рис. 3.53, в).  ПОЯСНЕНИЕ В данном случае поможет использование команды Normal Align (выравнивание по нормалям). Нажмите кнопку, отмеченную стрелкой 1 на рис. 3.53, в, и щелкните по нужным полигонам (стрелка 2). Удерживая левую кнопку мыши, вы можете в этом режиме переместить текстуру в нужное положение.

 СОВЕТ При текстурировании таких объектов нет смысла выстраивать такой большой стек. Как правило, используется последовательность действий "выделить полигоны, оттекстурировать, свернуть стек", и так до тех пор, пока процесс не будет завершен. При сворачивании стека текстурные координаты записываются непосредственно в геометрию модели и никуда не пропадают. Чтобы этот процесс проходил быстрее, можно скопировать настроенный модификатор UVW Map в буфер и вставлять его по мере необходимости (Контекстное меню стека модификаторов  Copy, Paste).

Текстурные координаты на крыше дома и эркера настраиваются как раз по такому принципу. При этом удобно использовать выделение сопланарных полигонов с параметром By Angle (по углу...), установленным равным 5—15° (рис. 3.54, а, стрелка 1). Также упростит процесс выделение параллельных полигонов (рис. 3.54, а, стрелки 2). При применении модификатора UVW Map используйте команду Align by Normals (рис. 3.54, б, стрелка 1). Для ускорения процесса скопируйте настроенный модификатор UVW Map в буфер обмена и вставляйте его в стек. Контекстное меню стека модификаторов  Copy, Paste

В некоторых случаях подойдет кубическое (Box) наложение координат.

Âèçóàëèçàöèÿ

555

а

б Рис. 3.54. Текстурирование крыши

556

Ãëàâà 3

Òåêñòóðèðîâàíèå ñëîæíûõ îáúåêòîâ ñ èñïîëüçîâàíèåì ìîäèôèêàòîðà Unwrap UVW Настроив текстурные координаты крыши, не могли не почувствовать, что процесс достаточно утомителен. К тому же, на крыше предполагается использовать два разных материала (точнее, одного составного материала с двумя подматериалами) с двумя различными текстурами, и, возможно, разными настройками повторяемости. При моделировании мы разделили полигоны крыши по различным индексам материалов (Material ID), и, хотя составной материал будет сделан позже, при текстурировании этот факт очень вам поможет. Еще сложнее становится тогда, когда элементы текстуры не повторяются, как в случае с "фонтаном", который имитирует собой "водопад" и "горное озеро". В этом случае вам нужно сделать полную развертку, так, чтобы элементы текстуры не накладывались друг на друга. Поясним смысл того, что вы будете делать. Мы думаем, в детстве все клеили фигурки из бумаги, вырезая выкройки из журналов. То же самое, только наоборот, вы и будете делать сейчас — разворачивать на плоскость, но не саму модель, а ее текстурные координаты. Для этого используется модификатор Unwrap UVW. В нем много возможностей по эффективному созданию разверток моделей различной сложности, поэтому мы очень многое опустим и сконцентрируем ваше внимание только на инструментах, необходимых для решения двух конкретных задач — текстурирование крыши и "фонтана". При создании развертки можно пойти двумя путями — создание развертки текстурных координат по уже существующей текстуре либо без нее. Первого у нас нет, поэтому будем создавать развертку сразу. При этом вообще необязательно использование материала, т. к. карта для контроля текстурных координат (Checker) встроена в модификатор. Следует учитывать, что использование текстур реального масштаба при использовании развертки возможно, но не желательно, это не дает желаемого эффекта, подгонку размера карты лучше проводить при классических настройках карты.  Если объекты дома сгруппированы, то предварительно откройте группу и

выделите крышу. Главное меню  Group  Open  Примените к крыше модификатор Unwrap UVW. Применять модифика-

тор нужно к объекту целиком, т. е. вы не должны находиться на уровне подобъектов. Главное меню  Modifiers  UV Coordinates  Unwrap UVW

Âèçóàëèçàöèÿ

557

 СОВЕТ Чтобы работать только с выделенным объектом и при этом не скрывать все остальные в менеджере слоев, воспользуйтесь режимом Isolate Selection (Изолировать выбранный объект) (Квадрупольное меню  Isolate Selection).

 Сразу зайдите в редактор текстурных координат, т. к. в параметрах самого

модификатора в нашем случае делать нечего. Командная панель  свиток Parameters  Edit  Перейдите к редактированию подобъектов-граней (Faces) (клавиша )

(стрелка 1 на рис. 3.55, а).  Выберите все грани (сочетание клавиш +).  Сделайте автоматическую развертку на плоскость с параметрами, пока-

занными на рис. 3.55, а, стрелка 2. Меню редактора текстурных координат  Mapping  Flatten Mapping

 ПОЯСНЕНИЕ Параметр Face Angle Threshold (предел угла между полигонами) задает предел, меньше которого полигоны будут считаться плоскими. В случае крыши это значение нужно установить небольшим. Флажок Normalize Clusters (Нормализовать кластеры) располагает элементы, полученные в результате развертки, в пределы синего квадрата и сохраняет соотношение сторон. Флажки Rotate Clusters (Вращать кластеры) и Fill Holes (заполнять свободное пространство) позволяют оптимизировать пространство, которое займут кластеры. Первый флажок стоит снять, тогда вам не придется поворачивать кластеры, чтобы выправить их ориентацию по текстуре. Установка флажка By Material IDs (по индексам материалов) приведет к тому, что кластеры будут разделены с учетом индексов материалов.

После проведения этой операции вы получите результат, подобный показанному на рис. 3.55, б. Как видите, все элементы крыши (они называются кластерами) развернуты на плоскость и собраны по Material ID (обведено). В том случае, если вы планируете для коньков и стыков использовать просто цвет, то можно считать, что все готово! Можно только по компактнее собрать развертку и выровнять, например, по нижнему краю. При этом наложения кластеров вполне допустимы. Дальнейшие настройки нужно проводить уже в параметрах карты. Если же планируется для коньков и стыков применение конкретной текстуры, то придется еще поработать. Нужно получить результат, при котором текстура на сторонах коньков и стыков точно совпадала, т. е. не было бы смещения.

558

Ãëàâà 3

а

б Рис. 3.55. Быстрое создание развертки крыши

Âèçóàëèçàöèÿ

559

Рис. 3.56. Использование быстрого кубического наложения

Если при этом можно поступиться абсолютной точностью наложения текстуры, то можно поступить следующим образом.  В параметрах модификатора Unwrap UVW выберите нужные полигоны, установив значение индекса материала равным 2 и нажав на кнопку Select MAtID (стрелка 1 на рис. 3.56).  Выберите тип быстрого наложения Box (кубический) (стрелка 2).  В том случае, если контейнер расположен не ровно, то выровняйте его по оси Z (стрелка 3).  Чтобы зафиксировать результат, просто выйдите из этого режима, отжав кнопку Box.  В дальнейшем, когда материал с текстурой будет применен, останется только добиться нужного результата, масштабируя контейнер модификатора. Как видите, применение модификатора Unwrap UVW позволяет избежать последовательного применения модификаторов UVW Map, как было описано при текстурировании эркера. К сожалению, при этом вы лишены возможности использовать текстуры в реальном масштабе. Но в случае, если и такой вариант не проходит, то придется редактировать развертку, разбивая кластеры, выравнивая и сшивая их заново. К счастью, для этого предусмотрена некоторая автоматизация.  Оставьте видимыми только кластеры, принадлежащие полигонам с Material ID равным 2 (стрелка 1 на рис. 3.57, а).

560

Ãëàâà 3

 Для элементов, отмеченных стрелкой 2, т. е элементов, содержащих внут-

ренние ребра, нужно, находясь в режиме работы с полигонами (стрелка 3), выделить полигоны и применить команду Detach Edge Verts (Отсоединить вершины пограничных ребер). Контекстное меню редактора текстурных координат  Detach Edge Verts  Для элементов, отмеченных стрелкой 4, можно, находясь в режиме работы

с вершинами, выделить все вершины и применить команду Break (разорвать). Контекстное меню редактора текстурных координат  Break

 СОВЕТ Можно делать это быстрее, выделяя полигоны разных кластеров сразу.

 После того как вы закончите это достаточно утомительное занятие, выде-

лите все кластеры с Material ID = 2 и примените команду Pack UVs (упаковка координат) с установками по умолчанию. Меню редактора текстурных координат  Tools  Pack UVs

Если вы получите что-то наподобие показанного на рис. 3.57, б, продолжите разделение кластеров (отмечено стрелками). После этого нужно сшить нужные кластеры между собой.  Перейдите в режим работы с ребрами (Edges) (стрелка 1 на рис. 3.57, в).  Выделяйте ребра кластера, к которым будет пришиваться соответствую-

щий ему кластер. Обратите внимание, что соответствующие ребра отмечаются синим цветом (стрелка 2).  При помощи команды Stitch Selected (сшить выделенные) сшейте ребра. Контекстное меню редактора текстурных координат  Stitch Selected

 ВАЖНО! Будьте внимательны! Очень легко сшить не те ребра, которые нужно! Можно или контролировать выделение (стрелка 3) или даже выделять ребра непосредственно на модели.

 СОВЕТЫ На практике же делается проще — выделяются ребра, делается попытка сшить. Если сшивается "не то" — просто отмените это действие и переходите к следующим ребрам. Чтобы понять, сколько и какие ребра сшивать, можно выделить нужные полигоны на модели, и перенести их в редакторе текстурных координат на пустое место.

Âèçóàëèçàöèÿ

561

 После того, как ребра будут сшиты, разместите кластеры примерно так,

как показано на рис. 3.57, г. Важно, чтобы кластеры располагались с учетом направления текстуры.  Аналогично разместите кластеры, соответствующие полигонам с Material

ID = 1 (рис. 3.57, д). Как видите, кластеры наложены друг на друга, в данном конкретном случае такое положение допустимо. Также допустимо расположение кластеров вне квадрата, обведенного синей жирной чертой.  СОВЕТЫ Вам придется переносить и поворачивать подобъекты и кластеры. Для манипуляций с подобъектами используется инструмент Free Form Mode (стрелка 1 на рис. 3.57, д). При этом вокруг выделенных подобъектов строится контейнер. Если взяться внутри контейнера, то вы перейдете в режим перемещения, причем если взяться за середину стороны — в режим вращения, за угол — в режим масштабирования. Последнее действие нужно делать сразу для всех кластеров, иначе вы получите в итоге участки с текстурами разного размера! Следующие сочетания клавиш совместно с левой кнопкой мыши позволят вам ускорить работу: •

Перемещение — нажатие и удержание клавиши перед началом перемещения приводит к перемещению только по одной оси.



Вращение — нажатие и удержание клавиши приводит к повороту с шагом 5°, а клавиши — 1°. Кроме того, работает привязка по углу (клавиша ) и есть кнопки для поворота на 90° по и против часовой стрелки.



Масштабирование — нажатие и удержание клавиши приводит к равномерному масштабированию по всем осям, — по одной оси. Небольшой крестик внутри контейнера (Pivot) определяет центр вращения и масштабирования. Если при масштабировании удерживать клавишу , то масштабирование будет произведено не относительно него, а относительно центра контейнера.

Кроме этого универсального инструмента, существуют и более привычные, иногда бывает проще использовать их (стрелка 2 на рис. 3.57, д). Иногда бывает удобно выделить весь кластер, для этого используйте флажок Select Element (стрелка 3 на рис. 3.57, д). При перемещении и расположении кластеров можно и нужно использовать привязки (стрелка 4 на рис. 3.57, д), для того, чтобы выровнять кластеры один относительно другого или относительно сетки. Для этого определите вершину, которая будет использована для привязки, обведя ее окном. При этом вершина помечается синим цветом. При необходимости сшивайте вершины при помощи команды Target Weld. Работает она аналогично такой же команде при редактировании полигонов.

562

Ãëàâà 3

а

б Рис. 3.57, а и б. Редактирование текстурных координат крыши

Âèçóàëèçàöèÿ

563

в

г Рис. 3.57, в и г. Редактирование текстурных координат крыши

564

Ãëàâà 3

д Рис. 3.57, д. Редактирование текстурных координат крыши

 ЗАМЕЧАНИЕ Наш вариант крыши грешит некоторыми неточностями. Прежде всего, Material ID = 2 явно мало. Да и размер стыков и коньков маловат. Признаемся, что для стыков и коньков мы не предполагали использование конкретной текстуры, что и будет отображено в дальнейшем при создании материала для крыши.

С фонтаном все немного сложнее, и проще одновременно. Сложнее — потому что модель действительно более сложная, но т. к. предполагается использование достаточно неконкретной текстуры, позволяющей пренебречь небольшими растяжениями, требования к развертке менее жесткие. Да и развернуть на плоскость без искажений подобный объект весьма проблематично, точнее, невозможно. Для развертки фонтана применим метод Pelt Mapping, буквально "растягивание кожи". Да простят нас защитники животных, это не мы придумали! Для начала попробуем решить проблему "в лоб" — просто попробовать развернуть модель целиком.

Âèçóàëèçàöèÿ

565

 Примените к фонтану модификатор Unwrap UVW, выделите все полиго-

ны и нажмите на кнопки Pelt и Edit Pelt Map (стрелки 1 и 2 на рис. 3.58, а). В открывшемся окне вы увидите фонтан, растянутый на "гвоздики" (Stretcher). После проведения нескольких операций растяжения (кнопка Simulate Pelt Pulling, помечено стрелкой 1 на рис. 3.58, б) вы получите некий результат, показанный на рис. 3.58, б. В некоторых книгах, описывающих этот метод (как правило, на примере развертки головы персонажа), вы найдете фразу "развертка готова!". Ничего подобного! Такая развертка никуда не годится. Почему? Прежде всего, имеется отверстие, которое при всем желании не может быть развернуто без наложений в принципе (помечено стрелкой 2 на рис. 3.58, б).

а Рис. 3.58, а. Неудачная попытка создания развертки

566

Ãëàâà 3

б Рис. 3.58, б. Неудачная попытка создания развертки

Как уже упоминалось ранее, в случае с фонтаном отсутствие наложений является принципиальным моментом. Второй изъян — несоответствие размеров кластеров размерам полигонов модели и разный относительный масштаб (стрелка 3). Если вы используете для создания текстуры редактор растровой графики, то вам придется учитывать этот факт. Например, чтобы получить равномерную каменную крошку, вам придется по краям рисовать элементы большего размера, чем в середине. Если вы используете для создания текстуры пакеты для рисования по моделям, например, Deep Paint 3D или BodyPaint3D, позволяющие использовать режим рисования в проекции экрана (projection mode), то этот изъян несколько теряет свою важность. Но даже и в этом случае так поступать не надо, т. к. неравномерность текстуры может сыграть злую шутку, приведя к размытости отдельных участков на модели. Поэтому, прежде чем применять этот замечательный метод, нужно упростить задачу.

Âèçóàëèçàöèÿ

567

Сначала обработайте наиболее простые участки.  Выделите полигоны дна бассейна (стрелка 1 на рис. 3.59, а) и примените к

ним "планарный мепинг" (стрелка 2). Для выбора сразу нескольких полигонов удобно установить флажок Planar Angle (стрелка 3).  В окне редактора перенесите выделенные кластеры в сторону так, чтобы

они не мешались.  Такую же операцию проведите с задней стенкой (рис. 3.59, б).  Аккуратно выделите полигоны внутри отверстия. При выборе вам помо-

жет флажок Ignore Backfacing (см. рис. 3.59, а).

а Рис. 3.59, а. Создание развертки текстурных координат фонтана. Этап 1

568

Ãëàâà 3

б

в Рис. 3.59, б и в. Создание развертки текстурных координат фонтана. Этап 1

Âèçóàëèçàöèÿ

569

г

д Рис. 3.59, г и д. Создание развертки текстурных координат фонтана. Этап 1

570

Ãëàâà 3

е

ж Рис. 3.59, е и ж. Создание развертки текстурных координат фонтана. Этап 1

Âèçóàëèçàöèÿ

571

з Рис. 3.59, з. Создание развертки текстурных координат фонтана. Этап 1

 Такие полигоны удобно текстурировать с применением операции Unfold

Mapping (развертка) (рис. 3.59, в — на рисунке она уже проведена). Главное меню редактора текстурных координат  Mapping  Unfold Mapping

Также имеет смысл "оттекстурить" отдельно скамьи (показаны стрелками 1 на рис. 3.59, г) и клумбу (стрелка 2).  Для скамей подойдет планарный метод наложения по усредненным нормалям с последующим применением процедуры Relax (расслабление) (рис. 3.59, д — операция проведена). Главное меню редактора текстурных координат  Tools  Relax Выберите режим Relax By Face Angle (расслабление на основе угла между гранями) и несколько раз нажмите кнопку Aplly (применить)

572

Ãëàâà 3

Обратите внимание, что не все получилось так гладко, как хотелось бы — есть наложение полигонов, с которыми Relax не может справиться (стрелка 1 на рис. 3.59, д). Перейдите к редактированию на уровне вершин и аккуратно переместите вершины на развертке, чтобы исправить ситуацию (рис. 3.59, е). Для клумбы этот метод так же подойдет, но и здесь вам придется поработать вручную, т. к. она имеет углубление и процедура Relax не решит все проблемы (рис. 3.59, ж). Ну, а то, что осталось, теперь можно смело разворачивать при помощи метода Pelt Mapping.  Выберите все оставшиеся грани. Удобно это сделать в окне редактора тек-

стурных координат.  Перейдите в режим работы с Pelt, нажав на соответствующую кнопку (стрелка 1 на рис. 3.59, з).  Для того чтобы режим Pelt работал наиболее эффективно, определите по-

ложение Gizmo, с которого начнется растягивание. Как правило, во многих случаях лучшим решением является применение Best Align (стрелка 2).  Вы можете редактировать швы для Pelt Mapping, используя Edit Seams и

Point to Point Seams (стрелки 3), но в нашем случае в этом нет необходимости, т. к. все что нужно, уже отрезано.  Смело нажимайте на кнопку Edit Pelt Map (стрелка 4 на рис. 3.59, з). Вы попадаете в окно настроек процесса развертки. Мы предоставляем вам удовольствие разобраться со всеми этими параметрами самостоятельно. В нашем, как и в большинстве других, случае ничего менять не нужно. Сделайте только одно — поверните "гвоздики" так, как показано на рис. 3.60, а, схватившись за соответствующие элементы Free Form (отмечено стрелкой на рис. 3.60, а). При таком положении процесс растягивания развертки будет более активным.  Несколько раз нажав на кнопку Simulate Pelt Pulling, добейтесь результа-

та, показанного на рис. 3.60, б. Развертка получилась, но она не соответствует желаемой, слишком растянуты те или иные участки. Дальнейшее использование Pelt Mapping не даст вам сколь либо заметных улучшений, поэтому выйдите из этого режима, закрыв его настройки (интересно, почему нет кнопки OK или аналогичной?) и отжав кнопку Pelt.  Не снимая выделение с полигонов, примените инструмент Relax с параметрами, показанными на рис. 3.60, в (операция проведена). Главное меню редактора текстурных координат  Tools  Relax Нажмите кнопку Apply (применить) два-три раза

Âèçóàëèçàöèÿ

573

 Как и в случае скамеек и клумбы, придется немного поработать вручную

на уровне вершин (рис. 3.60, г, помечено стрелками).  После этого соберите все кластеры в синий квадрат. При этом избегайте

неравномерного масштабирования (рис. 3.60, д)! Обратите внимание, что менее значимые детали мы сделали меньшего размера.  Экспортируйте полученную развертку в растровый файл достаточно большого размера (рис. 3.61). Не забывайте, что текстура не повторяющаяся! Главное меню редактора текстурных координат  Tools  Render UVW Template Задайте размеры (стрелка 1 на рис. 3.61) После выполнения команды Render UV Template (стрелка 2) сохраните результат в растровый файл (стрелка 3), желательно TIF, TGA или PNG

Теперь вы можете создать текстуру в Adobe Photoshop, используя в качестве шаблона полученный файл. Мы же использовали файлы, созданные в Deep Paint 3D и Mudbox. Об этих пакетах вы можете узнать из приложения 6.

а Рис. 3.60, а. Создание развертки текстурных координат фонтана. Этап 2

574

Ãëàâà 3

б

в Рис. 3.60, б и в. Создание развертки текстурных координат фонтана. Этап 2

Âèçóàëèçàöèÿ

575

г

д Рис. 3.60, г и д. Создание развертки текстурных координат фонтана. Этап 2

576

Ãëàâà 3

Рис. 3.61. Экспорт развертки в растровый файл

 ЗАМЕЧАНИЕ В этом разделе мы рассмотрели только небольшую часть возможностей модификатора Unwrap UVW. Несмотря на то, что существуют более продвинутые редакторы текстурных координат, например Unfold3D или UV Layout, достоинством Unwrap UVW можно считать нетребовательность к геометрии — всегда можно подправить руками участки, на которых не работают автоматические алгоритмы.

Èñïîëüçîâàíèå ïðîöåäóðíûõ òðåõìåðíûõ êàðò В некоторых случаях можно использовать процедурные трехмерные карты. Преимущество их заключается в том, что при их применении, как правило, не нужно определять текстурные координаты. На рис. 3.62 показаны настройки карты Noisе (шум), наложенной в качестве карты шероховатости (bump) для имитации материала металлической ограды.

Âèçóàëèçàöèÿ

577

Рис. 3.62. Процедурная карта Noise

 ПОЯСНЕНИЕ Свиток Coorfinates (Координаты) является общим для всех процедурных карт. Процедурные карты, как правило, накладываются в пространстве координат объекта (Object XYZ) (стрелка 1 на рис. 3.62). В этом случае они "привязаны" к объекту. Имейте в виду, что при изменении размеров объекта при помощи масштабирования так же изменяется и размер карты, задаваемой параметром Size (стрелка 2). Возможно использование других пространств. Например, при использовании World XYZ размер карты не зависит от размеров объекта. Но при этом карта "привязана" к миру и при перемещении объекта остается на месте. Мы используем этот прием для создания случайного распределения цвета листьев кустов. Трехмерные карты можно накладывать и с использованием UV-координат. При этом параметр Size определяет размер карты в единицах, относительных к размеру UV. Параметры Offset, Tiling и Angle определяют смещение, повторяемость и угол поворота по каждой координате. Параметры Blur и Blur Offset несут тот же смысл, что и для растровых карт, но не всегда работают как надо, все зависит от реализации. Поскольку карта Noise наиболее часто используется, рассмотрим ее параметры (свиток Noise Parameters). Переключатель Noise Type позволяет выбрать разные алгоритмы шума.

578

Ãëàâà 3 Как указывалось ранее, параметр Size определяет размер текстуры. При разных способах наложения этот размер может быть различным при одном и том же значении. Параметры Noise Threshold в полях High и Low (отсечки верхнего и нижнего уровней) позволяют получить либо плавный переход между цветами (при значениях по умолчанию 1 и 0), либо более контрастный. Вместо цвета на каждый канал можно также назначить карту. Но не увлекайтесь этим процессом, т. к. каждый уровень вложенности замедляет окончательный рендеринг.

 СОВЕТ В том случае, если карта слишком маленькая, бывает трудно ее настроить. В этом случае измените размер образца в слоте материала (Контекстное меню слота материалов  Options  Render Sample Size).

Ìàòåðèàëû Так как настройки материалов mental ray Arch+Design и VRayMtl очень похожи, то процесс создания и настройки материалов мы будем рассматривать одновременно для mental ray и VRay, отмечая особенности каждого из них. В процессе будут рассмотрены только необходимые опции. Более полную информацию обо всех настройках вы можете получить в приложении 1.  СОВЕТ При назначении материалов на объекты, связанные отношением Instance, удобно, когда материал сразу назначается на все объекты. Для этого нужно установить флажок Propagate material to Instances (Главное меню редактора материалов  Options). И наоборот, если вам нужно назначить разные материалы на инстансированные объекты, этот флажок нужно снять.

 ВАЖНО! При создании материалов обязательно называйте их разумно! Хотя материалов в этой сцене значительно меньше, чем объектов, запутаться в них так же просто.

Îñíîâíûå ìàòåðèàëû Для создания материалов кирпичей, штукатурки, асфальта и т. д., т. е. не прозрачных матовых материалов, используется один и тот же принцип. На примере материала кирпичной стены рассмотрим основные составляющие такого материала. В самом простом виде настройки материалов mental ray Arch+Design и VRayMtl (далее для краткости mrAD и VRM) показаны на рис. 3.63, а и б

Âèçóàëèçàöèÿ

579

а

б Рис. 3.63, а и б. Базовые настройки материала стен для mrAD (а), VRM (б)

580

Ãëàâà 3

в

г Рис. 3.63, в и г. Базовые настройки материала стен для mrAD (а), VRM (б), настройки карты на канале Diffuse (в) и модификатора UVW Map на стенах (г)

соответственно. Карта Bitmap, настроенная так, как показано на рис. 3.63, в, накладывается на канал Diffuse (рассеянный) (стрелки 1 на рис. 3.63, а, б). Для подобных материалов характерно наличие микронеровностей, сымитировать которые можно увеличением значения параметра Roughness (шершавость) (отмечено стрелками 2 на рис. 3.63, а и б). Не забудьте при необходимости применять модификатор UVW Map. Для стен его настройки показаны на рис. 3.63, г.

Âèçóàëèçàöèÿ

581

Такие материалы обладают единственным положительным свойством — рендеринг с их применением проходит очень быстро. В таком виде их имеет смысл применять для объектов, находящихся на большом удалении от наблюдателя. В остальном выглядят они крайне неубедительно, поэтому необходимо усложнить структуру материала, учитывая те или иные свойства. Следующим шагом является добавление фактуры при помощи карты на канале Bump (шероховатость) (рис. 3.64). Там, где на этой карте светлые участки — там "выпуклость", где темные — там "впадина". Мы не зря взяли эти слова в кавычки, т. к. "бамп" не что иное, как имитация — никакого реального рельефа нет! Но зачастую этого достаточно, и выглядит вполне пристойно.

а

б Рис. 3.64. Применение карты на канал Bump для mrAD (а) и VRM (б)

582

Ãëàâà 3

 СОВЕТ Чтобы каждый раз не настраивать размеры карты заново, можно копировать ее со слота на слот либо методом drag-and-drop, либо copy/paste, используя правую кнопку мыши, и заменять имя файла.

Если вы хотите получить более качественный результат, то можете использовать не просто бамп, а бамп по нормалям (Normal Bump) (на рис. 3.65, а показан только вариант для mrAD). Многие пакеты — генераторы текстур предоставляют возможность по созданию таких карт (рис. 3.65, б), да и из обычной черно-белой карты сделать такую карту не представляется большого труда при помощи специальных программ или плагинов.  ЗАМЕЧАНИЕ Если вы используете карту из программы-генератора текстур, минуя Photoshop, то, вполне возможно, при загрузке вам будет необходимо установить значение Gamma = 1, т. к. не во всех генераторах текстур используется гамма-коррекция.

Большинство материалов в реальном мире обладают отражающей способностью, хоть и слабой, и отражения при этом крайне размытые. Чтобы ваш материал "заиграл" на свету, вы можете настроить эффект размытых отражений ("глосси") так, как показано на рис. 3.66 (стрелки 1). Но с этим эффектом рендеринг проходит значительно дольше, и если вам не нужны "честные" отражения, есть возможность сымитировать его, отключив трассировку отражений (стрелки 2). Фактически вы получаете обычный материал по алгоритму Oren-Nayar-Blinn, с размытым бликом вместо реальных отражений. Конечно, выглядит он менее эффектно, так что выбор здесь исключительно за вами. Например, на кирпичной стене, пожалуй, смысла в отражениях нет, а вот на гладком асфальте или тротуарной плитке — почему бы и нет? Но и этого может оказаться недостаточным, т. к. при таком подходе и "выпуклости" и "впадины" бликуют одинаково, что не соответствует действительности — обычно впадины отражают менее интенсивно, например, из-за загрязнений. Поэтому вам придется добавить карту (обычно это та же самая карта, что и на канале Bump) на каналы, отвечающие за уровень отражения и размытия отражений (рис. 3.67). Эти карты требуют небольшой настройки, в основном по максимальному уровню. Если в VRayMtl предусмотрен параметр, позволяющий изменить уровень влияния карты на канал (рис. 3.67, б, показано стрелкой), то в материале Arch+Design для этого придется либо использовать свиток Output в настройках карты, либо "пропустить" Bitmap через карту Output (рис. 3.67, а). Второй способ предпочтительнее в том случае, если карты Bitmap связаны отношением наследования (Instance).

Âèçóàëèçàöèÿ

583

а

б Рис. 3.65. Применение карты Normal Bump на канал Bump для mrAD (а) и сама карта (б)

584

Ãëàâà 3

а

б Рис. 3.66. Настройка блика для mrAD (а) и VRM (б)

Âèçóàëèçàöèÿ

585

а

б Рис. 3.67. Модуляция картой параметров Reflection Color и Reflection Glossiness для mrAD (а) и VRM (б)

586

Ãëàâà 3

а

б Рис. 3.68. Настройка уровня отражения в зависимости от угла зрения для mrAD (а) и VRM (б)

Âèçóàëèçàöèÿ

587

Еще более интересного эффекта можно достичь, связав уровень отражений с углом зрения. Это актуально, например, для мягкой пластиковой кровли. Для материала Arch+Design такое свойство задается в специальном свитке (рис. 3.68, а). Для VRayMtl нужно использовать карту Falloff, настроенную так, как показано на рис. 3.68, б. Важным здесь является тип спада (стрелка 1 на рис. 3.68, б) и форма кривой (стрелка 2). При этом карты Bitmap помещаются в слоты карты Falloff с соответствующим влиянием (стрелка 3).  ЗАМЕЧАНИЕ Несмотря на то, что реальных отражений при таком подходе нет, зеркальная составляющая все равно будет давать так называемую "каустику глобального освещения" (FG Caustics для mental ray или GI Caustics для VRay). При рендеринге это замедляет расчет, и при недостаточном качестве настроек вы можете получить большие светлые пятна. Поэтому при настройке этих процессов отключите создание этого эффекта (рис. 3.69). Также при создании эффекта каустики, основанной на трассировке фотонов, в VRay отключите создание этого эффекта для всех объектов, кроме нужных (рис. 3.70, б). При использовании mental ray аналогичные параметры сняты по умолчанию (рис. 3.70, а).

а

б Рис. 3.69. Отключение эффекта рефлективной каустики глобального освещения для mental ray (а) и VRay (б)

588

Ãëàâà 3

а

б Рис. 3.70. Отключение эффекта рефлективной каустики, основанной на фотонах, для mental ray (а) и VRay (б)

В некоторых случаях, например, на крыше дома и беседки, на цокольном этаже, вам необходимо использовать два и более материала на одном объекте. Для того чтобы осуществить это, применяются различные составные материалы. Один из них, Multi/Sub-Object (многокомпонентный материал, основанный на подобъектах), позволяет привести в соответствие подматериалы и подобъекты (полигоны) по принципу равенства идентификационных номеров. На рис. 3.71 показан такой материал для крыши на основе mrAD. Для VRаy такой материал строится аналогично на основе VRM. При создании объектов на основе сплайнов есть возможность задать различные идентификационные номера участкам исходного сплайна. Так было сделано, например, для ступеней бассейна и фонарей. Если возникает необходимость что-то поправить, то тоже нет никаких проблем — при помощи модификаторов Edit Poly или Edit Mesh вы можете переназначить индексы, выделяя нужные полигоны (рис. 3.72).

Âèçóàëèçàöèÿ

589

Рис. 3.71. Составной материал Multi/Sub-Object для крыши для mrAD

Рис. 3.72. Назначение идентификационных номеров полигонов

590

Ãëàâà 3

Ìàòåðèàëû ñ èñïîëüçîâàíèåì ñìåùåíèÿ (displacement) Для имитации поверхности ограды террас, обрамления бассейна, беговой дорожки, фонтана и т. д. на близких планах, недостаточно применение бампа, необходим "настоящий" рельеф. Можно все это смоделировать, например, как в случае с валунами по берегам пруда. Но, как правило, это достигается применением смещения или выдавливания (displacement). И в mental ray, и в VRay реализованы алгоритмы смещения, не требующие разбиения геометрии в 3ds Max. Разбиение проводится на этапе рендеринга. Единственное пожелание — по возможности использование четырехугольных полигонов и отсутствие длинных узких треугольников, которые часто появляются при применении булевых операций. В простом случае, каковыми являются ограды террас и обрамление бассейна, подойдет применение черно-белой карты высот, наложенной на канал Dipslacement материалов (рис. 3.73). При таком использовании карт смещения по умолчанию и для mental ray, и для VRay используется принцип "там где черное — там нулевой уровень, там где белое — там выпуклость". Степень смещения регулируется значением Amount в материалах. Качество получаемой поверхности может регулироваться глобально. Настройки для mental ray находятся в свитке Shadows & Displacement вкладки Renderer, а для VRay — VRay:: Default displacement в свитке Settings (рис. 3.74).  ПОЯСНЕНИЯ Поясним настройки смещения на примере mental ray (рис. 3.74, а). Мы думаем, что вам не составит труда найти соответствие с настройками для VRay (рис. 3.74, б). Степень разбиения поверхности управляется параметром Edge Length (длина ребра), он может быть задан в абсолютных единицах. Но гораздо интереснее задавать его в пикселах при включенном флажке View (зависимый от вида). В этом случае разбиение объекта зависит от размера его на экране. 2—3 пиксела дадут вам хороший результат при оптимальном разбиении поверхности, 0.5—1 — идеальную поверхность, конечно, ценой времени и увеличением требуемого объема оперативной памяти. Значение Max. Displace устанавливает отсечку по высоте смещения, сделайте ее больше значения параметра Amount в строке Displacement материала. Значение Max. Subdiv задает максимальную степень разбиения объекта. Этот параметр в mental ray и VRay означает одно и то же, но задается по-разному — 16К в mental ray соответствует 128 в VRay. Для VRay (рис. 3.74, б) специфичным является параметр Relative to bbox (относительно габаритного контейнера объекта). В этом случае при изменении

Âèçóàëèçàöèÿ

591

а

б Рис. 3.73. Применение карты смещения в материале mrAD (а) и VRay (б)

592

Ãëàâà 3

а

б Рис. 3.74. Глобальные настройки смещения для mental ray (а) и VRay (б)

размера масштабированием изменяется и величина смещения. Параметр Amount в этом случае определяет глобальный множитель к аналогичному параметру в материале. Если флажок Relative to bbox снят, то параметр Amount задает глобальное значение для смещения, при этом значение смещения в материале игнорируется.

 ВАЖНО! При применении смещения иногда происходит разрыв геометрии. Чтобы этого избежать, необходимо, чтобы объект был сглаженным, т. е. все полигоны в объекте принадлежали одной группе сглаживания. Сделать это можно, например, назначением модификатора Smooth на объект с одной группой сглаживания (рис. 3.75).

Для фонтана такой способ не подходит ни в случае использования mental ray, ни VRay. Дело в том, что для этого объекта карта смещения была сделана в пакете Mudbox, и на ней присутствуют и выпуклости, и впадины, а нулевой уровень помечен серым цветом. В этом случае настройки в mental ray и VRay настолько различны, что требуют отдельного обсуждения. В случае mental ray карта смещения накладывается в материале, но не непосредственно в нем самом, а с использованием дополнительного шейдера в свитке mental ray Connection (стрелка 1 на рис. 3.76, а). Подходящим шейдером является Height Map Displacement (3dsmax) (смещение на основе карты высот). В нем имеется возможность задания нижнего и верхнего уровней (стрелка 3).

Âèçóàëèçàöèÿ

593

Рис. 3.75. Назначение полигонам объекта одной группы сглаживания

а Рис. 3.76, а. Использование шейдера Height Map Displacement для смещения по карте высот

594

Ãëàâà 3

б

в Рис. 3.76, б и в. Использование шейдера Height Map Displacement для смещения по карте высот

 ВАЖНО! Все растровые карты для объекта, текстурные координаты которого настроены при помощи модификатора Unwrap UVW, не должны использовать метод наложения в реальном масштабе (стрелка 2).

В настройках самого объекта есть возможность назначить параметры смещения независимо от глобальных (рис. 3.76, б). Квадрупольное меню  Object Properties  вкладка mental ray

Результат рендеринга показан на рис. 3.76, в.

Âèçóàëèçàöèÿ

595

Для VRay аналогичное действие делается при помощи использования специального модификатора VRayDisplacementMod. При этом карта смещения назначается в нем (рис. 3.77, а), хотя имеется возможность и использования карты в материале. Так же имеется возможность задания значения смещения, при этом задается общее значение (Amount) и смещение (Shift) (стрелка 2 на рис. 3.77, а). При использовании 3D mapping и Subdivision (показано стрелкой 1 на рис. 3.77, а) настройки качества смещения аналогичны глобальным. При использовании 2D mapping (показано стрелкой 1 на рис. 3.77, б) задается разрешение карты (Resolution) и максимально достижимое качество разбиения (Precision) в зависимости от кривизны поверхности. Для растровых изображений параметр Resolution имеет смысл уравнивать с размером карты.

а Рис. 3.77, а. Настройки модификатора VRay DisplaсementMod

596

Ãëàâà 3

б Рис. 3.77, б. Настройки модификатора VRay DisplaсementMod

Какой метод использовать при применении модификатора VRayDisplacementMod? В данном случае большой разницы нет. Как видно из рисунков, качество примерно одинаковое, время, затраченное на рендеринг, — тоже. Разница, и существенная, будет ощутима в дальнейшем, при создании газонной травы.

Ìàòåðèàëû ñ èñïîëüçîâàíèåì êàðòû ïðîçðà÷íîñòè В этом разделе мы рассмотрим, как упростить процесс рендеринга и количество потребляемой памяти путем имитации сложной геометрии картами прозрачности. В качестве примера мы покажем замену геометрии решеток на плоскости (объекты Plane) с текстурой.

Âèçóàëèçàöèÿ

597

Самое простое решение — назначить на каналы Cutout для mrAD и Opacity для VRM черно-белую карту (рис. 3.78). Там, где черное, будет прозрачно, где белое — непрозрачно.

а

б Рис. 3.78, а и б. Использование карты прозрачности (а) в mrAD (б)

598

Ãëàâà 3

в Рис. 3.78, в. Использование карты прозрачности в VRM (в)

Но результат не очень похож на оригинал, т. к. полученная "модель" получается плоской. Поэтому имеет смысл использовать карту нормалей для бампа по нормалям (Normal Bump) или карту высот для смещения (Displacement). Как сделать такие карты из геометрических объектов в 3ds Max, подробно рассказано в приложении 3. При этом при рендеринге этих текстур в формат, поддерживающий альфа-канал (TGA, TIF, PNG) вы получаете изображение, которое избавляет вас от необходимости использовать дополнительную карту для прозрачности. Использование его показано на рис. 3.79. На канал Bump текстура (карта Bitmap с файлом Fence.Normal.tif) в обоих случаях накладывается одинаково, с применением карты Normal Bump. На канал прозрачности эта текстура накладывается непосредственно, и здесь есть некоторые различия в настройках между mrAD и VRM. В mrAD канал Cutout является цветовым, т. е. используются все каналы RGB, что дает возможность без особых ухищрений создавать, например, витражи из цветного стекла и т. п. Поэтому, чтобы использовать альфа-канал для получения прозрачности, вы должны переключатель в группе RGB Channel Output (вывод канала RGB) установить в положение Alpha as Gray (Использовать альфа-канал как изображение в градациях серого) (рис. 3.79, а, б).

Âèçóàëèçàöèÿ

599

а

б Рис. 3.79, а и б. Использование текстуры с альфа-каналом в mrAD (а, б)

600

Ãëàâà 3

в

г Рис. 3.79, в и г. Использование текстуры с альфа-каналом в VRM (в, г)

Âèçóàëèçàöèÿ

601

Карта Bitmap с файлом Fence.Normal.tif должна быть независимой от аналогичной карты в составе карты Normal Bump, т. е. при переносе ее нужно копировать (Copy). В VRM, как и в стандартном материале, канал Opacity является уровневым, т. е. используется только яркость. Поэтому переключатель в группе Mono Channel Output (вывод монохромного канала) установить в положение Alpha (Использовать альфа-канал) (рис. 3.79, в, г). Здесь можно применять инстансирование (Instance), т. к. каналы (RGB и Mono) разделены. Таким образом весьма успешно можно заменить деревья на заднем плане на "плашки", с "натянутой" на них текстурой деревьев, оконные рамы и т. д. Но такой подход кроме положительного эффекта имеет и отрицательный — при большом количестве таких объектов (как правило, это листья деревьев, лепестки цветов и т. д.) рендеринг весьма замедляется, т. к. требуется достаточно много вычислительных ресурсов на построение теней от таких объектов и при расчете глобального освещения. Кроме этого, без применения специальных средств (например, шейдера mental ray Card opacity из библиотеки Production, входящей в поставку 3ds Max 2008) вы не получите дополнительные каналы, такие как Z-Depth, ObjectID и т. д., с необходимым представлением, т. к. при их создании прозрачность не учитывается. Если вы хотите, вы можете заменить решетки ограды, беседки на такие плоскости. Сделать быстро это можно, используя инструмент Clone and Align. Мы же оставим их в виде геометрии. А вот для сетчатого ограждения спортплощадки такой способ подходит очень хорошо.

Ìåòàëëû На примере двух объектов — каркаса пляжной мебели и ворот мы обсудим некоторые моменты по созданию металлов. В первом случае это металл, близкий к хромированному, т. е. блестящий и отражающий почти идеально, во втором — черный крашеный металл, более матовый и с размытыми отражениями. В этих материалах очень велика доля зеркальной составляющей, поэтому настраивать их нужно, используя окружение. Подойдет небо, как в варианте mental ray, так и VRay. Скройте все объекты в сцене, кроме комплекта пляжной мебели, и выберите подходящий ракурс (рис. 3.80).  СОВЕТ Отключите расчет глобального освещения для ускорения расчетов.

Для создания блестящего металла при использовании mrAD прекрасным началом можно считать выбор шаблона Chrome (рис. 3.81). Но мы его немного доработали (рис. 3.82, а).

602

Ãëàâà 3

Рис. 3.80. Сцена для настройки материалов пляжной мебели

Рис. 3.81. Выбор шаблона в материале mrAD

Âèçóàëèçàöèÿ

603

 ПОЯСНЕНИЕ

Мы немного уменьшили уровень отражения (стрелка 1 на рис. 3.82, а) и подкрасили их (стрелка 2) в бледно-голубой цвет. Зачем? Нам показалось, что так будет правильнее. Если вы считаете, что мы не правы, то сделайте так, как вам больше нравится. Вполне возможно, что вы захотите, чтобы каркас был выполнен из золота, почему бы и нет? Цвет рассеяния (Diffuse) мы установили черным, просто для того, чтобы он не мешал (стрелка 3). При уменьшении уровня отражений увеличивается доля рассеянной компоненты, и если она светлая, то металл превращается в пластик. Подробнее об этом написано в приложении 1. Так как мы принимаем, что отражения почти идеальные, а объекты не настолько важны в сцене и будут занимать не очень много пространства, то можно пренебречь размытием отражений (стрелка 4).

а Рис. 3.82, а. Настройки материала хрома для mrAD (а)

604

Ãëàâà 3

б Рис. 3.82, б. Результат рендеринга после настройки материала хрома (б)

Для создания эффекта металла мы использовали очень большое значение коэффициента преломления (IOR, Index of Refraction) и отражения по Френелю (Fresnel, стрелки 5). Имейте в виду, что такой "ход" справедлив только для полированных металлов. Нужно отметить наличие флажка Metal material (металлический материал) в mrAD. Если этот флажок установлен, то цвет отражений (Reflection Color) берется с цвета рассеяния (Diffuse), значение первого при этом определяет баланс между отражением и рассеянием.

Результат показан на рис. 3.82, б. Для VRM настройки очень похожи. Мы предлагаем вам на выбор два варианта настройки такого материала. Простейший вариант показан на рис. 3.83, а, он соответствует настройкам для mrAD.  ПОЯСНЕНИЕ При идеальных отражениях, т. е. при значении Glossiness = 1, VRM, в отличие от mrAD, не дает бликов от точечных источников света. В случае использования VRay Sun в качестве источника света это не важно, т. к. этот источник не точечный, и будет отражаться. Но такое отражение может быть не желательным, т. к. получается очень контрастным. Поэтому можно сделать VRay Sun невидимым, и использовать блики. Для этого отожмите кнопку, связывающую настройки размытия отражений и блика (Refl. glossiness и Hilight glossiness) (стрелка 1 на рис. 3.83, а) и уменьшите значение Hilight glossiness (стрелка 2).

Âèçóàëèçàöèÿ

605

а

б Рис. 3.83. Два варианта материала хрома для VRM

606

Ãëàâà 3 Для того чтобы использовать отражения по Френелю, нужно включить этот режим (стрелка 3). Значение коэффициента преломления (IOR) установите равным примерно 25—50 (стрелка 4).

Честно говоря, мы не уверены, что данный прием с большим коэффициентом преломления работает в VRM так же, как и в mrAD, никаких графиков не показывается. Поэтому мы предлагаем вам второй вариант, с использованием карты Falloff (рис. 3.83, б).  ПОЯСНЕНИЕ

На канал отражений наложена карта Falloff (стрелка 1 на рис. 3.83, б). Тип карты Falloff (Falloff Type) — Perpendicular/Parallel (перпендикулярный/параллельный) с направлением по оси зрения камеры (стрелка 2). Практически, такое использование этой карты позволяет создавать свою функцию Френеля. При помощи кривой (стрелка 3) повторите график, который вы уже видели в материале mrAD.

 ВАЖНО! Не используйте одновременно отражения по Френелю (флажок Fresnel reflections) и собственную функцию, построенную при помощи карты Falloff! Это вносит путаницу в настройки.

Для того чтобы получить размытые отражения, нужно уменьшить параметр Glossiness, одновременно уменьшая уровень отражений (рис. 3.84). За качество отражений отвечают параметры Glossy Samples (mrAD) или Subdvis (VRM). Чем эти значения больше, тем лучше качество, причем при уменьшении Glossiness для получения приемлемого качества нужно увеличивать количество разбиений. Для mrAD нормальные значения 8—16, для VRM — 8—24. Но это все очень зависит от сцены и настроек антиалиасинга. При таком действии начинает увеличиваться влияние рассеянной компоненты. Если в mrAD все просто, цвета отражения и рассеяния смешиваются, то в случае VRM вы можете получить на первый взгляд неожиданный эффект — при использовании цветных отражений и рассеяния материал начинает принимать совершенно непонятный оттенок. Дело в том, что в отличие от mrAD, закон сохранения световой энергии в VRay разделен по каналам RGB. Таким образом, при увеличении, например, красного в отражениях при белом цвете рассеяния, этот цвет вычитается из цвета рассеяния, и материал принимает циановый оттенок. Поэтому старайтесь не злоупотреблять бездумным применением ярких насыщенных цветов на разные каналы. Для цветного тусклого металла подойдет цветное отражение и темно-серый цвет (или даже черный) рассеяния. Для яркого отражающего материала нужно уравнять отражения и рассеяния как минимум по значению Hue (оттенка). Для цветного пластика, напротив, нужен цвет на рассеяние и нейтральный цвет отражения. Если все же не удается "победить" этот эффект, можно изменить закон сохранения световой энергии на монохромный (стрелка 1 на рис. 3.84, б).

Âèçóàëèçàöèÿ

607

а

б Рис. 3.84. Варианты матового металла для mrAD (а) и VRM (б)

608

Ãëàâà 3

Как правило, такие материалы обладают анизотропией, т. е. неравномерностью, отражений, что является следствием механической обработки, например, полировки. И для mrAD, и VRM возможно создание такого эффекта (рис. 3.85, а и б). Подробнее об этом написано в приложении 1. При использовании этого эффекта важна ориентация объекта, особенно для mrAD. Для того чтобы привести его в соответствие с мировыми координатами, используйте утилиту Reset XForm (рис. 3.85, в).

а

б Рис. 3.85, а и б. Настройки анизотропных отражений для mrAD (а) и VRM (б)

Âèçóàëèçàöèÿ

609

в Рис. 3.85, в. Применение утилиты Reset XForm (в)

И, наконец, материал темного крашенного шероховатого металла. Нет ничего проще. Отличие от предыдущих, кроме цветов и уровня отражений — использование мелкой процедурной текстуры на канале шероховатости (Bump) (рис. 3.86). В mrAD можно указать, что шероховатость имеет влияние только на зеркальную составляющую (стрелка 1 на рис. 3.86, а).

а Рис. 3.86, а. Вариант темного крашенного шероховатого металла для mrAD (а)

610

Ãëàâà 3

б Рис. 3.86, б. Вариант темного крашенного шероховатого металла для VRM (б)

Ìàòåðèàë îêîííûõ ñòåêîë Как ни странно, но такой простой материал, как оконное стекло, может быть реализован разными способами, от простейших до "настоящих". Самый проигрышный вариант — это непрозрачные зеркальные стекла. Они выглядят крайне неубедительно. За исключением случаев, когда такие окна нужны (например, для тонированных стекол небоскреба), не стоит использовать такие материалы. Настройки идеального стекла показаны на рис. 3.87. Отличие его от идеального зеркала в том, что прозрачность (Transparency или Refract) равна также 1. Такое стекло требует толщины, в противном случае результат будет плачевным. Именно поэтому мы применили при моделировании модификатор Shell к стеклам.  ВАЖНО! Обратите внимание, что в варианте VRM установлен флажок Affect shadows (действовать на тени) (рис. 3.87, б). Если этот флажок не установлен, тени не будут полупрозрачными.

Применение идеального стекла может быть неприемлемо, т. к. не обладает достаточным уровнем отражений при острых углах зрения. Чтобы усилить этот эффект, нужно в mrAD настроить кривую, отказавшись от применения

Âèçóàëèçàöèÿ

611

отражений по Френелю (рис. 3.88, а). Для VRM необходимо применить карту Falloff на отражения, также отказавшись от отражений по Френелю (рис. 3.88, б).

а

б

Рис. 3.87. Настройки идеального стекла для mrAD (a) и VRM (б)

Еще более интересного эффекта можно добиться, включив внутренние отражения, которые по умолчанию отключены и в mrAD, и VRM (рис. 3.89). Вы получите небольшое "рассыпание" отражений. Но, конечно, оценить это удастся только на близком расстоянии. Но и для упрощения есть возможности. Вы можете использовать одностороннюю поверхность, без толщины. В mrAD нужно просто выбрать соответствующий переключатель (рис. 3.90). Для VRM немного по-другому — оставив параметр Refraction черным, одну и ту же карту Falloff назначьте на отражения и непрозрачность (Opacity).

612

Ãëàâà 3

а

б Рис. 3.88. Настройки стекла с усиленными отражениями для mrAD (a) и VRM (б)

Âèçóàëèçàöèÿ

613

а

б

Рис. 3.89. Включение внутренних переотражений для mrAD (a) и VRM (б)

Рис. 3.90. Тонкое стекло для mrAD

Ìàòåðèàëû âîäû â áàññåéíå Настройки материалов воды бассейна показаны на рис. 3.91. Давайте разбираться. Прозрачная идеальная "вода" от идеального стекла отличается только коэффициентом преломления (IOR = 1.33, стрелки 1 на рис. 3.91) и голубоватым или зеленоватым оттенком на канале прозрачности. Кроме этого, нужно при-

614

Ãëàâà 3

дать рельеф, имитирующий рябь на поверхности воды. Для поверхности воды в бассейне подойдет процедурная карта Smoke (дым) на канал Bump (стрелки 2). Для mrAD для ускорения расчета при этом стоит установить флажок Do not apply bumps to the diffuse shading (не применять карту для рассеянной составляющей). Для него же интересным решением является и установка флажков Round Corners (скругление краев) и Blend with other materials (смешивание с другими материалами) (стрелка 3 на рис. 3.91, а). В этом случае в месте пересечения воды и стенок бассейна вы получите мениск, красиво бликующий на солнце. Для создания эффекта глубины можно использовать эффект абсорбции света, т. е. уменьшение прозрачности в зависимости от расстояния до поверхности объекта. В mrAD это решается простым заданием расстояния, на котором материал приобретет требуемый цвет (стрелка 4 на рис. 3.91, а), а в VRM используется параметр Fog color (цвет дымки) (стрелка 4 на рис. 3.91, б). Степень уменьшения прозрачности определяется параметром Fog Multipiler, который обратно пропорционален расстоянию, на котором будет достигнут цвет тумана (например, при значении 0.01 — это 100 см).  ЗАМЕЧАНИЕ При использовании этого и других волюметрических эффектов (а именно таковым он и является) для mental ray установите расчет сегментированных теней (Segment) (Главное меню  Rendering  Render  вкладка Renderer  свиток Shadows & Displacement).

а Рис. 3.91, а. Настройки материала воды в бассейне для mrAD (a)

Âèçóàëèçàöèÿ

615

б

в Рис. 3.91, б и в. Настройки материала воды в бассейне для VRM (б) и карты Smoke (в)

616

Ãëàâà 3

Для VRM также создайте блик (стрелка 5 на рис. 3.91, б) и обязательно установите флажок Affect shadows (стрелка 6), иначе тень от воды будет непрозрачной. Для воды характерно наличие ярких "солнечных зайчиков" на дне, так называемой "каустики". Ее можно посчитать честно, но мы предлагаем вам сделать имитацию. Для mrAD в свитке mental ray Connection снимите "замок" со слота Shadow и загрузите шейдер Shadow Transparency (base) (прозрачные тени из библиотеки base, рис. 3.92, а, стрелка 1). На каналы Color (цвет) и Transparency (прозрачность) назначьте карты Output. В слот Map (карта) второй карты назначьте карту Smoke, применяемую для канала Bump, используя инстансирование (Instance, стрелка 2). Это нужно и для того, чтобы в случае изменения размера волн менялись и тени, и для анимации — в этом случае анимировать вы будете только параметры одной карты. Настройте параметры карты Output так, чтобы осветлить результат, т. е. сделать тени более прозрачными (стрелка 3). В карте Output, назначенной на цвет, сделайте цвет тени ярким путем увеличения значения RGB Level (стрелка 4). Результат показан на рис. 3.92, в. Настройки для VRM выглядят так, как показано на рис. 3.92, б. Используется составной материал VRayOverrideMtl. В качестве базового материала назначен материал воды, а в качестве материала на тени (Shadow mtl.) — простой материал, в котором на канал Opacity (непрозрачность) назначена карта

а Рис. 3.92, а. Имитация каустики, вариант для mrAD (a)

Âèçóàëèçàöèÿ

617

б

в Рис. 3.92, б и в. Имитация каустики, варианты для VRM (б), результат (в)

618

Ãëàâà 3

Smoke. Для того чтобы сделать тени более прозрачными, можно пропустить эту карту через Output и сделать ее темнее. Обязательно установите флажок Affect shadows (см. рис. 3.91, б)!  ЗАМЕЧАНИЕ При таких "честных настройках" для воды вы получаете достаточно большое время рендеринга. Для ускорения процесса можно отказаться от прозрачности, например, в тех случаях, когда ракурс таков, что поверхность воды рассматривается "вскользь", и отражения почти полностью перекрывают прозрачность.

Ìàòåðèàëû âîäîïàäà При создании материала водопада для статического изображения можно воспользоваться обработанной фотографией (рис. 3.93, а). Но если постараться, подобное изображение можно и сгенерировать, например, в модуле Particles пакета Autodesk Combustion (рис. 3.93, б). Второе решение предпочтительнее, т. к. позволяет сделать анимированную текстуру без лишних хлопот, зациклив ее во времени так, как рассказано в приложении 3. Казалось бы, что нужно несколько совпадающих по времени последовательностей — для рассеянной (диффузной) компоненты, уровня отражений, прозрачности и т. д. В принципе это так, но можно обойтись и одной, что значительно экономит затраты оперативной памяти при рендеринге. Такая последовательность загружается так, как показано на рис. 3.94, а. При этом в свитке Time вы можете управлять параметрами времени (рис. 3.94, б), например, замедлить или ускорить воспроизведение. Мы сделали изображения со слишком большими черными полями. Чтобы от них избавиться, используйте возможность обрезки (рис. 3.94, в).  ЗАМЕЧАНИЕ При загрузке последовательности создается файл формата IFL. Это обычный текстовый файл, в котором указываются имена файлов, которые можно воспроизводить в любом порядке. Кроме этого, есть возможность изменить время на файл, записав значение задержки в кадрах.

На рис. 3.95 показаны настройки и результаты рендеринга для "бурлящего" водопада (рис. 3.95, а для mrAD и рис. 3.95, б — для VRM) и более спокойного (рис. 3.95, в и г соответственно).  ПОЯСНЕНИЯ Практически, все сводится к применению карты water-fall-bump+opacity.ifl на каналы Bump, Displace, Cutout (mrAD) или Opacity (VRM), Reflection Color (mrAD) или Reflection (VRM), Transparency Color (mrAD) или Refraction (VRM). Обратите внимание, что мы не использовали карты на Diffuse. Применяется просто цвет — белый в первом и почти черный во втором случае.

Âèçóàëèçàöèÿ

619

а

б Рис. 3.93. Фотография водопада (а) и синтезированное изображение (б)

620

Ãëàâà 3

а

б

в Рис. 3.94. Загрузка последовательности файлов в качестве анимированной текстуры (а), настройки проигрывания в 3ds Max (б) и обрезка изображения (в)

Âèçóàëèçàöèÿ

621

а Рис. 3.95, а. Материал "водопада" ("бурлящего"), вариант для mrAD (a)

622

Ãëàâà 3

б Рис. 3.95, б. Материал "водопада" ("бурлящего"), вариант для VRM (б)

Несмотря на то, что свиток Oputput присутствует в настройках карты Bitmap, мы все же рекомендуем "пропускать" ее через аналогичную карту, чтобы сохранить связи (Instance). Так удобнее редактировать, например, параметры анимации. В параметрах карты не используется режим Real-World Map Scale (реальный размер текстуры). В параметрах модификатора UVW Map аналогичный флажок должен быть снят.

Âèçóàëèçàöèÿ

623

в Рис. 3.95, в. Материал "водопада" (спокойного), вариант для mrAD (в)

В случае создания преломляющего спокойного "потока воды", обязательно нужна небольшая толщина, всего 2—3 мм. Сделать ее можно при помощи модификатора Shell. Обратите внимание на прием, отмеченный стрелками 1 на рис. 3.95, в. При таких настройках вы получаете большой анизотропный блик, при этом отражения остаются четкими и считаются быстро. Последний вариант, как видите, несколько сложнее предыдущих (рис. 3.95, г). Дело в том, что в VRM при одновременном использовании преломлении (Refraction) и карты на канале непрозрачности (Opacity) желаемый результат не достигается. Ничего не получается и при использовании материала VRayBlend, что, конечно, было неожиданностью. Поэтому мы использовали составной материал Blend, смешав через карту материалы, один из которых полностью прозрачен. Сделано это при помощи назначения карты VRayColor с установленным черным цветом на канал Opacity.

624

Ãëàâà 3

г Рис. 3.95, г. Материал "водопада" (спокойного), вариант для VRM (г)

Âèçóàëèçàöèÿ

625

а

б Рис. 3.96. Материал поверхности воды чаши фонтана для mrAD (а) и определение положения маски при помощи модификатора UVW Map (б)

626

Ãëàâà 3

Для поверхности воды в чаше фонтана и создания эффекта пены можно смешать материалы для поверхности воды бассейна и имитирующего "пену" через соответствующую последовательность опять же при помощи материала Blend (смешивание, рис. 3.96, а). Этот материал смешивает два подматериала по принципу "там, где черный цвет на маске — там первый подматериал, где белый — второй". Обратите внимание, что одна и та же карта используется и как маска, и как карта рельефа. В параметрах этой карты должны быть сняты флажки Tiling (повторяемость) и Real-World Map Scale (реальный размер текстуры).

Ìàòåðèàëû ðàñòåíèé è äåðåâüåâ Если растения являются центральными объектами вашей сцены, то, конечно, нужно текстурировать их со всей тщательностью, применяя текстуры из растровых файлов. Но если они просто заполняют пространство, и на окончательном изображении не занимают главенствующего положения, то можно немного слукавить. На примере ирисов мы покажем, как это сделать. Материал ириса показан на рис. 3.97, а. На канал Diffuse назначена странная карта Vertex Color (цвет вершин). Что это такое? Каждая вершина в 3ds Max имеет цвет, по умолчанию он черный. Можно назначить любой цвет любой вершине. Эта возможность, ранее очень широко применявшаяся в играх, сейчас утратила свою актуальность, но в нашем конкретном случае очень поможет. Для того чтобы иметь возможность получить эти цвета на объекте при рендеринге и используется карта Vertex Color. Назначать цвета удобнее всего при помощи модификатора Vertex Paint. По сути, это полноценный "рисовальщик", встроенный в 3ds Max. Жаль, что его функции ограничены только назначением цвета вершин.  Примените модификатор Vertex Paint к ирису (рис. 3.97, б). Главное меню  Modifiers  Mesh Editing  Vertex Paint  Для того чтобы было удобно рисовать, скройте все остальные объекты. Квадрупольное меню  Isolate Selection  Перейдите в режим Unshaded (незатененный), стрелка 1 на рис. 3.97, б.  Выберите темно-зеленый цвет (стрелка 2) и "залейте" им все вершины

(стрелка 3). А дальше попытайтесь раскрасить (стрелка 4) цветок так, чтобы получилось так, как в жизни. Мы оставляем удовольствие разобраться с этим инструментом вам самостоятельно, уверены, вам понравится. Укажем только, что для быстрого изменения размера кисти нужно использовать следующее сочетание клавиш: ++левая кнопка мыши.

Âèçóàëèçàöèÿ

627

а

б Рис. 3.97. Материал ирисов (а) и интерфейс модификатора Vertex Paint (б)

628

Ãëàâà 3

Можно немного усложнить материалы. Как правило, листья имеют разный цвет с разных сторон. Конечно, можно применить модификатор Shell и раскрасить их (листья) по-разному с двух сторон. А можно поступить по-другому. На рис. 3.98, а показаны настройки составного материала, Double Sided (двусторонний), который позволяет назначить один материал на лицевую сторону, и другой — на обратную. В примере используется одинаковые материалы, различающиеся только яркостью карты на канале Diffuse. Сделано это при помощи карты Output. Единственный параметр этого материала, Translucency (транлюсенция), позволяет управлять уровнем "просвечивания" одного материала через другой.

а

б Рис. 3.98. Применение материалов Double Sided (а) и VRay2Sided (б)

Âèçóàëèçàöèÿ

629

Если этот параметр равен 0, то материалы не оказывают действия друг на друга. При использовании VRay так же можно использовать этот материал, но лучше применить специальный материал VRay2Sided (рис. 3.98, б). При нулевом значении Translucency, т. е. черном цвете, вы получите тот же результат, что и при применении материала Double Sided. При изменении этого параметра поведение материала отличается и зависит от освещения, вы получаете упрощенный вариант "настоящей" транслюсенции. Обратите внимание на установленный флажок Force single-sided submaterials (принудительное использование односторонних материалов). Не снимайте его, это приведет к некорректному результату! С деревьями все проще. Как уже упоминалось в главе 2, деревья и кусты были созданы в пакете Onyx TREE и импортированы в 3ds Max с применением плагина OnyxTREE STORM. Им уже присвоены материалы. Вы можете загрузить их в редактор материалов "пипеткой". Как видите, это материалы типа Multi-Sub Object (рис. 3.99, а). В них присутствует большое количество не используемых подматериалов, они называются "non-existent". Хотя это не обязательно, но вы можете избавиться от лишних подматериалов, применив утилиту Clean MultiMaterial (рис. 3.99, б). В результате останутся только задействованные материалы (рис. 3.99, в). Главное меню редактора материалов  Utilities  Clean MultiMaterial

 ЗАМЕЧАНИЕ Обратите внимание, что после применения этой утилиты не изменяются индексы материалов. Для стандартного модуля рендеринга и VRay это не страшно, для mental ray обязательно переназначьте индексы подматериалов в объектах и материалах так, чтобы они шли по порядку (1, 2 и т. д.). В противном случае 3ds Max по окончании рендеринга закрывается с ошибкой. Это справедливо для 3ds Max 9, в 3ds Max 2008 все нормально.

Возможны два варианта, связанные с импортом. В первом случае в качестве текстуры на канал Diffuse назначена карта Vertex Color, а вершинам объектов назначены нужные цвета. Такой подход подходит для кустов и деревьев на заднем плане. Если карта не назначена, то предполагается, что вы будете использовать собственные текстуры. При этом назначены текстурные координаты на элементы деревьев (стволы, листья и т. д.). Имейте в виду, что при этом не используется режим реального масштаба (Real-World Map Scale). Подматериалы, используемые в материалах деревьев, являются материалами типа Standard (стандартные). Как мы уже упоминали ранее, использование материалов Standard нежелательно ни в случае использования mental ray, ни

630

Ãëàâà 3

а

б

в Рис. 3.99. Пример материала дерева (а) и оптимизация структуры материалов деревьев (б, в)

VRay. Несмотря на то, что вы получите нужный результат, время рендеринга будет неоптимально. Поэтому мы рекомендуем заменить подматериалы на mrAD и VRM соответственно. Чтобы это не делать вручную, вы можете использовать скрипт, написанный создателем материала mrAD, "мастером Запом" (MasterZap, настоящее имя Håkan Andersson). Скачать скрипт можно по адресу http://www.z4p.com/ad /Macro_mrArchMtlTools.mcr. Кстати, ресурс http://mentalraytips.blogspot.com/

Âèçóàëèçàöèÿ

631

весьма информативен, мы рекомендуем его всем, кому интересна информация о mental ray "из первых рук".  Скопируйте скрипт Macro_mrArchMtlTools.mcr в папку 3dsmax/scripts и запустите его. Главное меню  MAXScript  Run Script  Назначьте

этот скрипт на кнопку, например, в главной панели (рис. 3.100, а). Главное меню  Cuztomize  Customize User Interface  вкладка Toolbars  Group Main UI  Category mental ray

 Перенесите mr Arch and Design Tools в главную панель.  Запустите утилиту (рис. 3.100, б). Нас интересует только самая нижняя

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

а

б

Рис. 3.100. Установка скрипта mr Arch and Design Tools (а) и конвертирование (б) материалов в материал mrAD

Для VRay это также можно сделать автоматически при помощи встроенной утилиты. Квадрупольное меню  VRay scene converter

К сожалению, данная утилита преобразует материалы в сцене глобально, и не всегда корректно. Поэтому мы рекомендуем использовать скрипт Анатолия Белоусова, широко известного в узких кругах под псевдонимом 3DZver,

632

Ãëàâà 3

моделлера и визуализатора (http://www.3dzver.ru). Скрипт называется VRayMaterialConverter, скачать его можно, например, по адресу http:// www.scriptspot.com/3ds-max/vraymtlconverter. Этот скрипт имеет инсталлятор, все что вам требуется — просто указать путь в корневую папку 3ds Max.  После установки запустите скрипт так же, как и в предыдущем случае, и найдите его в меню Customize и перенесите в главную панель (рис. 3.101, а). Главное меню  Cuztomize  Customize User Interface  вкладка Toolbars  Group Main UI  3DZverTools

а Рис. 3.101. Установка скрипта VRayMaterialConverter (а) и конвертирование (б) материалов в материал VRM

б

Âèçóàëèçàöèÿ

633

Запустив его, вы можете не только конвертировать материалы, но и корректировать настройки предыдущих версий VRay (рис. 3.101, б). Для того чтобы настроить материалы самостоятельно, вам уже достаточно знаний. Используйте карты цвета и рельефа для стволов деревьев и прозрачности для листьев и хвои. Все необходимые карты вы можете найти в папке проекта.

Ìàòåðèàëû ñâåòÿùèõñÿ ôîíàðåé Мы надеемся, что нет необходимости рассказывать о том, как сделать материал выключенных фонарей. Это просто составной материал, состоящий из подматериалов арматуры (металла, дерева или пластика) и белого матового пластика для плафона. Если вы позаботились о назначении индексов материалов, то "раскидать подматериалы по айдишникам" не составит труда. Для светящихся фонарей материал металла, конечно, не изменяется. А вот пластик должен выглядеть светящимся. И, возможно, светить при использовании глобального освещения. В случаях mental ray и VRay это достигается немного разными способами, но принцип один и тот же — нужно назначить светящуюся текстуру или светящийся материал на нужный канал. Для того чтобы не получилось просто плоское свечение, можно использовать карту Falloff для модуляции яркости и/или цвета в зависимости от угла зрения. При использовании mrAD вы можете назначить на канал Additional Color/Self Illumination (самосвечение) непосредственно карту Falloff (стрелка 1 на рис. 3.102).  ПОЯСНЕНИЕ Сделайте цвет рассеяния черным или очень темным, чтобы он не подмешивался к самосвечению. C настройками карты Falloff, отмеченными стрелкой 2 на рис. 3.102, вы получите яркое пятно в центре с ослаблением к краям. Вполне возможно, что это не совсем то, что нужно. Некоторые фонари имеют обратную зависимость, но все в ваших руках — изменяйте кривую так, как вам нравится. При помощи параметров Output Amount (стрелка 3) вы можете усилить свечение. Но при этом материал станет белым, т. к. превысит 1. Если вы хотите усилить свечение, но при этом не делать материал ярче, используйте параметр FG/GI multiplier (множитель глобального освещения) в материале (стрелка 4). К сожалению, этот параметр ограничен значением 5. Этого достаточно только для того, чтобы осветить элементы самого фонаря. Но большего и не требуется, т. к. освещение сымитировано явным источником света. Для того, чтобы в дальнейшем было просто сделать эффект свечения (гало) вокруг фонарей, установите параметр MaterialID (другое название — EffectID), не равный нулю (стрелка 5). Этот индекс служит для создания маски по форме объекта, к которому применен материал, при рендеринге. Он не имеет никакого отношения к индексу в материале Multi/Sub-Object!

634

Ãëàâà 3

 ЗАМЕЧАНИЕ В 3ds Max 2008 в материале mrAD внесены изменения, позволяющие сделать самосветящийся материал и проще, и точнее одновременно. Подробнее вы можете прочитать об этом в приложении 7.

Рис. 3.102. Материал светящегося фонаря для mrAD

При использовании VRay вам нужно применить специальный материал — VRayLightMtl. Eго настройки, дающие аналогичный результат, показаны на рис. 3.103. Как видите, все очень похоже. Для увеличения светимости без изменения яркости самого материала использован другой материал, VRayWrapper, позволяющий изменять многие свойства материала без изме-

Âèçóàëèçàöèÿ

635

нения его внешнего вида, в том числе и уровень генерации глобального освещения (стрелка 1).

Рис. 3.103. Материал светящегося фонаря для VRay

 ЗАМЕЧАНИЕ Надеемся, что вы сделали эти материалы в сцене с настроенным вечерним, а не дневным освещением? Если да, то вы достойны похвалы, если нет — то не переделывайте, т. к. в дальнейшем мы покажем, как в одной сцене совместить настройки для дня и вечера, и при этом не запутаться.

Äåêîðàòèâíûå çëàêè В качестве декоративных злаков мы предлагаем вам использовать волосы, созданные при помощи модификатора Hair and Fur. Этот инструмент вошел в состав 3ds Max с версии 8 и основан на пакете Shave and a Haircut Джозефа Альтера (Joseph Alter, www.joealter.com), хорошо известном пользователям Maya и Softimage|XSI. Не все пока гладко, в частности, не радует динамика

636

Ãëàâà 3

волос, и ресурсов он требует весьма много, но, тем не менее, при помощи этого инструмента можно получить прекрасные результаты. Тем более что динамика нам особо не нужна, а ресурсы мы сэкономим. И сразу начнем именно с этого. В принципе, при помощи этого модификатора можно "засадить" нужную площадь, выбрав на ландшафте полигоны и вырастив волосы оттуда. Но мы поступим по-другому — сделаем один "куст" и рассадим его, используя инстансирование.  Создайте новый слой, назовите его осмысленно, например Herbs, сделайте его активным.  Сделайте плоскость размером примерно 1×1 м,

с разбиением 5×5, назовите ее, например, Herb. Разбиение нужно для того, чтобы иметь возможность более точно настраивать волосы, т. к. управляющие элементы волос расположены по вершинам объекта-эмиттера волос.  Примените к объекту Herb модификатор Hair and Fur. Вы получите плоскость, покрытую хаотично расположенными "сплайнами", которые показывают в упрощенном виде распределение волос (рис. 3.104, а). Главное меню  Modifiers  Hair and Fur  Hair and Fur (WSM)

Такое распределение нам не нужно, поэтому давайте придадим волосам, точнее, травинкам, форму. Сделать это можно двумя способами. Первый — использовать инструмент Style Hair. Если вы обладаете квалификацией парикмахера или садовника — то это ваш выбор! Второй способ заключается в создании опорных сплайнов по форме травинок. Вам придется использовать оба способа, но второй, на наш взгляд, более эффективный на первом этапе. Наш вариант таких сплайнов показан на рис. 3.104, б.  ПОЯСНЕНИЕ Это один объект, т. е. все сплайны присоединены к одному при помощи команды Attach. Первые вершины подобъектов-сплайнов определяют направление роста волос, поэтому обязательно должны быть у корней волос. Постарайтесь расположить первые вершины сплайнов как можно точнее по поверхности. Чем больше сплайнов и чем точнее они построены — тем точнее будет форма куста.

 В параметрах модификатора Hair and Fur исполь-

зуйте созданные сплайны при помощи команды Recomb(ine) From Splines (перекомбинировать из сплайнов).

Âèçóàëèçàöèÿ

637

Командная панель  свиток Tools  Recomb From Splines Щелкните левой кнопкой мыши на сплайне

Так лучше (рис. 3.104, в)? Не очень, давайте продолжим. Мы не будем пересказывать руководство пользователя, просто по порядку, в каком редактировали сами, расскажем о некоторых параметрах (рис. 3.104, г).  Уменьшите "завитушки", уменьшив параметры в свитках Frizz и Kink

Parameters (завивка и петли), причем для корней можно вообще обнулить значения (стрелки 1 и 2).  Уменьшите общее количество волос (почему так намного, объясним чуть

позже), увеличьте количество сегментов и толщину волос у корней (параметры Hair Count, Hair Segments и Root Thicks в свитке General Parameters (основные параметры) (стрелка 3 на рис. 3.104, г). Последний параметр задается в относительных единицах, поэтому придется делать тестовые расчеты. Делать это (пока) нужно на виде из камеры или перспективы.  Чтобы видеть результат в окне проекции, увеличьте процентацию отобра-

жения волос до 100% (стрелка 4).  При помощи параметров в свитке Multi Strand Parameters (стрелка 5) вы

можете получить симпатичные "кустики". При этом общее количество травинок увеличивается в количество раз, заданное значением Count, именно поэтому общее количество и было уменьшено до 200.

а Рис. 3.104, а. Создание куста при помощи модификатора Hair and Fur

638

Ãëàâà 3

б

в Рис. 3.104, б и в. Создание куста при помощи модификатора Hair and Fur

Âèçóàëèçàöèÿ

639

г Рис. 3.104, г. Создание куста при помощи модификатора Hair and Fur

 Материал для волос настраивается в свитке Material Parameters (стрел-

ка 6). В основном, здесь все должно быть понятно, все изменения отображаются в окне проекции. Пояснения требуют, пожалуй, только параметр Occluded Amb. (перекрытие рассеянного света) и флажок Tip Fade (прозрачность к концам). Чем первый параметр больше, тем меньше контраст между освещенной и не освещенной частью травинок, и при значении 100 волосы выглядят плоскими, поэтому мы обнулили его. Флажок Tip Fade был снят, т. к. нам не нужна такая прозрачность.  ЗАМЕЧАНИЕ Мы надеемся, что вы обратили внимание на знакомые серые квадратные кнопки напротив многих параметров? Вы все правильно поняли, для управления параметрами можно использовать карты, как растровые, так и процедурные.

640

Ãëàâà 3

Теперь можно немного "постричь и причесать" кустик.  Перейдите в режим Style Hair (дословно "укладка") (рис. 3.105). Несмотря

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

щих (Guides) (стрелка 1 на рис. 3.105). Все операции проводятся на выделенных направляющих. Обычно нужно, чтобы они были выделены все. Для этого используйте сочетание клавиш +.

Рис. 3.105. Укладка волос (Style Hair)

 Подрезка выделенных направляющих осуществляется инструментом Hair

Cut (стрелка 2). Просто подведите курсор к нужному месту и щелкните левой кнопкой мыши.

Âèçóàëèçàöèÿ

641

 Собственно укладка производится инструментом Hair Brush (стрелка 3).

При этом становятся доступны режимы, отмеченные стрелкой 4.  ПОЯСНЕНИЕ Режим Translate (перемещение) является основным. Собственно, это и есть "укладка". Stand (поставить) поднимает волосы при движении курсора направо. Для остальных режимов также используется движение курсора направо. Puff Roots (увеличивать объем корней) придает прическе объем. Clump (слипание) собирает направляющие в пучок. Rotate (поворот) позволяет завить волосы. Scale (масштабирование) служит для вытягивания волос.

 В группе Utilities находятся разные дополнительные утилиты, самая нуж-

ная из которых — это Undo (отмена) (стрелка 5), т. к. сочетание + не работает при создании прически.  СОВЕТ При работе в этом режиме многие команды доступны через квадрупольное меню.

Теперь нужно решить, что с этим делать дальше. Для этого зайдите в настройки рендеринга волос (рис. 3.106, а). Командная панель  свиток Tools  Render Settings

Рендеринг волос может быть проведен тремя способами. Первый, Buffer, установленный по умолчанию, является постпроцессом. Если вы уже попробовали провести рендеринг, то обратили внимание, что сначала проходит рендеринг плоскости, а уже потом появляются волосы. Основная проблема при этом заключается в том, что глобальное освещение для этого метода не рассчитывается, т. е. в нашем случае кусты будут подсвечены только солнцем. Этого недостатка лишен способ рендеринга в виде геометрии. Но при этом вы теряете материал, цвета волос берутся с плоскости. В случае использования mental ray правильным выбором является специальный примитив mental ray (MR Prim). При этом вам не нужно заботиться ни о тенях от кустов и на кустах, ни об отражениях кустов в зеркалах, ни о глобальном освещении — все работает "само собой". Единственная важная настройка при этом — mr Voxel Resolution (разрешение вокселей) (воксель — объемный элемент) (рис. 3.106, б). Ее значение можно уменьшить до 2.

642

Ãëàâà 3

а

б Рис. 3.106. Три способа рендеринга волос (а) и настройки для mental ray (б)

А вот в случае использования VRay ни один из этих способов не подходит. Необходимо преобразовать объект в геометрию. Командная панель  свиток Tools  Convert: Hair -> Mesh

Вы теряете и возможность редактирования волос (как волос, конечно, вы можете редактировать их как обычный объект), и частично материал.

Âèçóàëèçàöèÿ

643

К счастью, цвета записываются в вершины получаемого объекта, поэтому материал аналогичен материалу ирисов. Хотя получаемая геометрия достаточно "тяжелая" (рис. 3.107), это не должно вас особо беспокоить, т. к. при размножении будет использовано преобразование объекта в VRay Mesh Proxy (что это такое, рассказано далее) и инстансирование.

Рис. 3.107. Куст после преобразования в геометрию

И коротко несколько возможностей этого модуля, знание о которых может подвигнуть вас на интересные решения.  Вы можете использовать в качестве волос геометрические объекты, которые загружаются в свитке Tools командой Instance Node.  Вы можете применить к одному объекту несколько модификаторов Hair

and Fur и настраивать их по-разному, например, для того, чтобы разместить цветы и листья.  Вы можете настроить динамику волос и применить к ним внешнюю силу,

например, ветер (Wind). В результате во время анимации пролета камеры кусты будут шевелиться на ветру.

644

Ãëàâà 3

Ãàçîííàÿ òðàâà Вот мы и добрались до самого ресурсоемкого момента в этом проекте. Еще несколько лет назад ни одному заказчику не пришло бы в голову требовать от визуализаторов "настоящей" газонной травы. Вполне достаточно было материала, показанного на рис. 3.108, а. Ничего сложного — повторяющиеся бес-

а Рис. 3.108, а. Простой материал "травы" (а)

Âèçóàëèçàöèÿ

645

б Рис. 3.108, б. Результат рендеринга "травы" (б)

шовные текстуры, или даже, как в нашем варианте, процедурные карты, для цвета рассеяния (Diffuse) и шероховатости (Bump), и большая маска, используемая в карте Mix, через которую смешаны текстуры травы с разными значениями в Output. Это сделано для уменьшения эффекта "обойности". Издалека все это выглядит вполне пристойно (рис. 3.108, б). Если вас и заказчика это устраивает, то можете этим и ограничиться. Но не без усилий самих визуализаторов, в настоящий момент такой подход считается неприемлемым для качественной фотореалистичной визуализации. И для mental ray, и для VRay для создания газонной травы, т. е. достаточно однородной массы, используются либо смещение (Displacenemt), либо волосы и/или мех (модификатор Hair and Fur в случае mental ray или объект VRayFur в случае VRay). Рассмотрим применение смещения для создания травы. Настройки этих процессов для обоих случаев отличаются, причем коренным образом. При использовании mental ray у вас нет выбора, карта смещения должна быть задействована через материал. Лучше для этого использовать специальный шейдер, с которым вы уже знакомы (рис. 3.109, а). В качестве карты смещения используется простая растровая карта с малым значением размытия. Так же можно использовать и процедурную карту, на-

646

Ãëàâà 3

пример, Spekle. Но если карту наложить непосредственно, то трава "прорастет" через асфальт, беговую дорожку, вырастет в бассейне. Чтобы этого избежать, нужно использовать карту Mix и смешать через маску карту смещения и черный цвет. Такая маска делается просто — достаточно сделать рендеринг вида сверху, назначив на ландшафт черный материал, а на остальные объекты — белый. Конечно, деревья и кусты нужно при этом скрыть. Затем полученную картинку обрезать и при необходимости нормализовать по уровням в Photoshop. Чтобы маска легла так, как надо, можно использовать реальные размеры ландшафта. Но из-за некоторых ограничений, связанных с тем, что этот режим является "трюком", есть вероятность, что вы не сможете таким способом наложить карту очень большого размера. В этом случае нужно задействовать другой текстурный канал в карте и в модификаторе UVW Mapping (стрелки 1 и 2 на рис. 3.109, б). Таким образом, карты будут независимыми. Для точного наложения текстуры используйте команду Fit (пригонка) (стрелка 3).

а Рис. 3.109, а. Настройки материала mrAD для создания травы смещением (а)

Âèçóàëèçàöèÿ

647

б Рис. 3.109, б. Наложение маски (б)

В настройках смещения объекта, как было сказано ранее, возможны два варианта (рис. 3.109, в, г). В первом случае вы экономите ресурсы, но при этом, вполне возможно, результат будет неудовлетворителен, т. к. уже на не очень большом расстоянии от камеры травинки будут неразличимы. Хотя если удачно подобрана диффузная текстура, то этот переход будет незаметен. Во втором случае пострадает производительность. В обоих случаях нужно снять флажок Smoothing (сглаживание), поскольку сглаживание в данном случае вредно.  ЗАМЕЧАНИЕ Смещение, как нетрудно догадаться, использует в качестве направления нормаль (перпендикуляр) к поверхности. Поэтому в нашем случае вы получите весьма забавный эффект — трава на склонах будет расти не вверх, а "вбок". Чтобы скомпенсировать этот эффект, а, может быть, добиться и более интересных результатов, например, "кустиков", можно использовать другой шейдер — 3D Displacement (трехмерное смещение, рис. 3.110). Он содержит дополнительный канал — Direction Map (карта направлений). При этом красный

648

Ãëàâà 3

в

г Рис. 3.109, в и г. Настройки свойств объекта (в, г)

Âèçóàëèçàöèÿ

649

Рис. 3.110. Интерфейс шейдера 3D Displacement

цвет на карте отвечает за поворот вокруг оси U, зеленый — V и синий — W. Поэкспериментируйте с картой нормалей, или используйте шейдер, дающий значение направления нормали к поверхности или к UV-координатам. В поставке 3ds Max такого шейдера нет, по крайней мере, в явном виде, но вы можете использовать, например, шейдер JS_NormalMapper Яна Сандстрема (Jan Sandström — http://www.pixero.com/).

В случае VRay возможны два способа использования карты смещения, через материал с применением трехмерного наложения (3D Mapping) или с использованием модификатора VrayDisplacementMod и двумерного наложения (2D Mapping). При использовании смещения через материал вам доступны возможности управления картой через маску и адаптивность. Но такой способ в данном случае неприемлем, т. к. рендеринг проходит очень медленно и требует больших затрат памяти. Кроме этого, адаптивность, в отличие от mental ray, может сыграть с вами злую шутку — проявятся полигоны поверхности, на которой растет "трава", все пойдет "в клеточку". Поэтому для создания больших объемов газонной травы используют исключительно модификатор VRayDisplacementMod в режиме 2D mapping (рис. 3.111, а).

650

Ãëàâà 3

 ПОЯСНЕНИЕ Тип наложения 2D mapping требует определения текстурных координат. Модификатор VRayDisplacementMod не очень хорошо работает с текстурными координатами с использованием реальных размеров, да и карта, которая применена, не поддерживает этого режима. Поэтому для определения текстурных координат карты смещения используйте другой канал и в модификаторе VRayDisplacementMod, и в UVW Mapping (стрелки 1 на рис. 3.111, а и рис. 3.111, б). В последнем случае определите размер карты (стрелка 2 на рис. 3.111, б) и не используйте режим реальных размеров (стрелка 3). Высота травы устанавливается параметром Amount (стрелка 2 на рис. 3.111, а). Качество смещения определяется значениями в группе 2D mapping (стрелка 3). Значение Resolution (разрешение) имеет смысл установить равным размеру изображению в пикселах. Точность (Precision) можно уменьшить до 3—4. Сама карта VRayBmpFilter (сокращение от VRay Bitmap Filter) (рис. 3.111, в) специально разработана для применения в смещении. Дело в том, что обычная карта Bitmap при острых углах зрения фильтруется настолько сильно, что смещение может пропасть — мелкие элементы карты будут размыты. Это не значит, что нельзя использовать карту Bitmap, просто в данном конкретном случае выгоднее использовать именно VRayBmpFilter. В ней также используется тот же текстурный канал, что и в модификаторе. Вы можете использовать в качестве карты смещения процедурную карту, но только в режиме наложения по UV-координатам. Трехмерное наложение в пространствах Object XYZ и World XYZ не поддерживается в режиме 2D mapping.

Результат показан на рис. 3.111, г. Такая "трава" считается очень быстро и качественно и требует немного оперативной памяти. Но есть большая проблема — отсутствует возможность использования маски для определения местоположения травы. Вам придется вручную разбить ландшафт на несколько объектов. По большому счету, об этом нужно было позаботиться изначально. Но что делать, придется делать это сейчас. Мы предлагаем воспользоваться составным объектом ProCutter.  Создайте нужное количество "ножей" (Cutter). Это сплайны, созданные на

виде сверху и примененным модификатором Extrude (вытягивание) (рис. 3.112, а).  СОВЕТ Если стеки у вас в сцене не свернуты, то вы можете использовать исходные сплайны. Если же объекты сконвертированы и редактируемые полигоны или меши, то можно "вытащить" нужные сплайны, выделив ребра и используя команду Make Shape from Edges (сделать сплайн из ребер).

Âèçóàëèçàöèÿ

651

а

б

в Рис. 3.111, а—в. Настройки модификаторов VRayDisplacementMod (а), UVW Map для настройки карты смещения (б), настройки самой карты (в)

652

Ãëàâà 3

г Рис. 3.111, г. Результат рендеринга (г)

 Выберите один объект-нож и на его основе создайте составной объект

ProCutter (рис. 3.112, б). Главное меню  Create  Compound  ProCutter  Добавьте объект для разрезания и остальные "ножи" (Stock Objects, Cutter

Objects).  Настройте ProCutter так, чтобы от разрезаемого объекта остались части

внутри и снаружи "ножей" (стрелка 1 на рис. 3.112, б), остались оригинальные материалы (стрелка 2), автоматически рассыпался на объекты (стрелка 3) и отмените удаление ребер (стрелка 4).  После этого преобразуйте результат в редактируемые полигоны и удалите

лишнее (рис. 3.112, в). Вот такой результат (рис. 3.112, г).  ЗАМЕЧАНИЕ За один проход это сделать не получилось. Нам пришлось делать это последовательно, и дорабатывать потом на полигональном уровне.

Âèçóàëèçàöèÿ

653

а

б Рис. 3.112, а и б. Разделение ландшафта на объекты

654

Ãëàâà 3

в

г Рис. 3.112, в и г. Разделение ландшафта на объекты

Âèçóàëèçàöèÿ

655

Второй способ, а именно использование генераторов волос и меха, так же весьма ресурсоемкий, но зато позволяющий получить очень красивую траву. Мы опускаем использование волос в качестве травы для mental ray. Практически настройки в этом случае не отличаются от настроек для злаков. Для VRay можно использовать обновленный объект, который так и называется VrayFur (мех). Выделите ландшафт и создайте объект VRayFur (рис. 3.113, а). Командная панель  Create  Geometry  VRay  VrayFur

а Рис. 3.113, а. Настройки VrayFur (а)

656

Ãëàâà 3

б

в Рис. 3.113, б и в. Материал травы (б) и результат рендеринга (в)

Âèçóàëèçàöèÿ

657

 ПОЯСНЕНИЕ Параметры в основном вполне понятны. Пояснения требуют только некоторые из них. Параметр, который наконец-то позволил использовать этот объект в качестве травы, — это Taper (конусность) (стрелка 1 на рис. 3.113, а). Если он равен 1, то травинки сходят на нет к концам. За качество волос отвечает параметр Knots (количество узлов). Не стоит делать его слишком большим (стрелка 2). Распределены волосы могут быть двумя способами (стрелка 3). Переключатель Per face (количество на грань) задает количество травинок на грань. Чем больше размеры граней, тем реже расположены травинки. При распределении выбранным переключателем Per area (по площади) трава распределяется равномерно по поверхности, независимо от размеров граней. Расположение (Placement) (стрелка 4) можно задать по всему объекту, по выделенным граням и индексу материала опорного объекта. Интересную возможность предоставляет генерация координаты W (стрелка 5). Текстурные координаты UV берутся с опорного объекта, а W генерируется по длине волоса. Это позволяет создавать интересные материалы травинок. На рис. 3.113, б показан такой материал. На канал Diffuse назначен градиент от темно-зеленого к светло-зеленому. Эта карта идет по каналу, заданному в объекте, в нашем случае, пятому (стрелка 1 на рис. 3.113, б). Карта повернута на –90° вокруг оси U (стрелка 2). Таким образом, градиент "стоит" по отношению к поверхности. На средний цвет градиента назначена уже известная карта Mix, которая накладывается обычным способом (стрелка 3). Результат рендеринга показан на рис. 3.113, в. На нем же видно действие карты, наложенной в свитке Maps объекта VRayFur (стрелка 6 на рис. 3.113, а). Как видите, возможностей по управлению травой, а так же ворсом, бахромой и пр., в этом объекте предостаточно.

Наши файлы с настроенными материалами называются Project1-mrMaterials.max и Project1-VrayMaterials.max. Все готово к окончательной визуализации!

Ðåíäåðèíã è ïîñòîáðàáîòêà В этом разделе рассмотрены основные настройки рендереров и способы оптимизации времени и потребления оперативной памяти. Обзорно приводится перечень возможностей по оптимизации процесса рендеринга. Также рассмотрены основы постобработки и композитинга и средства 3ds Max для повышения эффективности этих процессов.

Îáùèå íàñòðîéêè ðåíäåðèíãà Общие настройки для всех рендереров сосредоточены во вкладке Common (рис. 3.114).

658

Ãëàâà 3

Рис. 3.114. Общие настройки рендеринга

В свитке Common Parameters (общие параметры) в группе Time Output (время вывода) настраивается диапазон времени, который будет просчитан. Для статичного изображения производится рендеринг текущего кадра. В группе Output Size (размер выводимого изображения) устанавливается размер в пикселах. Почему-то именно этот факт заводит в тупик людей, работающих с полиграфией. Специально для них существует диалоговое окно Print Size Wizard, в котором можно ввести размер в привычных для полиграфистов единицах (рис. 3.115). Главное меню  Rendering  Print Size Wizard

Обратите внимание на такой параметр, как Pixel Aspect (соотношение сторон пиксела) (см. рис. 3.114). В некоторых случаях имеет смысл проводить рендеринг с так называемым "неквадратным" пикселом. Это актуально при рендеринге для дальнейшего вывода на видео, для того, чтобы потом в програм-

Âèçóàëèçàöèÿ

659

ме видеомонтажа не выполнять масштабирование, что повлечет за собой размытие картинки. Хотя в выпадающем списке предустановок много форматов, в том числе и для DV, но новые форматы (например, Wide Screen PAL 16:9) отсутствуют. Поэтому если вы выполняете заказ для последующего видеомонтажа, то обязательно уточните, в каком формате и с какими параметрами кадра нужно проводить рендеринг. Флажки в группе Options (Опции) позволяют при рендеринге включать или исключать из расчета те или иные возможности 3ds Мax. Подробнее остановимся только на некоторых из них.

Рис. 3.115. Диалоговое окно Print Size Wizard

Флажок Force 2-Sided (принудительно двусторонние) в принудительном порядке заставляет 3ds Max при рендеринге все материалы считать двусторонними (2-Sided). Иногда эта опция полезна, иногда нежелательна, все зависит от конкретной ситуации. Напомним, что материалы mental ray Arc+Design и VRayMtl по умолчанию двусторонние. Установленный флажок Render Hidden Geometry позволяет осуществлять рендеринг скрытых (Hidden) объектов. При этом следует учитывать два обстоятельства — скрытые части объектов (полигоны, лоскуты и т. д.) просчитываются независимо от состояния этого флажка, а объекты, исключенные из процесса рендеринга при помощи флажка Renderable в параметрах объекта или слоя, не просчитываются вовсе.

660

Ãëàâà 3

Флажок Area Lights/Shadow as Points принудительно отключает построение мягких теней. Использовать это можно для получения быстрого результата. Это справедливо только для стандартного рендерера и mental ray. Остерегайтесь использования флажка Video Color Check (проверка цвета на соответствие видеостандарту)! При его использовании проверяется цвет изображения на соответствие цветовому пространству того или иного видеостандарта (PAL или NTSC). При установках по умолчанию вы получите черные пятна на ярко освещенных участках, так помечаются эти участки. Но и при использовании других методов сжатия цветового пространства (мы даже не будем рассказывать, где это настраивается) вы получите потерю качества. Даже если вы проводите рендеринг для видео, не стоит это использовать, т. к. все это можно и нужно сделать при постобработке. Группа Advanced Lighting управляет использованием встроенных механизмов расчета непрямого освещения для стандартного рендерера. Ни для mental ray, ни для VRay эти параметры не используются. В группе Bitmap Proxies (замена растровых файлов) присутствует только кнопка Setup, вызывающая настройки этого процесса (рис. 3.116).

а

б Рис. 3.116. Диалоговое окно настроек замены растровых файлов (а) и выбор для рендеринга (б)

Эти настройки позволяют вам создать файлы текстур меньшего размера, чем оригинальные и использовать их в окнах проекции и для рендеринга. Три режима, выбираемые с помощью выпадающего списка Render Mode и показанные на рис. 3.116, б, позволяют соответственно проводить рендеринг с уменьшенными текстурами и оригинальными текстурами с сохранением их

Âèçóàëèçàöèÿ

661

в памяти или удалении по мере необходимости. Последнее решение дает максимальное качество при меньших затратах памяти, но, конечно, ценой большего времени. Этот механизм работает со всеми рассматриваемыми модулями рендеринга. Параметры в группе Render Output (Вывод результатов рендеринга) (см. рис. 3.114) используются для определения файлов для вывода результатов расчета. Для того чтобы результаты рендеринга были записаны в файл, нужно нажать кнопку Files и присвоить имя, тип и параметры файла. В 3ds Max есть приятная особенность — если задать имя файла с нужным расширением, то будут выбраны настройки для этого типа.  ЗАМЕЧАНИЕ При использовании VRay и VRay::FrameBuffer есть некоторые особенности и отличия, они обсуждаются далее.

Форматов достаточно много, но использовать имеет смысл только некоторые из них. Форматы TGA (TARGA, Truevision Graphics Adapter) и TIFF (Tagged Image File Format) являются наиболее предпочтительными форматами для рендерингов в том случае, если не нужны какие-то специальные возможности или большая чем 8 или 16 бит на канал (в случае TIFF) глубина цвета. В обоих реализованы алгоритмы сжатия без потери качества и поддержка канала прозрачности (Alpha-channel) (рис. 3.117).  ЗАМЕЧАНИЕ

При сохранении в формате TIFF (см. рис. 3.117, б) присутствуют опции 16-bit SGI LogL и 32-bit SGI LogLUV, это варианты с использованием большого динамического диапазона. К сожалению, Adobe Photoshop открывает их некорректно.

Неплохим решением можно считать рендеринг в формат PNG. Этот формат позволяет сохранять изображения с альфа-каналом (рис. 3.117, в). В 3ds Max, начиная с 6-й версии, появилась поддержка рендеринга в формат Radiance RGBE (HDR). Применение этого формата для рендеринга оправдано, т. к. позволяет бороться с пересветом и недосветом уже на этапе постобработки. На рис. 3.118 показаны настройки для рендеринга в этот формат (а), результат рендеринга в 3ds Max с очень сильным пересветом (без управления экспозицией) (б) и результат исправления экспозиции в Adobe Photoshop CS3 (в). При всех достоинствах этот формат имеет ряд недостатков. Прежде всего, отсутствует альфа-канал, что делает его не очень интересным для дальнейшего монтажа, придется выводить альфа-канал отдельно. Второй заключается в 8-битной основе этого формата. Достаточно часто при коррекции экспозиции таких файлов получаются ступенчатые градиенты.

662

Ãëàâà 3

а

б

в Рис. 3.117. Настройки для сохранения в формат TGA (а), TIFF (б) и PNG (в)

а Рис. 3.118, а. Настройки для рендеринга в формат RGBE (HDR) (а)

Âèçóàëèçàöèÿ

663

б

в Рис. 3.118, б и в. Цветокоррекция в Adobe Photoshop CS3 (б, в)

664

Ãëàâà 3

Более интересным является формат OpenEXR. Этот формат, разработанный компанией ILM, практически, стал уже стандартом для профессиональной визуализации, т. к. позволяет записывать не только информацию о цвете с учетом экспозиции, но и альфа-канал, и большое количество (в некоторых реализациях — любое) дополнительных каналов (рис. 3.119, а). К сожалению, в 3ds Max используется весьма урезанный по возможностям экспортер в этот формат от компании SplutterFish Llc. И, также к сожалению, компания Adobe в очередной раз ничего не сделала для нормальной поддержки этого формата. При загрузке в Adobe Photoshop все дополнительные каналы игнорируются, а альфа-канал трактуется как прозрачность, и фон отсекается (рис. 3.119, б). Остается только надеяться на сторонних разработчиков, например, компанию fnord, разрабатывающую плагины ProEXR для PhotoShop и After Effects. Или все же на то, что в объявленной на весну 2008 года версии Photoshop CS4 будет включена поддержка этого формата.  ЗАМЕЧАНИЕ При рендеринге с использованием mental ray в формат OpenEXR попробуйте разобраться с шейдерами Павла Ледина (http://www.puppet.cgtalk.ru/). При рендеринге с использованием VRay лучше использовать сохранение в формат OpenEXR в специальном экранном буфере VRay (VRay Frame Buffer). О нем рассказано далее.

Два формата, RLA и RPF, несмотря на то, что несколько устарели, предоставляют вам похожие возможности, что и OpenEXR (рис. 3.120), и используются при видеокомпозитинге. Второй формат прекрасно работает в связке с Autodesk Combustion, позволяя без проблем создавать эффекты глубины резкости, смаза и т. д. К сожалению, есть некоторые проблемы, связанные с использованием этих форматов с mental ray, в частности, некоторые каналы не поддерживаются, а некоторые неправильно выводятся. C VRay проблем нет. Остальные форматы описывать мы не видим смысла, они либо очень старые, как FLIC, либо специфичные, например, DDS, при желании вы можете попробовать разобраться с ними сами.  ВАЖНО!

Настоятельно призываем вас не использовать формат JPG для окончательного рендеринга, восстановить качество, уничтоженное компрессией, невозможно! То же самое касается и использование AVI и MOV для записи анимации, лучше и правильнее записать секвенцию файлов и собрать потом в "монтажке". Предпосылки все те же — потерянное качество не вернешь.

Продолжаем разбираться с общими параметрами. Снятие флажка Rendered Frame Window (экранный буфер) (см. рис. 3.114) позволяет экономить память, и рекомендуется при окончательном рендеринге.

Âèçóàëèçàöèÿ

665

а

б Рис. 3.119. Настройки для сохранения в формат Open EXR (а) и результат загрузки в Adobe Photoshop (б)

666

Ãëàâà 3

а

б Рис. 3.120. Настройки форматов RLA (а) и RPF (б)

Флажок Net Render (сетевой рендер) запускает процесс сетевого рендеринга с использованием backburner, эта процедура описана в разд. "Рендеринг по сети" этой главы. Свитки Email Notifications (сообщения по электронной почте) и Scripts (скрипты) предназначены для настройки параметров сообщений по электронной почте и назначения скриптов, запускающихся автоматически перед началом и после окончания рендеринга. Настройки в первом свитке достаточно просты, а во втором очень специфичны, поэтому мы опускаем рассмотрение и того, и другого. В свитке Assign Renderer можно назначить основной (Production) рендерер, рендерер для редактора материалов (Material Editor) и рендерер для интерактивного затенения (ActiveShade). К сожалению, ActiveShade нет возможности использовать ни с mental ray, ни с VRay, а жаль.

Âèçóàëèçàöèÿ

667

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

Íàñòðîéêè mental ray В этом разделе даны основные сведения по настройке mental ray. В процессе обсуждения настроек mental ray мы будем давать рекомендации по использованию тех или иных параметров для нашей конкретной сцены. В конце раздела приведены шаги, которые стоит предпринять в том случае, если ваша система не в состоянии провести окончательный рендеринг.

Âêëàäêà Renderer В свитке Sampling Quality (рис. 3.121, а) настраивается то, что в стандартном рендерере называется Anti-Aliasing (антиалиасинг). В принципе, это то же самое, сглаживание ступенек, поэтому так и будем в дальнейшем называть этот процесс — антиалиасинг. В mental ray реализован адаптивный алгоритм антиалиасинга, принцип его описан в главе 1. Для быстрого предварительного рендеринга вполне подойдут установки по умолчанию. В большинстве случаев годятся настройки, показанные на рисунке — при них вы получите вполне приемлемый результат за небольшое время. Причем чем больше размер окончательного изображения, тем менее качественными настройками можно пользоваться. Но что делать, если хочется более высокого качества, прежде всего, уменьшения шума в тенях от протяженных источников света и на поверхностях с эффектом "глосси"? Сначала стоит попробовать уменьшить значения параметров Spatial Contrast, определяющих уровень контраста, ниже которого принимается решение о продолжении попыток улучшить качество путем испускания дополнительных лучей. Значения для каждого параметра 0.05—0.02 можно считать оптимальными в большинстве случаев. Меньшие значения могут привести к тому, что адаптивный алгоритм будет всегда достигать максимальной глубины. В этом случае имеет смысл использовать алгоритм Fast Rasterizer, о котором речь пойдет немного позже. После этого увеличьте значения Minimum и Maximum до 1/4—1 и 4—16 соответственно. Эти значения определяют начальное и предельное количество лучей, испускаемых в один пиксел. При значениях меньше 1 лучи испускаются через несколько пикселов.

668

Ãëàâà 3

В группе Filter определяется алгоритм фильтрации образцов. При использовании алгоритма Box (куб) значения складываются и делятся на их количество. Это самый быстрый и некачественный алгоритм, дающий размытое изображение, но при этом вполне приемлемый при рендеринге больших изображений (1500 пикселов и выше). Кроме этого простейшего алгоритма, есть еще четыре, усредняющие образцы по более сложному закону. Не вдаваясь в излишние подробности, алгоритмы Triangle (треугольник) и Gauss (Гаусс) дают сглаженный, иногда излишне, результат (при этом Triangle дает более четкий, нежели Box, результат), а Mitchell (Митчелл) и Lanczos (Ланкос) — более четкую прорисовку. Для двух последних алгоритмов не используйте значения Minimum меньше единицы, это приводит к очень плохому результату! Значения Width (ширина) и Height (высота) определяют размер площадки в пикселах, с которой собираются образцы для усреднения, установки по умолчанию можно считать оптимальными, увеличение их приводит к размытию, а уменьшение — к появлению "ступенек". Следует помнить, что качество некоторых эффектов, например, размытие отражений, глубина резкости и смаз (motion blur), напрямую зависят от установок антиалиасинга. Установка флажка Lock Samples в группе Options приводит к тому, что при рендеринге анимации параметры сэмплирования рассчитываются в первом кадре, и в дальнейшем не пересчитываются, что приводит к устранению дрожания картинки. Побочным эффектом является эффект "морозного стекла", который хорошо виден при недостаточных настройках антиалиасинга. Флажок Jitter (шум) добавляет неравномерность в антиалиасинг, делает картинку более живой и позволяет избежать исчезновения тонких линий и ступенчатости почти вертикальных и горизонтальных линий. Поле Bucket Width (ширина бакета) определяет размер области рендеринга. Уменьшение его уменьшает размер используемой оперативной памяти, но приводит, как правило, к увеличению времени рендеринга, особенно при применении фильтров, т. к. пограничные пикселы приходится рассчитывать дважды. Выпадающий список Frame Buffer Type (тип окна рендеринга) позволяет выбрать между окнами с глубиной цвета 16 бит на канал линейный и 32 бита на канал с плавающей точкой. Второй тип позволяет сохранить изображение из окна в формат с большим динамическим диапазоном без отсечения значений, превышающих 1. Но, даже если вы не планируете этого, использование второго типа позволяет получить реальные значения цветов пикселов, что полезно при определении настроек экспозиции.

Âèçóàëèçàöèÿ

669

В свитке Rendering Algorithms (алгоритмы рендеринга) выбираются и настраиваются алгоритмы рендеринга. Для первичного луча можно использовать три алгоритма. Первый, Scanline (группа Scanline), установлен по умолчанию. В том случае, если невыгодно использование адаптивного антиалиасинга (например, при большом количестве эффектов "глосси", расчете волос и др.), оправданным становится использование алгоритма Fast Rasterizer (быстрый растеризатор), у которого свои настройки фиксированного антиалиасинга (Samples per Pixel), отменяющие действие адаптивных алгоритмов. Кроме этого, имеется параметр Shaders per Pixel, определяющий количество вызовов шейдеров на пиксел. Увеличение этого параметра помогает получить более сглаженное изображение за счет времени. Этот метод так же дает хорошие результаты при рендеринге эффекта смаза при анимации, для чего он, собственно, и был разработан. В нашем случае он также применим, т. к. сцена насыщена мелкими объектами и текстурами. И, наконец, если оба флажка (Enable и Use Fast Rasterizer) в группе Scanline сняты, для первичного луча используется алгоритм Raytrace. Это может быть необходимым при использовании волюметрических (объемных) шейдеров. Время рендеринга при этом увеличивается. Для алгоритма Raytrace предусмотрено три метода ускорения расчетов (Raytrace Acceleration). Два первых, BSP и Large BSP (binary space partitioning, двоичное разбиение пространства), являются вариантами одного алгоритма. Первый из них, установленный по умолчанию, подходит для рендеринга в большинстве случаев. Управляются они параметрами Size (размер, определяет количество примитивов в листе дерева) и Depth (глубина, определяет максимальный уровень вложенности дерева). Чем больше параметр Depth, тем быстрее проходит рендеринг, но тем больше требуется памяти, и немного увеличивается время подготовки к рендерингу. Чем больше параметр Size, тем меньше памяти используется, тем больше времени требуется для рендеринга. Таким образом, для экономии памяти параметр Size нужно увеличивать, а Depth — уменьшать, и наоборот. На практике если и стоит изменять эти параметры, то в небольших пределах. Метод Large BSP аналогичен BSP, но использует многоуровневое построение дерева. Этот метод на 15—20% медленнее обычного BSP, но более экономично использует память, и применяется для расчета больших по объему сцен. Метод Grid (сетка) является вариантом разбиения пространства по методу Spatial Subdivision (пространственное разбиение), и подходит для расчета больших сцен, в том числе и нашей. Параметры Size и Depth оказывают то же самое влияние, что и для алгоритма BSP. Для экономии памяти можно уменьшить значение Size до 64—32, опять же, за счет времени. Параметр

670

Ãëàâà 3

Resolution (разрешение) определяет минимальный размер вокселя (voxel — объемный элемент, аналогичный пикселу), при равенстве 0 он расcчитывается автоматически, не стоит изменять его значение без нужды. В нашей сцене предпочтительно использование именно этого метода.  ЗАМЕЧАНИЕ В 3ds Max 2008 и mental ray 3.6 соответственно этот алгоритм заменен на BSP2, который автоматически определяет параметры разбиения и не требует настроек.

Параметры в группе Trace Depth (глубина трассировки) определяют глубину трассировки лучей в преломлениях и отражениях. Адаптивного алгоритма в глобальных настройках не предусмотрено, они имеются в материале Arch+Design. При преломлениях учитываются поверхности при входе луча и выходе, таким образом, для того, чтобы что-то увидеть сквозь пустой стакан, требуется 4 преломления. Для ускорения расчета в нашей конкретной сцене можно уменьшить эти значения до 2. Следует иметь в виду, что глобальные настройки являются более важными, т. е. если в материале глубина трассировки больше, чем в этом свитке, то настройки материала игнорируются. В свитке Shadows & Displacement (тени и смещение) (рис. 3.121, б) задаются параметры теней и смещения. Для теней типа Raytrace предусмотрено три типа — Simple (простые), которые подходят во многих случаях, Sort (отсортированные) и Segments (сегментированные), которые строятся в определенном порядке, в зависимости от расстояния от источника света. Последний вариант обязательно применяется при создании волюметрических эффектов (объемный свет, туман, дымчатое стекло, вода и т. д.). В группе Shadow Maps (карты теней) есть опция, позволяющая сохранять тени этого типа в файл для дальнейшего использования. Настройки в группе Displacement (Global Settings) (смещение) определяют глобальные параметры смещения, мы уже рассмотрели их ранее. Напоминаем, что аналогичные настройки есть и в параметрах объектов. Различие в значении Max. Subdiv(ision) (максимальное подразбиение) не должно вас смущать — здесь оно дано в реальных значениях, в настройках — в степенях четверки. "16K" — это 7-й уровень подразбиения.  ЗАМЕЧАНИЕ Мы опустили рассмотрение параметров в свитке Camera Effects, т. к. или они слишком специфичны, и для нашей сцены не играют роли, либо уже использовались ранее. Например, здесь назначается шейдер mia_exposure_simple.

Âèçóàëèçàöèÿ

671

а

б

Рис. 3.121. Настройки mental ray. Вкладка Renderer

Âêëàäêà Processing (Îáðàáîòêà) Флажок Use Placeholder Objects (рис. 3.122) позволяет исключить из процесса рендеринга объекты, не попадающие в поле зрения камеры в случае использования алгоритма Scanline для первичного луча, или бакета при использовании алгоритма Fast Rasterizer. Это не касается объектов, отражение которых попадает в камеру, а также не работает при расчете окончательного сбора, если, конечно, не настроить и то, и другое должным образом. Как именно, рассказано далее. Параметр Memory Limit определяет предел памяти, при достижении которого mental ray будет предпринимать попытки освободить память. Его стоит

672

Ãëàâà 3

устанавливать в значение, равное вашей оперативной памяти или немного меньше. Флажок Use mental ray Map Manager (использовать управление картами mental ray) позволяет сэкономить память, т. к. в этом случае при рендеринге карты подгружаются по необходимости и могут выгружаться из памяти. Конечно, все это приводит к увеличению времени рендеринга. Важно при этом, чтобы формат поддерживался mental ray напрямую. В противном случае, например, в случае TIFF с компрессией LZW, mental ray при рендеринге переводит растровые карты во внутренний формат (так называемый RAW), что приводит к повышенному потреблению памяти и сведению на нет преимуществ этого режима. Флажок Conserve Memory (сохранять память), во-первых, оптимизирует сцену при передаче ее из 3ds Max в mental ray, а во-вторых, "заставляет" mental ray хранить полученное изображение не в памяти, а во временном файле. Очень ценной является возможность временно заменить все материалы на один при помощи кнопки в группе Material Override, этой опцией вы уже пользовались. Остальные параметры в этом свитке достаточно специфичны, и выходят за рамки данной книги.

Рис. 3.122. Настройки mental ray. Вкладка Processing

Âêëàäêà Indirect Illumination (íåïðÿìîå îñâåùåíèå) В этой вкладке (рис. 3.123) настраиваются параметры расчета глобального или непрямого освещения. Хотя mental ray предоставляет два алгоритма расчета непрямого освещения, трассировка фотонов (Photon Tracing) и окончательный сбор (Final Gathering), для нашей сцены не имеет смысла использовать трассировку фотонов, поэтому настраивать будем только окончательный сбор. Благодаря наличию предустановок, сделать это достаточно просто — выберите нужную, и все! В нашем случае вполне подойдет качество Low (низкое)

Âèçóàëèçàöèÿ

673

или Medium (среднее). Увеличить детализацию можно при помощи применения Ambient Occlusion (перекрытие окружения) в материале mrAD. Если вам этого недостаточно, то вы можете попробовать сами настроить этот процесс.

Рис. 3.123. Настройки mental ray. Вкладка Indirect Illumination

Параметры Multiplier (множитель) и цвет определяют интенсивность и оттенок непрямого освещения. За качество (и время) отвечают параметры Initial FG Point Density (начальная плотность точек ОС), Rays per FG Point (количество лучей на точку) и Interpolate Over Num. FG Points (количество точек, используемых при интерполяции). Два первых параметра работают по принципу "чем больше, тем точнее, но дольше". При некоторых условиях вы можете увеличивая плотность точек OC, при этом не увеличивая или увеличивая незначительно количество лучей, в отличие от предустановок. Третий параметр определяет количество точек OC, между которыми строится градиент интерполяции. При

674

Ãëàâà 3

больших значениях вы можете получить излишне размытый результат, при малых — характерный шум. Параметр Diffuse Bounces (диффузные отскоки) определяет количество вторичных переотражений (или "отскоков" — этот термин уже вполне устоялся) лучей от матовых поверхностей. Если это значение равно 0, то от прямых источников света (в нашем случае Солнце) рассчитывается один отскок, а от неба — ни одного, т. к. небо уже является вторичным источником света. В нашем случае этого недостаточно, можно установить один или два отскока. Но при этом имейте в виду следующее: каждый вторичный отскок, генерируя дополнительную точку OC, приводит к порождению еще множества лучей, что приводит к значительному замедлению расчета. Также происходит осветление сцены. Поэтому нет большого смысла в увеличении количества вторичных отскоков больше 2-х, но все же если это необходимо, то вы можете уменьшить осветление сцены, уменьшив коэффициент Weight (вес) до 0.7— 0.8. В этом случае каждый последующий вторичный отскок будет давать меньший вклад. Параметры в группе Trace Depth (глубина трассировки) отвечают за количество отскоков лучей OC от зеркальных и прозрачных поверхностей. Значения по умолчанию явно завышены, достаточно не более 1-го рефлективного отскока (и то это может быть много, т. к. при недостаточных настройках качества получаются пятна от зеркальных поверхностей), и не более 1— 2 от прозрачных. Можно установить этот параметр в 0, но в этом случае за стеклами и на дне бассейна будет темно в местах, куда не попадает прямой свет. При рендеринге таких сцен, как наша, имеет смысл воспользоваться возможностью ограничения лучей ОС, включив и настроив ослабление (Falloff). При этом имейте в виду, что в случае прекращения трассировки луча возвращается цвет источника света-неба (Skylight), и при недостаточной длине лучей вы можете получить неестественную засветку, например, в закрытой стоянке. В группе Final Gather Map можно сохранить карту окончательного сбора в файл и использовать ее повторно. При этом при смене ракурса будет производиться досчет карты. Но не перерасчет, поэтому, если вы измените положение объектов в сцене, вы должны пересчитать OC заново. Вы можете сделать несколько расчетов с разных ракурсов (например, с начального, конечного и нескольких промежуточных положений камеры при анимации облета), записать в файл и установить флажок Read Only (FG Freeze) (только для чтения). В этом случае карта OC не будет досчитываться ни при каких условиях. В этом же свитке находятся параметры фильтрации (Noise Filtering (Speckle Reduction)). Тип Standard достаточен в большинстве случаев. Кроме этого, для совместимости имеются старые настройки окончательного сбора (группа FG Point Interpolation).

Âèçóàëèçàöèÿ

675

Íàñòðîéêè ãàììû è øåéäåðà óïðàâëåíèÿ ýêñïîçèöèåé Еще раз проверьте настройки гаммы. Они должны быть такими, как показано на рис. 3.124, а. Для получения более высокого контраста можно использовать гамму 1.8 для расчета и вывода. Но не для загрузки текстур, это значение должно быть равно 2.2. Главное меню  Customize  Preferences  вкладка Gamma and LUT

а

б Рис. 3.124. Настройки гаммы (а) и mia_exposure_simple (б)

676

Ãëàâà 3

Если вы используете глобальные настройки гаммы, то в шейдере mia_ exposure_simple установите аналогичное значение, равное 1 (рис. 3.124, б). Для повышения контраста можно сделать значение параметра pedestal отрицательным.

Íàñòðîéêè â ìàòåðèàëå Arch+Design äëÿ îïòèìèçàöèè ðåíäåðèíãà è ïîñòîáðàáîòêè Кроме рассмотренных ранее методов (количество образцов размытых отражений и преломлений, интерполяция и отключение трассировки), в материале Arch+Design есть несколько параметров, предназначенных для оптимизации рендеринга. Для воды и стекол можно ограничить длину лучей в группе Reflections (отражения) до 10—15 м, а для материалов с размытыми отражениями — до 1 м, и увеличить значение Cutoff Threshold (Порог отсечки) (рис. 3.125, а). При достижении максимального значения будет отражаться окружение. Для материалов воды, травы и листьев деревьев и кустов для ускорения расчета окончательного сбора уменьшите качество (FG Quality). К сожалению, совсем отключить из расчета окончательного сбора объекты или материалы штатными средствами невозможно.

а

б Рис. 3.125. Настройки в материале Arch+Design для оптимизации рендеринга

Âèçóàëèçàöèÿ

677

Для того чтобы не повышать настройки окончательного сбора, но при этом получить качественное глобальное освещение, для материалов дома включите расчет Ambient Occlusion (рис. 3.125, б). Сделать это можно при помощи скрипта, описанного ранее. Не применяйте этот процесс в материале травы, если используете смещение! Тоже касается и материалов для воды.

а

б Рис. 3.126, а и б. Назначение карты на канал Environment материала

678

Ãëàâà 3

в Рис. 3.126, в. Назначение карты на канал Environment материала

Для того чтобы иметь возможность рендеринга на черном фоне, что значительно упрощает процесс композитинга по альфа-каналу, имеет смысл ввести в качестве окружения в отражающие материалы (стекла, воду и т. п.) либо карту mrPhysicalSky, назначенную на глобальное окружение (рис. 3.126, а), либо карту в формате HDR (рис. 3.126, б). В любом случае отключите использование карты в глобальном окружении (рис. 3.126, в). Главное меню  Rendering  Environment

 ВАЖНО! Карта должна быть инстансирована при назначении.

 ЗАМЕЧАНИЕ В 3ds Max 2008 появился штатный шейдер, позволяющий сделать такое действие глобально. Подробнее о нем написано в приложении 7.

Кроме этого, есть еще несколько возможностей, но в нашем случае они не применяются. Подробнее об этом можно узнать в приложении 1.

Îïòèìèçàöèÿ ðàñ÷åòà òðàâû, ñîçäàííîé ñìåùåíèåì Для того чтобы сделать возможным расчет смещения (Displacement), имеет смысл разбить ландшафт на несколько небольших объектов, примерно со стороной 5—7 м. Это можно сделать, просто выделяя полигоны и отделяя их от объекта командой Detach. В параметрах объектов уменьшите уровень разбиения смещения до 5. При использовании расчета окончательного сбора такая трава считается очень долго и требует больших затрат оперативной памяти. Нам при 1 Гбайт RAM не удалось выполнить рендеринг. Поэтому можно сделать следующее — провести расчет без смещения, сняв соответствующий флажок в настройках материала, при этом сохраняя карту FG в файл. После этого установите флажок Read Only и выполните окончательный рендеринг, уже используя смещение.

Âèçóàëèçàöèÿ

679

Íàñòðîéêè VRay  ЗАМЕЧАНИЕ В этом разделе рассматриваются настройки версии VRay 1.50.SP1; настройки для более ранних или более поздних версий могут немного отличаться. Прежде всего, в версиях — кандидатах на релиз (RCx) и более ранних отсутствует деление на вкладки, все параметры расположены в одной вкладке.

Âêëàäêà VRay В свитке V-Ray:: Global switches (глобальные переключатели) расположены элементы, управляющие рендерингом в целом (рис. 3.127, а). В группах Geometry (геометрия), Lighting (освещение) и Materials (материалы) включаются или отключаются те или иные элементы, в основном, для ускорения предварительных расчетов. Остановимся только на некоторых. В том случае, если вы используете только освещение небом, т. е. без использования прямых источников света, необходимо отключить действие источников света по умолчанию, сняв флажок Default lights. При установленном флажке Hidden lights скрытые источники света продолжают освещать сцену. Если этот флажок снять, то скрытые источники света не будут работать. Это удобно в том случае, когда источники света распределены по слоям, например, для дневного и вечернего освещения. Достаточно скрыть слой, чтобы отключить ненужные источники света. Для оптимизации расчетов можно ограничить количество отражений и преломлений (Max depth в группе Materials), а так же глубину трассировки прозрачности, полученной при помощи карт на канале Opacity (непрозрачность), например, для уменьшения времени рендеринга листвы (параметры Max transp. levels и Transp. cutoff). Флажок Don't render final image позволяет не производить расчет окончательного изображения, что полезно при расчете глобального освещения и записи его в файл. Небольшое (0.001—0.01) значение параметра Secondary rays bias (смещение вторичных лучей) в группе Raytracing позволяет избежать артефактов при наложении полигонов, но лучше избегать такого наложения. А вот при запекании текстур (Render to Texture) этот параметр необходимо поставить в небольшое значение. В свитке V-Ray:: Image sampler (Antialiasing) выбираются алгоритмы для антиалиасинга, и выбор и настройки фильтров (рис. 3.127, б). VRay предоставляет три алгоритма антиалиасинга. Простейший алгоритм, Fixed (фиксированный) (рис. 3.127, в) настраивается только одним параметром, Subdivs, определяющим, сколько лучей будет ис-

680

Ãëàâà 3

пущено в каждый пиксел. Количество лучей равно значению Subdivs в квадрате. При значении параметра равного 1 вы получите изображение без антиалиасинга, при 2 будет испущено 4 луча, при 3 — 9 и т. д. Этот алгоритм прост и иногда, например, в случае большого количества мелких деталей и текстур, дает результат того же качества, что и адаптивные, но при этом быстрее. Второй алгоритм, который подходит при рендеринге объектов с небольшим количеством эффектов с размытием (размытые отражения, преломления, тени и т. д.) — Adaptive subdivision (адаптивное подразбиение, рис. 3.127, г). Он аналогичен Image Sampler в mental ray. В нем присутствуют начальное (Min. rate) и максимальное количество лучей (Max. rate), испускаемых в пиксел. Счет так же, как и в случае алгоритма Fixed, ведется квадратами значений. Отрицательные значения означают, что лучи при рендеринге испускаются не в каждый пиксел, а через 2, 4 и т. д. пиксела, этот процесс получил название "undersampling". В отличие от mental ray, кроме порога по цвету (Color Threshold — Clr thresh), имеется дополнительный параметр — порог срабатывания по разности нормалей между поверхностями (Normal Threshold — Nrm thresh), который может помочь при рендеринге неконтрастных по цвету изображений. Принцип тот же самый — чем меньше пороги, тем чаще запускается процесс уточнения, и заканчивается либо при достижении пороговых значений, либо значения Max. rate. Флажок Object outline (обводить объекты) всегда запускает антиалиасинг с максимальным числом лучей на границах объектов. Применение этого эффекта требует осторожности, т. к. результат не всегда выглядит натурально. Флажок Randomize samples (случайное распределение образцов) аналогичен флажку Jitter в mental ray. Для быстрого рендеринга можно все оставить по умолчанию, или даже уменьшить значение Max. rate до 1. Для получения более качественного результата параметры Min. rate/Max. rate можно установить равными 0 и 3 соответственно, и уменьшить порог срабатывания Clr thresh до 0.05—0.03. Недостатком этого алгоритма является большое потребление памяти и неудовлетворительное время рендеринга на комплексных сценах. Третий алгоритм Adaptive DMC (адаптивный алгоритм, основанный на алгоритме Монте-Карло) (рис. 3.127, д) является наилучшим выбором по соотношению "качество изображения/время рендеринга" на комплексных сценах с большим количеством мелких деталей и эффектами размытия. Он напрямую связан со всеми процессами, имеющимися в VRay, — расчетом непрямого освещения, эффектами размытия и т. д.

Âèçóàëèçàöèÿ

681

Два параметра, Min subdivs и Max subdivs (минимальное и максимальное разбиение) определяют начальное и максимальное количество лучей, испускаемых в один пиксел. После усреднения значение сравнивается с соседними пикселами, и если оно выше значения порога срабатывания, то процесс испускания лучей продолжается. Порог срабатывания (Color Threshold — Cls thresh) по умолчанию завязан на аналогичный параметр в DMC Sampler (об этом далее). Это разумное решение, но если вы хотите увеличить качество антиалиасинга, не затрагивая остальные процессы, то вы можете снять флажок Use DMC sampler thresh. и настроить порог срабатывания индивидуально. Для предварительных расчетов вполне достаточно значений Min subdivs и Max subdivs по умолчанию. Для окончательного рендеринга можно увеличить значение Max subdivs до 6—8. Но все это очень сильно зависит от сцены, иногда значений по умолчанию бывает вполне достаточно. Для усреднения образцов можно применять фильтры, их в VRay очень много. Использовать имеет смысл новые фильтры, в самом низу списка. VRayLanczosFilter дает четкую картинку, а VRaySincFilter — сглаженную.  ЗАМЕЧАНИЕ Не используйте фильтры Blackman и Catmull-Rom — очень часто они дают неудовлетворительный результат с неприятными контурами.

Имейте в виду, что применение фильтров замедляет процесс рендеринга, поэтому при больших размерах окончательного изображения зачастую имеет смысл вообще отключить применение фильтров, сняв соответствующий флажок. В этом случае все образцы просто усредняются, как в случае фильтра Box в mental ray. Кстати, такой фильтр появился и VRay (VRayBoxFilter). В свитке V-Ray:: Environment есть возможность заменить окружение 3ds Max для освещения, отражений и преломлений (рис. 3.127, е). Для того чтобы иметь возможность сделать рендеринг на черном фоне, но при этом не потерять освещение, назначьте на канал GI Environment (skylight) (небо) карту VRaySky, а на канал Reflection/Refraction Environment (окружение для отражений и преломлений) — карту VRayHDRI с введенным и настроенным файлом. В свитке V-Ray:: Color mapping (преобразование цвета) (рис. 3.127, ж) настраивается закон пересчета изображения с широким динамическим диапазоном (HDR), получаемым при рендеринге, в изображение узкого динамического диапазона, пригодного для отображения на экране монитора, видео, печати и т. д.

682

Ãëàâà 3

Из многообразия, предлагаемого VRay, сейчас используются линейное преобразование (Linear multiply), логарифмическое, или экспоненциальное (Exponential), и преобразование по методу Рейнхарда (Reinhard). При линейном преобразовании (рис. 3.127, ж) используются два множителя, для черной и белой точки, Dark multiplier и Bright multiplier. Для осветления темных участков увеличивают параметр Dark multiplier, а для уменьшения пересветов уменьшают Bright multiplier. В результате теряется контрастность. Но в случае "классического освещения", т. е. когда свет настроен в диапазоне от 0 до 1, и использования гамма-коррекции этот метод вполне приемлем. При экспоненциальном преобразовании легко "победить" яркие пересвеченные области, но "плывут" цвета текстур, и изображение так же получается неконтрастным. Преобразование по методу Reinhard является лучшим решением, позволяющим одновременно сохранить контрастность в темных и средних тонах и эффективно бороться с пересветами (рис. 3.127, з). Значение Multiplier определяет общий коэффициент пересчета HDR в LDR. До значения Burn value преобразование ведется по линейному закону, что хорошо для сохранения контраста и цветов текстур. После этого значения преобразование ведется по "экспоненте", что позволяет легко побороть пересветы. Нормальные значения этого параметра лежат в пределах 0.5—0.8, но иногда можно использовать и значения больше единицы для достижения повышенного контраста. При этом в большинстве случаев нужно уменьшать значение Multiplier.

а Рис. 3.127, а. Настройки VRay. Вкладка VRay

Âèçóàëèçàöèÿ

683

б

в

г

д

е

ж Рис. 3.127, б—ж. Настройки VRay. Вкладка VRay

684

Ãëàâà 3

з Рис. 3.127, з. Настройки VRay. Вкладка VRay

Какой бы вы не использовали метод преобразования, значение Gamma при окончательном рендеринге нужно устанавливать именно здесь, объяснение этому дается далее. Чтобы при этом не происходило двойной гаммакоррекции, в глобальных установках 3ds Max значение Gamma устанавливается равным 1, значение на входе — 2.2, а на выходе — так же 1, т. к. VRay устанавливает это значение помимо 3ds Max. При выводе в VRay Framе Buffer первое условие не является обязательным, можно оставить значение гаммы в 3ds Max равным 2.2, оно будет проигнорировано. Флажок Sub-pixel mapping приводит к преобразованию на уровне образцов антиалиасинга, а не пиксела. Это немного замедляет процесс рендеринга и, по утверждению разработчиков, дает несколько более темный результат, но зато позволяет сглаживать яркие блики. Флажок Clamp output (отсекать верхние значения выходного изображения) в принудительном порядке отсекает значения больше, чем установлено параметром Clamp level (уровень отсечки, обычно 1). Использовать этот флажок мы не рекомендуем, хотя существует и обратное мнение, т. к. при включенном "клэмпинге" так же яркие освещенные места и блики сглаживаются лучше. Ни в коем случае не используйте этот флажок при рендеринге в формат с большим динамическим диапазоном! Снятие флажка Affect background (действовать за фон) приводит к тому, что при рендеринге фон не изменяется. Но имейте в виду, что в отражениях и преломлениях используется откорректированное изображение. А вот флажок Don't affect colors (adaptation onlу) (не оказывать влияния на цвета) требует дополнительного обсуждения. Дело в том, что все пороговые значения (Thresholds), используемые для антиалиасинга, фильтрации глобального освещения и т. д., рассчитываются по изображению, уже подвергнутому преобразованию цвета. При рендеринге в формат с большим динамическим диапазоном, как правило, не используют преобразование цвета. Но при этом при последующей цветокоррекции вы можете получить нежелательные шумы в затененных областях. Поэтому проводится "виртуальное" преобразование цвета, не влияющее на окончательное изображение, соответствующее дальнейшей предполагаемой цветокоррекции. По этой же причине и значение гаммы устанавливается здесь, а не в глобальных настройках 3ds Max.

Âèçóàëèçàöèÿ

685

 ЗАМЕЧАНИЕ Настройки VRay Frame Buffer описаны далее, в разд. "Использование VRay Frame buffer (экранный буфер VRay)", посвященном поэлементному рендерингу.

Âêëàäêà Indirect Illumination (íåïðÿìîå îñâåùåíèå) В этой вкладке настраиваются процессы, относящиеся к расчету непрямого, или глобального освещения. В свитке V-Ray:: Indirect illumination (GI) определяются глобальные настройки и выбираются алгоритмы для расчета первичного и вторичного отскоков (рис. 3.128, а). Флажки в группе GI caustics (каустика ГО) позволяют генерировать глобальное освещение не только с учетом диффузной компоненты (если оба флажка сняты), но и зеркальности и прозрачности. Следует иметь в виду, что достичь хорошего вида такой каустики можно только при очень качественных настройках, в противном случае вы получите грязные пятна. Особенно это критично для зеркальных поверхностей (а зеркальной считается любая поверхность, в материале которой присутствует ненулевое значение Reflection, даже если отсутствует трассировка отражений). Поэтому флажок Reflectivе, как правило, снимают. С рефрактивной каустикой все не так однозначно, но если есть возможность заменить ее полупрозрачными тенями, то лучше ее не использовать, т. к. в любом случае расчет занимает больше времени. В группе Post-processing (постобработка) устанавливаются параметры, изменяющие цветовую насыщенность (Saturation) и контрастность (Contrast и Contrast base) глобального освещения. Часто для того, чтобы обесцветить глобальное освещение с целью уменьшить взаимное перекрашивание объектов (Color Bleed, например, потолка в цвет пола), или синеву от неба, уменьшают параметр Saturation. На наш взгляд, это радикальный, но не самый лучший способ, т. к. это влияет на все непрямое освещение. Лучше использовать настройки материалов и объектов. В группах Primary bounces и Secondary bounces (первичный и вторичный отскоки) выбираются алгоритмы и устанавливаются коэффициенты влияния (Multiplier). В большинстве случаев не стоит менять значения по умолчанию (1.0). На первичный отскок можно назначить четыре алгоритма — Irradiance map (карта освещенности), Light cache ("хранилище света"), Brute force ("грубая сила") и Global photon map (глобальная карта фотонов). На вторичный — все то же самое, за исключением Irradiance map. Из этого разнообразия рассмотрим только актуальное в нашем случае решение, дающее приемлемое качество за приемлемое время — Irradiance map на

686

Ãëàâà 3

первичный отскок, и Brute force или Light cache — на вторичный. Все эти алгоритмы относятся к алгоритмам сбора. Настройки карты освещенности расположены в свитке V-Ray:: Irradiance map (рис. 3.128, б). Как видите, здесь много всего. Из этого "богатства" мы опишем только самое необходимое. Дело в том, что за почти 8-летнюю историю VRay много всего было предложено и реализовано, и не все сейчас актуально. При выборе на первичный отскок Irradiance map появляется соответствующий свиток с его настройками (рис. 3.128, б). Прекрасно понимая, что настройка "с нуля" — занятие неблагодарное, Владо предлагает несколько предустановок в группе Built-in presets. Для черновых расчетов подойдут настройки Very Low и Low, для окончательных расчетов статичного изображения подойдет Medium. Если же все вы решите настроить этот процесс самостоятельно, то переключайтесь в настройки Custom (по выбору) и регулируйте значения параметров в группе Basic parameters (основные параметры). Алгоритм расчета карты освещенности в общем случае адаптивный и многопроходный. При первом проходе лучи, определяющие освещенность, посылаются с частотой, определяемой параметром Min rate. Если это значение отрицательное, то лучи посылаются не в каждый пиксел, а через несколько пикселов. Для определения необходимости запуска дальнейшего уточнения разность значений соседних образцов сравнивается с пороговыми значениями по цвету (Color Threshold — Clr thresh), углами между нормалями (Normal Threshold — Nrm thresh) и расстоянием между поверхностями (Distance Threshold — Dist thresh). Если разность больше какого-либо порога, то запускается следующий проход и т. д. до тех пор, пока не будут достигнуты пороговые значения или максимальное значение Max rate. Если значение Max rate также отрицательное, то карта получается меньшего размера, чем окончательное изображение. Важными параметрами являются параметры Hemisphere Subdivs — HSph. subdivs (разбиение полусферы), определяющее количество лучей, на которое разбивается первичный луч и Interpolation Samples — Interp. samples, определяющих количество образцов, подлежащих усреднению. Чтобы получить более точное распределение света, особенно в "узких" местах (например, у бордюрного камня или плинтусов), это значение увеличивают до 80—100. Увеличение второго параметра ведет к более размытой карте освещенности. На практике при увеличении Hemisphere Subdivs — HSph. subdivs его тоже увеличивают, но не пропорционально, в нашем случае, до 30. Как не парадоксально, но при увеличении параметра Max rate до 2, для ускорения расчета не в ущерб качеству можно, наоборот, уменьшить HSph.

Âèçóàëèçàöèÿ

687

subdivs до 30—40. Правда, смысла в такой большой (в четыре раза больше самого кадра) карте освещенности особого нет. Параметр Interp. frames (количество кадров для интерполяции) используется при рендеринге анимации объектов и обсуждается далее. Флажки в группе Options — Show calc. phase (показывать процесс расчета) и Show direct light (показывать свет от источников света) позволяют контролировать процесс. Параметры в группе Detail enhancement (Повышение деталей) включают и управляют процессом, позволяющим добиться проработки мелких деталей. Этот процесс похож на Ambient Occlusion в mental ray, но реализован несколько по-другому. Используется механизм Brute Force (грубая сила), что дает кроме затенения еще и перенос цвета. При окончательном рендеринге с поверхности объектов испускаются лучи на расстояние, заданное параметром Radius (радиус), и если на пути возникает препятствие, лучи переотражаются. Радиус определяется либо в пространстве экрана (параметр Scale равен Screen) в пикселах, либо в пространстве сцены (World) в единицах измерения сцены. Чем больше значение радиусов, тем более точным является процесс, тем дольше расчет. Количество образцов определяется количеством Hemisphere Subdivs — HSph. subdivs, помноженным на параметр Subdivs mult. На практике этот метод применяется только в крайнем случае, т. к. очень увеличивает время расчета. В группе Advanced options настраиваются специфические параметры, менять их без необходимости не стоит. Тип интерполяции (Interpolation type) установлен по умолчанию в положение Least squares fit (метод наименьших квадратов) и позволяет получать гладкое решение, но при этом достаточно медленный. Метод Weighted average (взвешенное усреднение) более быстрый, т. к. более простой, но может давать "пятнистость". Метод Delone triangulation (триангуляция Делоне), в отличие от остальных методов, не размывает карту, что дает возможность получить более четкое и точное решение, но при этом возможно появление шумов. Бороться с ними можно увеличением количества образцов в параметре HSph. subdivs, или уменьшением порогового значения Noise threshold (порог по шуму) в свитке V-Ray:: DMC Sampler (вкладка Settings). В группе Sample lookup (поиск образцов) определяется метод отбора образцов для последующей интерполяции. Не вдаваясь в подробности, метод, установленный по умолчанию (Density based, основанный на плотности), можно считать универсальным во многих случаях. В некоторых случаях для увеличения скорости используют метод Overlapping (перекрытие) как более быстрый.

688

Ãëàâà 3

а

б

в Рис. 3.128, а—в. Настройки VRay. Вкладка Indirect Illumination

Âèçóàëèçàöèÿ

689

г Рис. 3.128, г. Настройки VRay. Вкладка Indirect Illumination

Настройки типа интерполяции и поиска образцов используются во время рендеринга, т. е. после расчета карты освещенности. Поэтому их можно настраивать, используя рассчитанную и сохраненную карту. В группе Mode (режим) задается режим использования карты освещенности. При использовании Single frame (один кадр) карта освещенности рассчитывается для каждого кадра заново. Этот режим не подходит при рендеринге анимации, ни простом пролете камерой, ни анимации объектов, т. к. требует очень много времени из-за необходимости использования очень большого количества образцов, чтобы избежать эффекта мерцания и шума. Для создания пролета или облета камеры используется режим Multiframe incremental (покадровое приращение). В этом случае происходит досчитывание карты освещенности при необходимости, что ускоряет процесс и уменьшает мерцание. Режимы Add to current map и Incremental add to current map делают примерно одно и то же — добавляют информацию к карте, сохраненной в памяти. Но если в первом случае каждая новая карта рассчитывается заново, то во втором — только по необходимости.

690

Ãëàâà 3

Все эти карты можно сохранить в файл и использовать в дальнейшем, используя режим From file (из файла). Таким образом, при рендеринге пролета камеры вы можете заранее записать карту освещенности, причем при медленном движении камеры не в каждом кадре, а через 5, 10 или больше кадров, и после использовать данные из файла. Вы можете так же применить этот прием в том случае, если вам необходимо получить большое количество статических изображений примерно с одного ракурса. При рендеринге анимации объектов в новой версии VRay добавлено два режима — Animation (рrepass) и Animation (rendering) (предварительный расчет и рендеринг). Сначала вы запускаете Animation (рrepass), при котором создается последовательность файлов — карт освещенности для каждого кадра. При окончательном рендеринге эти файлы загружаются и интерполируются. Сколько кадров использовать для интерполяции задается параметром Interp. frames в группе Basic parameters. В группе On render end (в конце рендеринга) есть возможность задать автоматическое сохранение и использование карты освещенности. Имейте в виду, что не все эти режимы возможно использовать при распределенном рендеринге, как при использовании Backburner, так и собственного механизма VRay. Можно использовать только режимы Single frame (и как его вариант, Bucket mode), From file и Animation. При этом файлы с картами освещенности должны быть доступны для всех компьютеров в сети. Подробнее об этом вы можете узнать в руководстве пользователя VRay (http:// www.spot3d.com). При выборе на первичный или вторичный отскок режима Brute force, появляется соответствующий свиток V-Ray:: Brute force GI (рис. 3.128, в). Как видите, настройки очень просты. Параметр Subdivs определяет количество вторичных лучей, а Secondary bounces — количество вторичных отскоков. В нашем случае можно увеличить первый параметр до 10—12 и уменьшить второй до 1—2. Имейте в виду, что при использовании на первичном отскоке Irradiance map информация, получаемая от вторичных отскоков, записывается в карту освещенности. Хотя для экстерьерных сцен принята связка Irradiance map + Brute force, вы можете так же поэкспериментировать с другим механизмом, Light cache (дословно "хранилище света"). Свиток с его настройками появляется при выборе этого алгоритма на первичный или вторичный отскок (рис. 3.128, г). Смысл этого процесса несколько отличается от предыдущих и является аналогом трассировки фотонов, с той лишь разницей, что лучи испускаются из камеры, а не из источников света. При попадании на поверхность каждый луч не разбивается на множество лучей, а трассируется в случайном направлении.

Âèçóàëèçàöèÿ

691

Количество лучей задается параметром Subdivs. Не забывайте, что истинное количество лучей равно этому числу в квадрате, т. е. значение Subdivs равное 1000 дает 1 000 000 лучей. Шаг, с которым выбираются точки для последующего сбора, задается параметром Sample size (размер образца). В пространстве экрана (Scale равен Screen) этот размер задается в долях площади экрана, в пространстве сцены (World) — в единицах измерения сцены. Второй способ дает лучшие результаты в интерьерах, в экстерьерных выгоднее первый вариант, т. к. при больших пространствах время расчета увеличивается во много раз. Параметр Number of passes (количество проходов) определяет количество проходов расчета Light cache. При этом лучший с точки зрения результат достигается при одном проходе. Несколько же проходов позволяют оптимально распределить процесс расчета Light cache по процессорам. Таким образом, если вы имеете двухъядерный процессор с технологией гипертрединг, т. е. виртуально 4 процессора, имеет смысл установить это значение равное 4. Для однопроцессорной системы без гипертрединга установите это значение в 1. Установка флажка Store direct light (сохранять прямой свет) приводит к тому, что Light cache записывает и интерполирует прямой свет. Если на первичный отскок при этом назначена Irradiace map или Brute force, то для своих расчетов они берут не прямой свет от источников, а свет из Light cache. Это дает более сглаженную картину непрямого освещения. Установка флажка Adaptive tracing (адаптивная трассировка) перераспределяет большее количество лучей Light cache в светлые области, т. е. освещенные прямыми источниками света, уменьшая тем самым шум в освещенных местах. В группе Reconstruction parameters (параметры восстановления) устанавливаются настройки фильтрации Light cache. Возможна фильтрация как до, так и во время рендеринга или построения Irradiance map. Обычно используется или то, или другое, хотя совместное применение возможно и дает гладкую картинку. При установке флажка Pre-filter, как следует из названия, фильтрация проводится сразу после создания или загрузки Light cache простым усреднением образцов. Используя большое значение этого параметра (30—50), вы можете позволить себе уменьшить параметр Subdivs до 400—600 и при этом получить приемлемый результат в связке с Irradiance map. Параметр Filter определяет алгоритм и настройки фильтрации при рендеринге или при создании Irradiance map. При значении None фильтрация не производится. Если Light cache применяется в связке с Irradiancе map и исполь-

692

Ãëàâà 3

зован Pre-filter, то результат, как правило, вполне удовлетворителен по качеству и быстр. При использовании Nearest (ближайшие) усредняется заданное параметром Interp. samples количество образцов. При использовании Light cache для первичного отскока при применении этого фильтра получается неравномерная "сетчатая" картинка. Но для вторичного отскока данный алгоритм вполне применим. При применении Fixed (фиксированной фильтрации) параметр Filter Size определяет размер площадки, с которой будут собираться образцы. Обычно размер площадки устанавливается в 2—4 раза больше размера образца. При этом фильтрация проводится в том же пространстве, что и расчет (World или Screen). Флажок Use light cache for glossy rays (использовать Light cache для расчета эффектов размытия) глобально устанавливает режим, при котором эффекты размытия рассчитываются на этапе создания Light cache, что ускоряет процесс создания карты освещенности и рендеринг в целом. Но при этом требуется большое значение Subdivs. При малом значении этого параметра эффекты размытия на окончательной картинке могут выглядеть неудовлетворительно, напоминая мозаику. Поэтому не стоит использовать этот параметр, особенно на открытых пространствах — выигрыш по скорости почти незаметен. Да и сам Light cachе, как указывалось ранее, не является лучшим решением для рендеринга сцен наподобие нашей. Имеется несколько режимов расчета (выбирается в выпадающем списке Mode). Важными являются два первых. Single frame (один кадр), как следует их названия, применяется для расчета в одном кадре. Fly-through (пролет) используется при анимации пролета или поворота камеры. При этом Light cache создается один раз в самом начале для всего пространства, захватываемого камерой во время анимации. При этом желательно, чтобы масштаб был установлен в положение World. Карту Light cache также можно сохранить в файл, но смысл в этом есть только в том случае, когда вы используете расчет ее для первичного отскока, или если для первичного отскока используется Brute force. При использовании Irradiance map и сохранении ее в файл результат Light cache записывается в нее, поэтому сохранять ее нет смысла, за исключением анимации.

Âêëàäêà Settings (íàñòðîéêè) В свитке V-Ray:: DMC Sampler (рис. 3.129) настраиваются параметры, которые влияют на качество и скорость всех процессов, связанных с использова-

Âèçóàëèçàöèÿ

693

нием сэмплирования (обработки образцов): глобальное освещение, размытые отражения и преломления, мягкие тени, антиалиасинг по методу DMC и т. п. Значение Adaptive amount (уровень адаптивности) определяет степень адаптивности алгоритма. Если это значение равно 0, то адаптивность не используется, и используется максимально достижимое количество образцов, если 1 — то адаптивный алгоритм "включается" сразу по достижении значения, установленного в параметре Min samples (минимальное количество образцов). Параметр Min samples устанавливает количество образцов, которое обязательно будет рассчитано до запуска адаптивного алгоритма. Чем больше это значение, тем, скорее всего, медленнее будет расчет на комплексных сценах. Но и при малом значении также может оказаться, что время возрастает, т. к. адаптивный алгоритм требует времени для расчетов, либо вы не получите нужного качества. Значение Noise threshold (порог по шуму) определяет порог разницы значений образцов, при котором делается заключение, что процесс нужно прекратить. При значении, равном 0, процесс перестает быть адаптивным, и время увеличивается, при 1 — процесс заканчивается при достижении значения Min samples, т. е. тоже не адаптивен. Хорошие результаты достигаются при значениях 0.005—0.01. Параметр Global subdivs multiplier (глобальный множитель для разбиений) позволяет увеличить или уменьшить количество разбиений для всех элементов сцены, использующих эти параметры (размытые отражения и преломления, мягкие тени и т. д.). Старайтесь не увлекаться этим, особенно в сторону увеличения! Как правило, в вашей сцене есть всего один-два важных элемента (в нашей сцене — тень от солнца — и, пожалуй, все...), у которых нужно увеличить количество разбиений, и сделать это лучше локально, непосредственно в его настройках. А вот уменьшать этот параметр с целью добиться высокой скорости при предварительных расчетах не возбраняется. Флажок Time independent (независимость от времени) несет тот же смысл, что и флажок Lock samples (фиксировать образцы) в mental ray. Список Path sampler (генератор образцов) определяет алгоритм генерации образцов. В VRay сейчас используется метод Шлика (Schlick sampling), остальные методы, оставленные для совместимости в предыдущих версиях, больше не поддерживаются. Свиток V-Ray:: System включает в себя много всего полезного и специфичного, причем настолько, что лучше не стоит что-то изменять без необходимости. Параметры трассировщика лучей в группе Raycaster params определяют глубину и размер дерева BSP.

694

Ãëàâà 3

Уменьшение параметра Max. tree depth (максимальная глубина построения дерева) уменьшает потребление оперативной памяти за счет увеличения времени. Параметр Min. leaf size (минимальный размер листа дерева) определяет минимальный размер объектов, требующих разбиения. При установке по умолчанию, 0.0, этот размер определяется автоматически, исходя из размеров сцены. В некоторых случаях (например, некорректном отображении листвы на деревьях, т. е. большом количестве маленьких объектов) может потребоваться увеличение этого параметра. Параметр Face/level coefficient — Face/level coef. (отношение количества треугольников к глубине) управляет количеством треугольников в листе. При уменьшении этого параметра скорость рендеринга увеличивается за счет увеличения потребления оперативной памяти. Параметр Default geometry (обработка геометрии по умолчанию) отвечает за распределение памяти и имеет три варианта. При использовании Static (статическое распределение) вся геометрия загружается в оперативную память. При использовании Dynamic (динамическое) геометрия загружается по мере надобности, а при достижении предела Dynamic memory limit происходит выгрузка из памяти неиспользуемой геометрии. Новая опция Auto (автоматическое распределение) является предпочтительным решением, т. к. в этом случае VRay сам разбирается, какие объекты грузить статически, какие динамически, в зависимости от количества полигонов и зависимых копий (Instances). Остальное в этом свитке не очень важно, либо обсуждалось ранее. Отметим лишь некоторые флажки и параметры. Флажок Show window (показывать окно) в группе VRay log (журнал) можно снять, если вам не нравится, что это окно появляется при рендеринге. Можно установить флажок Check for missing files (проверять на пропущенные файлы). В этом случае будет появляться предупреждение, если какие-то текстуры или другие внешние файлы отсутствуют. Можно также установить флажок Low thread priority (низкий приоритет), это даст вам возможность при рендеринге делать что-нибудь еще, например, общаться по ICQ без мучительных задержек. Правда, время рендеринга увеличится. Кнопки Object settings и Light settings (свойства объектов и источников света) вызывают диалоговые окна со специфическими настройками VRay для объектов и источников света (рис. 3.129, б и в). Эти же диалоговые окна вызываются из квадрупольного меню как VRay Properies в зависимости от того, что выделено — геометрический объект или источник света. Не путайте с Object Properies 3ds Max!

Âèçóàëèçàöèÿ

695

В окне, вызываемом с помощью кнопки Object settings, настраиваются специфические для VRay настройки. Интерес представляют флажки Generate GI и Receive GI (генерировать или принимать глобальное освещение). Для оптимизации расчетов можно отключить геренерацию глобального освещения от травы и деревьев. Настройки в окне, вызываемом с помощью кнопки Light settings, влияют на интенсивность и качество фотонного трейсинга (для каустики и глобального освещения), в нашем случае они не используются. Имеется возможность сохранять и загружать предустановки (Presets) (рис. 3.129, г). Наконец-то это работает! Параметры в свитке V-Ray:: Default displacement (см. рис. 3.129, а) подробно обсуждались ранее.

а Рис. 3.129, а. Настройки VRay. Вкладка Settings

696

Ãëàâà 3

б

в

г Рис. 3.129, б—г. Настройки VRay. Вкладка Settings

Âèçóàëèçàöèÿ

697

Íàñòðîéêè ãàììû 3ds Max è VRay При использовании VRay есть некоторые нюансы по настройке гаммы. Как указывалось ранее, значение гаммы для получения наилучшего результата нужно устанавливать в преобразовании цвета (Color Mapping). Если вы не используете VRay Frame buffer, т. е. проводите рендеринг в окно рендеринга 3ds Max или на диск, то гамма в системе настраивается так, как показано на рис. 3.130. Такие настройки исключают выбеливание в окне рендеринга и файле, связанное с двойным применением гаммы. Главное меню  Customize  Preferences  вкладка Gamma and LUT

Не обращайте внимание на изменение цветов в редакторе материалов. Это естественно, т. к. для рендеринга образцов в слотах не используется Color Mapping. При использовании VRay Frame buffer значение системной гаммы игнорируется, поэтому такие настройки подходят и для этого случая.

Рис. 3.130. Настройка гаммы для окончательного рендеринга

Èñïîëüçîâàíèå VRay Frame buffer (ýêðàííûé áóôåð VRay) В VRay встроен свой собственный экранный буфер, который предоставляет дополнительные возможности по управлению окончательным изображением и выводу дополнительных каналов. Вкладка VRay  Свиток VRay:: Frame buffer  установите флажок Enable built-in Frame Buffer

При рендеринге откроется окно V-Ray frame buffer, показанное на рис. 3.131, а. Давайте разбираться. В верхней части расположены управляющие элементы, схожие по назначению со стандартными. Интересной является кнопка Track mouse while rendering (отслеживать положение мыши во время рендеринга) (стрелка 1 на

698

Ãëàâà 3

рис. 3.131, а). При этом рендеринг будет выполнен над тем участком, на который указывает курсор мыши. Щелкать по нему не надо, достаточно просто водить. При нажатии на кнопку Show Correction Control (показывать элементы управления) (стрелка 2 на рис. 3.131, а) открывается окно управления цветом. Дело в том, что в VRay Frame buffer изображение хранится в формате с большим динамическим диапазоном, и вы можете корректировать его в больших пределах. При использовании этого механизма значительно уменьшается важность настроек Color Mapping, т. к. в VRay Frame buffer вы визуально можете корректировать все огрехи, связанные с пересветами и недосветами. Вы можете провести цветокоррекцию перед сохранением тремя разными способами или комбинацией их — Exposition (экспозиция), Levels (уровни) и Curves (кривые) (стрелки 3, 4, 5). На рисунке показан пример повышения контраста кривыми и уменьшение общей яркости при помощи экспозиции. Информацию о цвете можно получить, щелкнув правой кнопкой мыши по изображению (стрелка 6). Вы можете видеть участки, выходящие за допустимые пределы, нажав на кнопку View Clamped Color (стрелка 7 на рис. 3.131, а). Выглядит это так, как показано на рис. 3.131, б. После закрытия окна все настройки сохраняются, и вы можете проводить рендеринг непосредственно в файл. При этом VRay Framе buffer позволяет значительно сэкономить оперативную память, если настроить его так, как показано на рис. 3.131, в.  ПОЯСНЕНИЕ Установите разрешение изображения независимым от общих настроек. В общих настройках (вкладка Common) установите размер изображения очень маленьким и отключите отображение окна (выделенные параметры на рис. 3.131, г). Дело в том, что даже если окно 3ds Max не выводится и не используется, то память под него резервируется, хоть и в половинном объеме. В параметрах вывода задайте имя файла. Как видите, можно выводить дополнительные каналы. Что это такое, зачем это нужно и как это делать, рассказано далее.

Если с памятью совсем плохо, то вы можете воспользоваться рендерингом без отображения окна (рис. 3.131, д). При этом есть возможность сохранения только в два формата — VRay RAW и OpenEXR. Первый представляет собой слепок памяти VRay. Использовать его в дальнейшем можно сконвертировав соответствующей утилитой. Для того чтобы использовать второй формат, нужно задать имя файла с расширением ".exr".

Âèçóàëèçàöèÿ

699

а

б Рис. 3.131, а и б. Использование VRay Frame buffer

700

Ãëàâà 3

в

г

д Рис. 3.131, в—д. Использование VRay Frame buffer

 ЗАМЕЧАНИЕ Конечно, это "опции для взрослых", но мы очень надеемся, что вы уже дошли до этого состояния.

Âèçóàëèçàöèÿ

701

Èñïîëüçîâàíèå VRayProxy При использовании VRay значительно сэкономить потребление оперативной памяти и ускорить рендеринг можно, используя специальный объект VRayProxy для повторяющихся объектов (кустов, деревьев и т. д.). При создании такого объекта геометрия из 3ds Max записывается в файл формата VRay Mesh, который при запуске рендеринга не требует преобразования, а передается напрямую. Процесс создания объекта показан на рис. 3.132. Квадрупольное меню  V-Ray Mesh Export

В результате в 3ds Max показывается упрощенное изображение объекта. После преобразования такой объект размножается с применением метода Instance.

а Рис. 3.132, а. Создание VRayProxy

702

Ãëàâà 3

б

в Рис. 3.132, б и в. Создание VRayProxy

Следует учитывать следующее.  В файл VRay Mesh не записывается материал, поэтому не забудьте пере-

нести его в редактор материалов до конвертирования, иначе вы его потеряете.  При создании VRayProxy точка привязки устанавливается в начало коор-

динат. Поэтому после создания VRayProxy переместите точку привязки в нужное место.  К VRayProxy нельзя применять никакие модификаторы и нельзя редактировать на низком уровне. Несмотря на то, что возможность такая есть, и в

Âèçóàëèçàöèÿ

703

окне проекции что-то отрабатывается, на самом деле вы не получите нужного результата.  Вся анимация объекта будет потеряна. В самое ближайшее время обещано появление анимируемого VRayProxy, но пока есть то, что есть. Предупреждаем вас, что не стоит увлекаться этим процессом и переводить в VRay Proxy Mesh всю сцену. Это совершенно не рационально. Так же не стоит делать различные хитрые комбинации, например, инстансировать объекты, объединять их в группу и уже группу переводить в V-Ray Mesh (такой прецедент имел место). По мнению профессионалов, это уже "клинический случай" © Алексей Дук.

Äîïîëíèòåëüíûå âîçìîæíîñòè ðåíäåðèíãà В этом разделе обсуждаются дополнительные возможности 3ds Max по повышению эффективности рендеринга. Если вы используете 3ds Max от случаю к случаю, то вам они могут и не пригодиться. Но если вы заняты в более или менее "поточном производстве", рассматриваемые средства могут ускорить техпроцесс.

Ïîýëåìåíòíûé ðåíäåðèíã è èñïîëüçîâàíèå åãî ðåçóëüòàòîâ â ïîñòîáðàáîòêå Одним из самых мощных инструментов, позволяющих оптимизировать процесс получения фотореалистичных и красивых изображений и роликов, является поэлементный рендеринг (Render Elements). Что это такое? При рендеринге окончательное изображение создается комбинацией нескольких слоев, например, отражения, преломления, теней и т. д., которые просчитываются отдельно. Возможность получить эти слои по отдельности и дать пользователю распорядиться ими по своему усмотрению — это как раз и есть поэлементный рендеринг. На рис. 3.133 показаны элементы, которые можно получить при рендеринге стандартным рендерером и mental ray (рис. 3.133, а) и VRay (рис. 3.133, б). Условно элементы можно разделить на информативные (отмечены серым) и вспомогательные. К первым относятся, например, Diffuse, Reflection и т. д. — т. е. элементы, принимающие участие в формировании изображения непосредственно. Ко вторым — различные маски (ObjectID, Matte и т. д.) и специальные каналы, такие как Z Depth или Velocity. Теоретически и практически, вы можете провести рендеринг элементов по отдельности и собрать изображение в Photoshop. Но в большинстве случаев в этом нет такой необходимости. Мы приведем два простых примера использования элементов, а вы сделаете надлежащие выводы самостоятельно.

704

Ãëàâà 3

а

б

Рис. 3.133. Доступные элементы для рендеринга mental ray (а) и VRay (б)

 ЗАМЕЧАНИЕ Если вы хотите поупражняться, то на прилагаемом диске в папке Elements вы можете найти нужные материалы. Обращаем ваше внимание на то, что они сохранены в формате TIFF 16 бит на канал, и могут не открываться некоторыми редакторами растровой графики и не отображаться некоторыми программами просмотра, например, старыми версиями ACDSee. И извиняемся за допущенные ошибки при выводе тех или иных элементов, достаточно сложно вести сразу два проекта и не ошибиться. Уверены, что у вас получится лучше!

На рис. 3.134, а и цветной вкладке (см. ЦВ9, вверху) показан результат рендеринга. Конечно, такое изображение стоит доработать. Хочется, чтобы вода в бассейне была голубой и более блестящей, стоит поработать также с цветом растительности и крыши. С материалом травы мы явно перемудрили. Небольшое размытие и осветление заднего плана также не помешают. Все эти проблемы можно решить, просто аккуратно порисовав по картинке, но мы облегчим эту задачу.

Âèçóàëèçàöèÿ

705

На рис. 3.134, б показан набор выводимых элементов, как видите, их немного, всего два. Мы выводим только маски по объектам и глубину (Z Depth).  ПОЯСНЕНИЕ Элементы добавляются из списка кнопкой Add. Если уже установлено сохранение в файл во вкладке Common, имена присваиваются автоматически. Необходимые цветные маски по контуру объектов можно получить, выведя элементы Object ID и Material ID. В параметрах объектов и материалов нужно установить ненулевые значения. Также можно использовать для этих целей элемент Matte. Элемент Z Depth (глубина) позволяет записать глубину сцены, т. е. расстояние от камеры, в виде черно-белого градиента. Этот элемент используется обычно в качестве маски. Он имеет дополнительные настройки, определяющие пределы, в которых строится градиент (Z Min/Z Max). Для их определения можно использовать объект Tape или воспользоваться параметром в настройках камеры, который показывает расстояние до цели. Полезно также включить фильтрацию, это имеет смысл делать для всех элементов.

 ЗАМЕЧАНИЕ При использовании mental ray и шейдера mia_exposure_simple мы столкнулись с неприятной проблемой. Несмотря на то, что окончательное изображение получается прекрасно, на информативные элементы (Diffuse, Reflection, Refraction и т. д.) действие этого шейдера не распространяется, и они получаются пересвеченными. Такая же ситуация и в 3ds Max 2008 с фотографической экспозицией. Для решения этой проблемы можно использовать стандартное логарифмическое управление экспозицией (Logarithmic Exposure Control Parameters), отключив использование шейдера mia_exposure_simple, либо используйте рендеринг в формат с большим динамическим диапазоном, например, OpenEXR. Но если вы выводите только маски и Z Depth, то эти элементы выводятся нормально при любых условиях. Очень хочется надеяться, что в новой версии 3ds Max эта проблема будет преодолена.

На рис. 3.134, в и цветной вкладке (см. ЦВ9, посередине) показаны полученные элементы в уменьшенном виде. Кроме этого, мы совершенно случайно провели рендеринг без заднего двора. Чтобы не проводить повторный расчет, мы сделали его рендеринг отдельно вместе с деревьями, чтобы сохранить тени. Не составит большого труда поместить его на нужное место, так все необходимые маски в наличии. Хорошим решением для дальнейшей обработки является создание изображения с так называемым "пассом Ambient Occlusion". Чтобы его получить, примените ко всем объектам материал, показанный на рис. 3.134, г.

706

Ãëàâà 3

а

б Рис. 3.134, а и б. Подготовка к поэлементному рендерингу (а, б)

Âèçóàëèçàöèÿ

707

в

г Рис. 3.134, в и г. Набор элементов и дополнительных изображений (в), настройки шейдера Ambient Occlusion (г)

 ПОЯСНЕНИЕ Создайте материал mental ray. Этот материал сам по себе не является аналогом обычного материала. Он служит "контейнером" для шейдеров mental ray. На канал Surface (поверхность) назначьте шейдер с замысловатым названием Ambient/Reflective Occlusion (Перекрытие, "окклюзия" заполняющего света и отражений). При рендеринге с поверхности объектов, на которые назначен такой материал, испускаются лучи. Если они встречают преграду, то точка, из которой были испущены лучи, окрашивается в цвет Dark с интенсивностью, зависящей от расстояния до преграды. На объекты не оказывает влияние освещение.

708

Ãëàâà 3 В настройках шейдера уменьшите значение разброса лучей (параметр Spread) и ограничьте их длину (Max distance). Увеличьте количество образцов (Samples) для преодоления зернистости. Отключите расчет глобального освещения (Final gather) и управление экспозицией.

Что с ними делать дальше? Загружать в Photoshop и использовать. Например, так, как показано на рис. 3.135. Маска расположена в нижних слоях. Используя "волшебную палочку", легко выделить нужный элемент и поработать с цветом в нужном слое (рис. 3.135, а). При этом в сложных случаях, например, при выделении кустов, используйте Refine Edges (уточнение контуров) — очень удобный интерактивный инструмент в Adobe Photoshop CS3 (рис. 3.135, б).

а Рис. 3.135, а. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 1)

Âèçóàëèçàöèÿ

709

б

в Рис. 3.135, б и в. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 1)

710

Ãëàâà 3

г

д Рис. 3.135, г и д. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 1)

Âèçóàëèçàöèÿ

711

е

ж Рис. 3.135, е и ж. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 1)

712

Ãëàâà 3

Элемент с Ambient Occlusion, призванный скомпенсировать недостаточные настройки глобального освещения, накладывается сверху методом Multiply (рис. 3.135, в). Его можно немного размыть. От нежелательного влияния на стекла и воду можно избавиться, выделив и удалив соответствующие области в этом слое. Используя альфа-канал (вы, конечно, не забыли отметить его вывод в параметрах сохранения изображения?), легко подложить фон (рис. 3.135, г). Он был подготовлен в пакете Vue Infinity 6.5 с использованием синхронизации камер. Используя Z Depth как маску, можно получить воздушную перспективу (рис. 3.135, д). Не забудьте провести аналогичную операцию с фоном, при этом можно использовать просто градиент в качестве маски. Введя Z Depth его как дополнительный канал и применив эффект Lens Blur, можно получить эффект глубины резкости (рис. 3.135, е). Только не увлекайтесь размытием, поскольку при больших значениях вы потеряете размеры! Результат показан на рис. 3.135, ж и первой странице цветной вкладки внизу. Мы еще применили эффект объемного света из состава AutoFX Mystical Light и Glow из состава пакета плагинов DFT 55mm. При использовании VRay все очень похоже. На другом примере рассмотрим процедуру. На рис. 3.136, а и цветной вкладке (см. ЦВ10, вверху) показан результат рендеринга без какой-либо постобработки. Хотелось бы немного подправить цвета крыши, растений, усилить отражения в стеклах, оживить воду, добавить фон... Идем все тем же путем — выводим элементы. Элементов в VRay больше, некоторые из них представляют собой уже смешанные элементы (например, VRayTotalLighting представляет собой смесь освещения и диффузной компоненты), некоторые, содержащие в своем названии "Raw" (помечены цифрой 1 на рис. 3.133, б), являются чистыми. Есть некоторые отличия при настройке элементов.  Установленный флажок vrayVFB (рис. 3.136, б) приводит к тому, что эле-

менты выводятся с использованием VRay Frame Buffer. Это более экономичное с точки зрения затрат памяти решение.  Флажок color mapping позволяет включать или отключать применение

Color Mapping к элементам.  Параметр multiplier (множитель) позволяет изменять яркость элементов.

Остальные настройки индивидуальны для разных элементов. На рис. 3.136, б и в, а также цветной вкладке (см. ЦВ10, посередине) показаны элементы, которые мы вывели. В основном их смысл понятен, исключе-

Âèçóàëèçàöèÿ

713

ние составляет элемент MultiMatteElement (рис. 3.136, г). По смыслу он совпадает с элементом VRayObjectID, но, в отличие от него, фильтруется. В этом элементе можно задать три ObjectID, каждый из которых будет помечен соответствующим чистым цветом (красным, зеленым и синим). Таких элементов может быть несколько, на рисунке показан только один из них. Только не забывайте их переименовывать! Также выведен файл с Ambient Occlusion. Делается это путем назначения на все объекты материала VRayLightMaterial с картой VRayDirt (рис. 3.136, д). Настройки ее во многом похожи на настройки аналогичного шейдера mental ray. При рендеринге отключите глобальное освещение и вывод элементов, снимите флажок Exposure (экспозиция) в параметрах физической камеры (VrayPhysicalCamera), если вы ее используете. И отключите действие модификатора VRayDisplacementMod для травы. Когда вы получите все элементы, загружайте их в Adobe Photoshop и собирайте свою картинку. Отражения и преломления накладываются выше основного слоя (TotalLighting) по методу Linear Dodge (Add) или Screen (рис. 3.136, е). Так как при рендеринге использовалась гамма 2.2, перед тем, как смешивать элементы, проведите обратную гамма-коррекцию этих элементов на значение 0.4545, например, при помощи Image  Adjustment  Exposure (рис. 3.136, ж).

а Рис. 3.136, а. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 2)

714

Ãëàâà 3

б

в Рис. 3.136, б и в. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 2)

Âèçóàëèçàöèÿ

715

г

д Рис. 3.136, г и д. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 2)

716

Ãëàâà 3

е

ж Рис. 3.136, е и ж. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 2)

Âèçóàëèçàöèÿ

717

з

и Рис. 3.136, з и и. Доработка изображения в Adobe Photoshop с использованием дополнительных элементов (пример 2)

718

Ãëàâà 3

Для усиления отражений в стеклах окон можно дополнительно ввести слой с изображением по маске (рис. 3.136, з). Дальнейшее редактирование не очень отличается от предыдущего случая. Результат показан на рис. 3.136, и и цветной вкладке (см. ЦВ10, внизу). И на этом мы заканчиваем описание этого увлекательного процесса, т. к. это тема для другой, не менее объемной, книги. Наша задача заключалась в том, чтобы направить вас в нужном направлении. Мы надеемся, что эти небольшие примеры подвигнут вас на дальнейшее изучение не только 3ds Max. А что можно получить при этом, наглядно иллюстрируют изображения на последних двух страницах цветной вкладки (см. ЦВ11—14), выполненные специалистами RealTime Studio (www.realtimearch.ru) и размещенные с их разрешения. Доля постобработки в них весьма велика, причем некоторые из них являются кадрами из роликов. На обложке представлена совместная работа RealTime Studio и Андрея Иванченко (Anry), который довел результат рендеринга до высокого художественного уровня в Corel Painter. В заключение этого раздела несколько слов о вечернем рендеринге. Нам кажется, вы уже должны понять, как сделать "ночь из дня". И все же профессионалы не рекомендуют полностью полагаться на постпроцесс — результат получается не очень убедительным. Трудно добиться правильных теней от фонарей, правильного ослабления света и т. п. Но как вариант быстрого создания вечерней картинки такой подход вполне приемлем. Попробуйте!

Ïàêåòíûé ðåíäåðèíã Для того чтобы оптимизировать процесс рендеринга с точки зрения эффективности использования оборудования и времени, имеет смысл использовать различные средства ускорения рабочего процесса. Одним из них является пакетный рендеринг (Batch Rendering). Смысл его в том, что вы запускаете на расчет не одно изображение, а несколько. После того как будет закончена одна задача, автоматически запустится следующая и так, пока очередь не закончится. В принципе, решить это можно, создав анимацию параметров, но это не очень удобно. Мы рассмотрим весь этот процесс по максимуму. Конечно, те или иные моменты можно опустить. Для эффективного использования пакетного рендеринга нужно использовать несколько средств, предоставляемых 3ds Max. Первое из них — это возможность записи и восстановления состояния сцены. Главное меню  Tools  Manage Scene States

Âèçóàëèçàöèÿ

719

Вы можете записать сцену в каком-то состоянии, причем не все позиции. Например, на рис. 3.137, а показано сохранение только материалов и параметров слоев. Названия состояний говорят сами за себя. Конечно, в сцену должны быть подгружены источники света из вечерней сцены. Сделав несколько таких состояний, вы в любой момент можете вернуться к нему (рис. 3.137, б).

а

б Рис. 3.137. Запись (а) и восстановление (б) состояния сцены

Разместите нужное количество камер. Мы не будем рассказывать ни о правилах архитектурной композиции, ни о правилах фотосъемки пейзажа — это вы можете узнать из соответствующих источников. И, наконец, можно сделать несколько предустановок настроек рендеринга, например, с разным качеством окончательного сбора. Главное меню  Rendering  Render  Preset  Save Preset

На рис. 3.138 показаны настройки пакетного рендеринга для создания трех изображений с трех разных позиций. Главное меню  Rendering  Batch render

720

Ãëàâà 3

Рис. 3.138. Окно пакетного рендеринга

 ПОЯСНЕНИЕ Кнопкой Аdd (рис. 3.138) добавляется задача в список задач. Рендеринг возможен только из камеры или направленного источника света, и это правильно. Три списка внизу дают возможность выбрать камеру, состояние сцены и настройки рендерера. Можно опустить любой из этих параметров, при этом будет использовано предыдущее состояние.

Все готово для того, чтобы запустить процесс рендеринга и идти спокойно спать. Отметим лишь интересную кнопку Export to .bat, которая создает командный файл. Его нужно запустить с командной строки без загрузки графического интерфейса, это экономит примерно 200—250 Мбайт оперативной памяти. Файл выглядит примерно так (листинг 3.1). Листинг 3.1 @echo off rem -------------------------------------------------------------------rem -- View01

Âèçóàëèçàöèÿ

721

echo Rendering Batch: View01 3dsmaxcmd G:\Project1\scenes\Project1-mrMaterials01.max ^ -batchRender:View01 ^ -outputName .\renderoutput\test-prefinal_View01.tif -camera Camera01 -sceneState Day.light.with.Dilspl.Grass ^ -preset G:\Project1\renderpresets\mr.Daylight.HiQual rem -------------------------------------------------------------------rem -- View02 echo Rendering Batch: View02 3dsmaxcmd G:\Project1\scenes\Project1-mrMaterials01.max ^ -batchRender:View02 ^ -outputName .\renderoutput\test-prefinal_View01.tif^ -camera Camera02 -sceneState Day.light.with.Dilspl.Grass ^ -preset G:\Project1\renderpresets\mr.Daylight.HiQual rem --------------------------------------------------------------------rem -- View03 echo Rendering Batch: View03 3dsmaxcmd G:\Project1\scenes\Project1-mrMaterials01.max ^ -batchRender:View03 ^ -outputName .\renderoutput\test-prefinal_View01.tif ^ -camera Camera03 -sceneState Day.light.with.Dilspl.Grass ^ -preset G:\Project1\renderpresets\mr.Daylight.HiQual

Мы уверены, что сейчас глаза людей, которые помнят времена DOS, увлажнились, нахлынули воспоминания о юности, а руки брезгливо оттолкнули мышь. Для них предназначен следующий маленький раздел.  ЗАМЕЧАНИЕ При использовании VRay невозможно применение Batch render с VRay Frame buffer. Используйте средства 3ds Max.

Ðåíäåðèíã èç êîìàíäíîé ñòðîêè В поставке 3ds Max имеется модуль, позволяющий запускать рендеринг из командной строки. Он содержит большое количество опций, но в простейшем случае, если сцена полностью настроена, запуск на рендеринг выглядит так: 3dsmaxcmd.exe d:\Project1\Scenes\Project.max

Запускать его следует из корневого каталога 3ds Max, или добавить в системную переменную PATH путь к корню 3ds Max.

722

Ãëàâà 3

Рендеринг с командной строки содержит много опций, не доступных из основного интерфейса 3ds Max. Как пример приводим текст BAT-файла, при исполнении которого рендеринг проводится "страйпами" (stripes, полоски), а потом сшивается в единую картинку: 3dsmaxcmd.exe –split:10,0 d:\Project1\Scenes\Project.max 3dsmaxcmd.exe –stitch:10,0 d:\Project1\Scenes\Project.max

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

Ðåíäåðèíã ïî ñåòè При наличии локальной сети можно значительно ускорить процесс рендеринга, задействовав для него несколько компьютеров. Коротко рассмотрим требования и процедуру запуска сетевого рендеринга.  ЗАМЕЧАНИЕ В этом разделе обсуждается сетевой рендеринг только штатными средствами 3ds Max, при помощи Autodesk Backburner. И mental ray, и VRay работают в таком режиме. И mental ray, и VRay имеют свои собственные механизмы сетевого или распределенного рендеринга. За подробной информацией мы предлагаем вам обратиться к руководству пользователя.

 На всех компьютерах должны быть установлены 3ds Max и Backburner од-

ной версии.  Все компьютеры должны быть достижимы, т. е. в настройках роутеров и брандмауэров открыты необходимые порты и прописаны разрешенные процессы.  Папка проекта должна быть создана в сетевом виде, например \\Computer-

1\Project1\, и к ней должен быть открыт полный общий доступ.  На всех компьютерах должен быть запущен Backburner Server. Для анг-

лийской Windows XP это делается командой Start  Programs  Autodesk  Backburner  Server. При первом запуске предлагается его настроить, но, как правило, настройки по умолчанию приемлемы в большинстве случаев.

 На головной машине должен быть запущен Backburner Manager (командой

Start  Programs  Autodesk  Backburner  Manager).

Для запуска сетевого рендеринга установите флажок Net Render в диалоговом окне настроек рендеринга. Запускайте рендеринг. Откроется окно настроек (рис. 3.139, а). Можете ничего не менять, нажимать кнопки Connect (соединить) (стрелка 1 на рис. 3.139, а) и Submit (подтвердить) (стрелка 2).

Âèçóàëèçàöèÿ

723

Но мы озвучим некоторые полезные моменты.  Включение флажка Split Scan Lines (стрелка 3) позволяет передавать для рендеринга не кадр, а часть кадра, страйп. Вы можете настроить этот процесс (стрелка 4).  Иногда полезно передать на локальные машины файлы текстур (флажок Include Maps) (стрелка 5).  Чтобы на локальных машинах не отображалось окно рендеринга и не занималась лишняя память, отключите флажок Rendered Frame Window (стрелка 6). Для того чтобы следить и управлять процессом, используется Backburner Monitor (Start  Programs  Autodesk  Backburner  Monitor). На рис. 3.139, б он показан в неактивном состоянии. Подключите его (стрелка 1 на рис. 3.139, а) и управляйте распределенным рендерингом.

а Рис. 3.139, а. Настройки сетевого рендеринга (а)

724

Ãëàâà 3

б Рис. 3.139, б. Окно Monitor (б)

Рис. 3.140. Вид Monitor при работающей рендер-ферме

Âèçóàëèçàöèÿ

725

На рис. 3.140 показано окно Monitor при работающей рендер-ферме. Для таких проектов, как наш, было бы неплохо иметь такую.

Àíèìàöèÿ В этом разделе мы дадим только самые необходимые сведения по созданию наиболее часто требуемой анимации — пролета и облета камеры. Кроме этого, анимируем рябь на воде. Если вы помните, водопад и пена уже анимированы путем применения последовательности файлов в качестве текстуры.

Íàñòðîéêà ïàðàìåòðîâ àíèìàöèè Перед тем как начать анимировать, нужно хотя бы приблизительно прикинуть время анимации и основные этапы. В нашем случае все очень просто — анимация простейшего облета камерой по кругу длительностью 20—25 сек. Настройте параметры анимации так, как показано на рис. 3.141. Панель управления анимацией  Time Configuration

Рис. 3.141. Настройка параметров анимации

 ПОЯСНЕНИЕ Параметр Frame Rate (рис. 3.141) установите в положение, соответствующее стандарту PAL — переключатель PAL (25 кадров/сек). Не обращайте внимание, что в поле FPS осталось 30 — это не важно.

726

Ãëàâà 3 Отображение номеров кадров в формате SMPTE (одноименный переключатель SMPTE) даст вам возможность видеть номера кадров в привычном формате — минуты:секунды:кадры (не доли секунды!). Длительность фрагмента установите равной 25 сек. К сожалению, придется вводить именно так: "0:25:0", стандартного ввода тайм-кода ("002500") в 3ds Max не предусмотрено, это будет расценено как 2500 кадров.

Àíèìàöèÿ îáëåòà êàìåðîé Красивый облет камерой — задача не такая простая, как кажется на первый взгляд. Достаточно сложно избежать нежелательных наездов и отъездов. 3ds Max предоставляет большое количество дополнительных возможностей для анимации, и одна из них, которой мы предлагаем вам воспользоваться, — движение по пути.  Создайте камеру с целью, цель разместите в центре дома.  На виде сверху создайте окружность с центром в точке, где находится

цель камеры (Target) (рис. 3.142, а). Сделать это можно при помощи выравнивания (Align).  Поднимите ее на уровень камеры (рис. 3.142, б).  В параметрах окружности в свитке интерполяции увеличьте количество

шагов (Steps) до максимального. Это нужно для того, чтобы сгладить движение камеры.  Выделите камеру и задайте ей движение по окружности. Главное меню  Animation  Constraints  Path Constraint Потяните ниточку к окружности и щелкните на ней

3ds Max переключится на панель Motion (движение), в режим редактирования этого контроллера-ограничителя (Constraint) (рис. 3.142, в).  ПОЯСНЕНИЕ Вы сразу попадете в панель Motion в настройки этого контроллера. Кнопки Add Path и Delete Path (добавить и удалить путь) наводят на мысль, что объект может перемещаться по нескольким путям одновременно, а параметр Weight (вес) позволяет управлять тем, по какому пути объект будет двигаться в настоящий момент. Этим можно пользоваться, но лучше все же использовать один сложный путь, чем несколько простых, т. к. достаточно трудно настроить плавный переход с одного пути на другой. Параметр %Along Path управляет положением объекта на пути. Как видите, спиннер этого параметра подсвечен красными уголками (помечено стрелкой на рис. 3.142, в). Это сигнализирует о том, что параметр анимирован. Если вы обратите внимание на шкалу времени, то увидите два красных прямоугольника — ключа. Изменяя их положение на шкале времени, можно регулировать момент начала и окончания движения.

Âèçóàëèçàöèÿ

727

а

б Рис. 3.142, а и б. Создание анимации облета камерой

728

Ãëàâà 3

в Рис. 3.142, в. Создание анимации облета камерой

Флажок Follow позволяет объекту поворачивать в соответствии с направлением движения. В нашем случае этот флажок недоступен, т. к. камера направлена на цель. Как будет ориентирован объект при движении, определяется переключателями в группе Axis (оси). По вышеизложенной причине этот параметр также недоступен. Флажок Bank позволяет объекту наклоняться подобно самолету на виражах. И опять этот параметр "задизейблен" (disable). Но в случае свободной (Free) камеры все эти параметры (Follow, Axis, Bank) задействованы. Флажок Constant Velocity (постоянная скорость) заставляет объект двигаться равномерно, в противном случае, при движении будет учитываться расстояние между вершинами пути, чем меньше расстояние, тем медленнее будет перемещаться объект. При этом скорость меняется скачкообразно, поэтому регулировать скорость лучше изменяя форму кривой анимации.

Âèçóàëèçàöèÿ

729

Флажок Allow Upside Down (позволить переворот) позволяет объекту выполнить "мертвую петлю". Флажок Loop (петля) позволяет зациклить движение объекта, это работает только в случае замкнутого пути. Флажок Relative (относительная позиция) позволяет объекту сохранить свое первоначальное положение.

Теперь камера привязана к пути, и изменить ее положение в пространстве можно, только изменяя положение и форму пути. Последнего можно добиться, применив к окружности модификатор Edit Spline. Запустите анимацию кнопкой Play Animation. Камера делает полный оборот за 25 сек. В принципе все устраивает, но предположим, что вам нужно изменить начальный ракурс, направление и характер движения. Давайте решать все эти три проблемы. Камера привязана к окружности, и изменять ее положение можно, только изменяя положение пути. Если нужно, то поверните окружность вокруг оси Z в кадре 0 так, чтобы камера оказалась в нужном месте. Для того чтобы придвинуть или отодвинуть камеру от цели, нужно изменить радиус окружности. Изменить время облета, скорость и направление немного сложнее.  Выделите камеру и откройте мини-редактор анимационных кривых

(рис. 3.143, a). Панель времени  Open Mini Curve Editor

Анимирован только один параметр, Percent (процент), который определяет положение камеры на пути. Для того чтобы изменить направление вращения, нужно изменить вид кривой на противоположный, а ускорить или замедлить движение — переместив правый ключ (рис. 3.143, б).  СОВЕТ Вводите значения в полях вверху редактора кривых (помечены цифрой 1 на рис. 3.143, б), так удобнее и точнее.

Для того чтобы остановить движение объекта на некоторое время, нужно добавить два ключа на кривой командой Add Keys и сделать участок кривой горизонтальным (стрелка 1 на рис. 3.144, а). Сложнее изменить характер движения. Если вы обратили внимание, наверху в линейке инструментов редактора анимационных кривых большое количество кнопок для изменения формы кривой (стрелка 2 на рис. 3.144, а). К сожалению, они не работают,

730

Ãëàâà 3

т. к. на параметр Percent по умолчанию назначен контроллер типа Linear Float (линейное число с плавающей точкой). Если вам необходимы плавный разгон и замедление камеры, предварительно нужно изменить тип контроллера на более подходящий.  Выберите параметр Percent и щелкните на нем правой кнопкой мыши.  В появившемся меню выберите Assign Controller (присвоить контроллер)

(рис. 3.144, б).  В списке контроллеров, которые можно назначить на этот параметр

(рис. 3.144, в), выберите Bezier Float (Кривые Безье).

а

б Рис. 3.143. Использование редактора анимационных кривых (Mini Curve Editor) для изменения движения

Âèçóàëèçàöèÿ

731

 ВАЖНО! В списке контроллеров есть кнопка Make Default, которая позволяет сделать выбранный контроллер контроллером по умолчанию для этого параметра. Все последующие объекты, "запущенные" по пути, будут иметь контроллер этого типа на этом параметре. При смене контроллеров не нажимайте ее просто так, не будучи уверенным, что вам это нужно!

Теперь кривую можно отредактировать так, чтобы камера плавно начинала движение, плавно приостанавливалась и плавно продолжала движение (рис. 3.144, г).

а

б Рис. 3.144, а—в. Изменение контроллера анимации и характера движения камеры

в

732

Ãëàâà 3

г Рис. 3.144, г. Изменение контроллера анимации и характера движения камеры

 ЗАМЕЧАНИЕ Такая "полочка" (пауза) — не самое мудрое решение. Если в кадре в этот момент ничего не происходит — не шевелятся листья, не рябит вода и т. п. — такое решение можно оправдать только тем, что вы никуда не торопитесь. Во всех остальных случаях нужно провести рендеринг в два этапа — до паузы и после. Сделать паузу выгоднее в видеоредакторе.

Пролет камеры по траектории делается точно так же, только используется свободная камера, а в качестве пути — сплайн нужной формы. Желательно, чтобы все вершины в сплайне были типа Smooth или Bezier, в противном случае вы получите скачки при перемещении камеры.

Àíèìàöèÿ ðÿáè Эту анимацию вы сделаете при помощи автоматической записи анимации (метод Auto Key) с последующим редактированием в редакторе кривых. Откройте редактор материалов и параметры карты Smoke, которая использована для создания ряби.  Включите запись анимации. Панель управления анимацией  нажмите кнопку Auto key  Перейдите в кадр 0:01:00 и измените значение фазы (поле

Phase) до 1. Параметр будет заключен в красные уголки, это означает, что установлен ключ.  Сделайте предпросмотр анимации. Главное меню редактора материалов  Material  Make Preview

Âèçóàëèçàöèÿ

733

 Неважно, утраивает вас или нет скорость изменения параметра, в любом

случае открывайте Mini Curve Editor.  СОВЕТ Чтобы не запутаться в большом количестве дорожек анимации, откройте настройки фильтрации (стрелка 1 на рис. 3.145) и включите отображение только анимированных дорожек (стрелка 2).

Рис. 3.145. Фильтрация дорожек анимации

 Измените тип ключей на линейный, при необходимости измените ско-

рость изменения параметра, перемещая ключи по горизонтали (т. е. по оси времени).  Чтобы движение происходило постоянно, определите характер изменения

параметра вне ключей (рис. 3.146). Главное меню Редактора кривых  Controller  Out-of-Range Type Установите значение Relative Repeat

Анимация готова!

734

Ãëàâà 3

Рис. 3.146. Продление анимации ряби во времени

Îñîáåííîñòè íàñòðîåê ðåíäåðèíãà àíèìàöèè Нюансов при рендеринге анимации много, причем для различного характера анимации свои. Например, при простом пролете камеры можно зафиксировать глобальное освещение, что мы с вами и сделаем. При активной анимации это неприемлемо. Приходится проводить рендеринг в несколько этапов с последующим композитингом. Зачем нужна фиксация глобального освещения? Прежде всего, так быстрее будет проведен окончательный рендеринг. При записи глобального освещения в файл вы можете это делать не в каждом кадре, а в каждом 5-м, 10-м и т. д. кадре, все зависит от скорости движения камеры. Кроме этого, если карта глобального освещения пересчитывается, то в каждом кадре это происходит по-разному, и вы получаете на окончательном ролике характерный шум. Для рендеринга не всех кадров в основных параметрах рендеринга установите соответствующий параметр (рис. 3.147, а). При использовании mental ray для того, чтобы это сделать быстрее, установите грубые настройки антиалиасинга (рис. 3.147, б) и запись карты ОС в файл (рис. 3.147, в). Перед окончательным рендерингом зафиксируйте карту OC (рис. 3.147, г). В VRay для этих же целей установите флажок Don't render final image (не рассчитывать окончательное изображение) (стрелка 1 на рис. 3.147, д). Если вы используете Irradiance map, то настройки, показанные на рис. 3.147, е, делают автоматическую запись карты освещенности и переключение на ее использование по окончании расчета. Второй нюанс — это антиалиасинг. При недостаточных настройках адаптивного антиалиасинга и большом количестве эффектов размытия появляется шум, связанный с тем, что-то в каждом кадре это происходит по-разному. И с этим эффектом уже не так просто бороться.

Âèçóàëèçàöèÿ

735

Вот некоторые методы борьбы за качество и приемлемое время расчета.  Использование высоких настроек антиалиасинга, что приводит к большо-

му времени рендеринга.  Использование фиксированных алгоритмов, Fast Rasterizer для mental ray и Fixed для VRay.  Применение фильтров антиалиасинга, дающих небольшое размытие, на-

пример, Triangle для mental ray или VRayTriangleFilter для VRay.  Отказ от применения эффектов размытия или смещения во второстепен-

ных элементах сцены.  Активное использование постобработки. Существует большое количество

средств для убирания шума, например, Re:Vision Denoiser, создания эффекта смаза, глубины резкости и т. д. И в заключение буквально несколько слов о постобработке результатов рендеринга анимации. Она не очень отличается от постобработки статического

а

б

в

г Рис. 3.147, а—г. Настройки для расчета карты глобального освещения и использования при рендеринге анимации пролета камеры для mental ray (а, б, в, г) и VRay (а)

736

Ãëàâà 3

д

е Рис. 3.147, д и е. Настройки для расчета карты глобального освещения и использования при рендеринге анимации пролета камеры для VRay (д, е)

изображения. Выводятся дополнительные каналы, маски и т. д. Только все это представляет собой последовательности файлов. Обрабатывается все это в пакетах видеокомпозитинга. Все популярные пакеты (Adobe After Affects, Autodesk Combustion, eyeon Fusion и т. д.) позволяют эффективно работать с результатами рендеринга. Если не хватает штатных средств, то существует большое количество подключаемых модулей. Например, для создания линзовых эффектов широко используется пакет Knoll Light Factory. Много интересных эффектов можно найти в пакетах Boris Continuum Complete (www.borisfx.com/product/continuum/), Genarts Sapphire (www.genarts.com) и др. Только не забывайте главное правило — всего, в том числе и эффектов, должно быть в меру!

Êîíòðîëüíûå âîïðîñû 1. В чем основные преимущества и недостатки mental ray и VRay относительно друг друга? (См. начало главы 3.) 2. В чем преимущество использования физически корректных моделей расчета дневного освещения по сравнению с традиционными? (См. разд. "Днев-

Âèçóàëèçàöèÿ

737

ное освещение с использованием физически корректных источников света mental ray" и "Дневное освещение с использованием физически корректных источников света и камеры Vray".) 3. Каково значение использования непрямого (глобального) освещения при создании дневного освещения? Почему оно необходимо? (См. разд. "Дневное освещение с использованием физически корректных источников света mental ray" и "Дневное освещение с использованием физически корректных источников света и камеры VRay".) 4. В чем особенность создания вечернего освещения по сравнению с дневным? Возможно ли применение физически корректных моделей освещения в этом случае? (См. разд. "Вечернее освещение в mental ray" и "Вечернее освещение в VRay".) 5. Каковы преимущества и недостатки редактора материалов 3ds Max? Каков основной принцип при работе с материалами и картами? (См. разд. "Редактор материалов".) 6. Можно ли применять стандартные материалы при рендеринге mental ray и VRay? Каковы ограничения в обоих случаях? (См. разд. "Материалы и текстуры. Общие замечания".) 7. Каковы требования к текстурам из внешних растровых файлов? Какова процедура загрузки растрового файла в качестве текстуры (карты)? (См. разд. "Материалы и текстуры. Общие замечания" и "Использование текстур из внешних растровых файлов".) 8. Каковы достоинства и недостатки использования текстур в реальном масштабе (Real-World Scale) по сравнению с традиционным? Всегда ли возможно такое использование? (См. разд. "Использование текстур из внешних растровых файлов".) 9. Чем обусловлена необходимость назначения и редактирования текстурных координат? Каковы возможные варианты? (См. разд. "Назначение и редактирование текстурных координат".) 10. Каковы преимущества и недостатки процедурных трехмерных карт? Приведите примеры их использования (см. разд. "Использование процедурных трехмерных карт"). 11. Каковы основные компоненты материалов mr Arch+Design и VRayMtl? (См. разд. "Основные материалы".) 12. Что и как определяет канал Diffusе (рассеянная компонента)? (См. разд. "Основные материалы".) 13. В чем отличие между Bump (шероховатость) и Displacement (смещение)? (См. разд. "Основные материалы" и "Материалы с использованием смещения (displacement)".)

738

Ãëàâà 3

14. Как можно упростить сложную геометрию, например, ажурных решеток, при помощи карт? В чем преимущества и недостатки такого подхода? (См. разд. "Материалы с использованием карты прозрачности".) 15. Как реализуются размытые отражения в материалах mr Arch+Design и VRayMtl? Каковы возможности по оптимизации времени рендеринга? 16. Каковы основные настройки для металлов? Стекла? Воды? Каковы отличия при использовании mr Arch+Design и VRayMtl? (См. разд. "Металлы", "Материал оконных стекол", "Материалы воды в бассейне".) 17. Как можно использовать анимированные текстуры? В каком формате? (См. разд. "Материалы водопада".) 18. Каково применение карты Vertex Color? В чем ее преимущества и недостатки? (См. разд. "Материалы растений и деревьев".) 19. Каковы различия настроек самосветящихся материалов для mental ray и VRay? Можно ли ими осветить другие объекты? (См. разд. "Материалы светящихся фонарей".) 20. Каким способом можно визуализировать волосы и мех mental ray? VRay? Каковы ограничения в обоих случаях? Каковы решения? (См. разд. "Декоративные злаки".) 21. Каковы способы создания газонной травы? Какие проблемы и решения в случае использования mental ray и VRay? (См. разд. "Газонная трава".) 22. Каковы оптимальные настройки глобального освещения и антиалиасинга для комплексных открытых сцен при использовании mental ray и VRay? Каковы методы оптимизации? (См. разд. "Рендеринг и постобработка".) 23. В чем преимущество использования VRay Frame Buffer (экранный буфер VRay) по сравнению со стандартным при рендеринге VRay? (См. разд. "Использование VRay Frame buffer".) 24. Что такое и какие преимущества дает использование VrayProxy? Каковы правила его использования? (См. разд. "Использование VrayProxy".) 25. Что такое "поэлементный рендеринг"? Каково практическое применение элементов? (См. разд. "Поэлементный рендеринг и использование его результатов в постобработке".) 26. Каковы три составляющие, необходимые для использования всех возможностей пакетного рендеринга? Можно ли не использовать некоторые их них? (См. разд. "Пакетный рендеринг".) 27. Что необходимо для рендеринга по сети? Возможен ли рендеринг по Интернету? (См. разд. "Рендеринг по сети".)

Приложения

ÏÐÈËÎÆÅÍÈÅ

1

Îñíîâíûå ìàòåðèàëû mental ray è VRay Хотя в процессе выполнения проекта были созданы различные материалы и использовались шейдеры для mental ray и VRay, эта тема настолько сложна, что мы решили вынести настройки основных материалов в отдельное приложение. В этом обзоре мы постарались не пересказать справку, но дать обзор наиболее интересных возможностей и некоторые рекомендации по применению. Исчерпывающую информацию по данным вопросам вы можете получить из справки к 3ds Max и VRay соответственно.

Ìàòåðèàë Arch & Design (mr) Несомненно, именно этот материал является теперь основным при использовании mental ray для архитектурных, интерьерных и дизайнерских визуализаций, т. к. в нем присутствует почти все, что нужно для создания любого материала, и, вдобавок к этому, имеется большое количество возможностей по оптимизации процесса рендеринга, как настраиваемых, так и заложенных непосредственно в сам шейдер. Параметры в группе Diffuse (рассеянный) (помечено стрелкой 1 на рис. П1.1) свитка Main material parameters (основные параметры материала) определяют цвет, текстуру и уровень диффузной компоненты материала, основного цвета материала в случае, если отсутствуют отражения или преломления. В случае создания отражающего и преломляющего материала (например, стекла), принято уменьшать уровень диффузной компоненты (Diffuse Level) вплоть до нуля (для идеального зеркала либо стекла), хотя в данном материале это происходит автоматически в зависимости от уровня отражений и преломлений по закону сохранения энергии: diffuse + reflection + refraction