Глава 3 Моделирование зданий
Давайте рассмотрим несколько принципов построения зданий в 3ds Max. Оговорюсь сразу: не стоит зацикливаться на каком-либо одном и делать им весь проект. Гораздо разумнее комбинировать способы в зависимости от задач и расположенности объектов на передних и дальних планах.
Одно из самых простых решений – построение здания методом булевой операции, с помощью инструмента Boolean (Булевские объекты) из категории Compound Objects (Составные объекты). Причем инструментов предоставляется два: Boolean (Булевские объекты) и ProBoolean (Улучшенные булевские объекты). Одинаковые по принципу работы, они имеют весьма существенные различия в качестве получаемой сетки объекта. Давайте сравним это на простой сцене. Создайте два примитива-параллелепипеда и пересекающие их цилиндры (рис. 3.1).
Рис. 3.1. Сцена сравнения булевых операций
Вырежьте цилиндры из одного параллелепипеда булевой операцией Boolean (Булевские объекты), из другого – операцией ProBoolean (Улучшенные булевские объекты) (рис. 3.2).
Рис. 3.2. Результат применения операции Boolean (Булевские объекты) (слева) и применения операции ProBoolean (Улучшенные булевские объекты) (справа)
Нажмите клавишу F4 – это позволит интерактивно отобразить сетку модели в окне просмотра. Как видите, сетка первой модели, созданная простой операцией Boolean (Булевские объекты), отличается от сетки такой же модели, но созданной операцией ProBoolean (Улучшенные булевские объекты), далеко не в лучшую сторону (рис. 3.3).
Рис. 3.3. Разный результат применения булевых операций
Однако у простого булевого инструмента есть одно преимущество: он намного стабильнее справляется со сложными объектами, в то время как ProBoolean (Улучшенные булевские объекты) при сложной операции частенько дает сбой. Поэтому для чистого результата логично использовать именно ProBoolean (Улучшенные булевские объекты), но на совсем простых формах – например, для вырезания оконных и дверных проемов в стенах. Сделаем это и посмотрим на результат.
Создайте форму Rectangle (Прямоугольник) произвольного размера и конвертируйте ее в редактируемый сплайн командой контекстного меню Convert to → Convert to Editable Spline (Конвертировать в → Конвертировать в редактируемый сплайн) – точно так же, как вы раньше конвертировали объекты в редактируемые полигоны (рис. 3.4).
Рис. 3.4. Конвертирование объекта в редактируемый сплайн
Перейдите на уровень сплайнов и активизируйте операцию Outline (Контур) (рис. 3.5).
Рис. 3.5. Удвоение сплайна операцией Outline (Контур)
Примените модификатор Extrude (Выдавливание). Если задавать точные цифровые значения параметрам Rectangle (Прямоугольник), Outline (Контур) и Extrude (Выдавливание), можно получить точную модель стен будущего здания.
Разместите в нужных местах объекты, необходимые для вырезания оконных проемов. Скорректировать их положение в пространстве легко с помощью объектов-лекал. На рисунке они выделены белым цветом (рис. 3.6).
Рис. 3.6. Объекты-лекала для коррекции положения объектов-окон
Теперь можно вырезать из стен объекты-окна.
Операция ProBoolean (Улучшенные булевские объекты) поддерживает корректное множественное вырезание, но после каждой операции все равно идет новый математический просчет и новое построение сетки. Гораздо лучше провести эту операцию один раз, то есть семь раз отмерив (проверив правильность положения вырезаемых объектов) и один раз отрезав. Для этого конвертируем все объекты-окна в редактируемую сетку и присоединим друг к другу операцией Attach List (Присоединить несколько) из набора инструментов полигонального моделирования (рис. 3.7).
Рис. 3.7. Объединение множества объектов-окон в единый объект
У нас есть всего два операнда (объекта для взаимодействия): собственно сама стена дома и блок оконных элементов. Выделите объект-стену и активизируйте инструмент ProBoolean (Улучшенные булевские объекты). Нажмите кнопку Start Picking (Указать цель) и укажите на любую из форм-окон (рис. 3.8).
Рис. 3.8. Применение инструмента ProBoolean (Улучшенные булевские объекты)
В результате получается искомый объект – стены дома с оконными проемами. Выглядит довольно симпатично. Теперь конвертируйте его в редактируемую сетку. Как видно на рис. 3.9, топология полученной сетки хоть и достаточно проста, но для дальнейшего редактирования на уровне полигонов – не лучший вариант.
Рис. 3.9. Конвертирование объекта в Editable Poly (Редактируемый полигон)
Иными словами, применять этот способ можно: он прост и легко реализуем, – но только в том случае, когда не потребуется дальнейшее редактирование форм окон, мелких архитектурных деталей и других элементов, например при построении простых панельных многоэтажек. Кстати, раз уж мы заговорили о панельном строительстве, давайте перенесем метод панельного строительства в компьютерное моделирование и построим дом другим способом.
Начните новый сеанс работы в 3ds Max и сделайте активным окно просмотра Front (Вид спереди). Создайте произвольный прямоугольник из набора сплайновых примитивов и расположите такие же сплайновые оконные проемы внутри созданной формы. Конвертируйте полученные объекты в редактируемые сплайны. Корректировать положение в пространстве можно так же, как и в предыдущем примере, – с помощью объектов-лекал. Объедините все объекты в одну сплайновую форму командой Attach (Присоединение) (рис. 3.10).
Рис. 3.10. Объединение сплайновых объектов в одну форму
Примените к полученной форме модификатор Extrude (Выдавливание) и в поле Amount (Величина) свитка Parameters (Параметры) задайте толщину стены. У нас получилась готовая стена дома с идеальной сеткой. Как же из подобных стен собрать дом? Скопируйте созданный объект для получения трех отсутствующих стен или создайте новые таким же способом (рис. 3.11).
Рис. 3.11. Возведение стен дома
Подгоните стены друг к другу таким образом, чтобы элементы немного заходили друг на друга, без щелей и промежутков: их присутствие может создать лишние проблемы при визуализации с просчетом глобального освещения.
Если оставить стены на таком уровне, несомненным преимуществом будет легкость редактирования, например, оконных проемов, если заказчик пожелает изменить их, скажем, на арочные или стрельчатые. Достаточно просто вернуться на уровень редактируемых сплайнов и заменить или отредактировать вложенную форму. Неизбежный при таком способе построения шов на стыках стен вполне можно замаскировать тщательно подогнанной текстурой. Если же проект утвержден и изменений больше не предвидится, можно состыковать конструкции бесшовно, конвертировав их в редактируемую сетку и сместив вершины соседних элементов на 45° (рис. 3.12).
Рис. 3.12. Бесшовная подгонка соседних элементов стен
Ну а теперь пришло время рассмотреть самый «чистый» в смысле построения сетки метод полигонального моделирования. Вообще, перед построением здания нужно ответить себе на вопрос, будет ли просматриваться сквозь стекла его внутренняя часть или на дальнем плане можно обойтись более простым решением. Иными словами, будет ли строение иметь толщину стен и внутреннее наполнение (что, например, необходимо для ночных экстерьеров) или это простая коробка с непрозрачными стеклами, которые отражают окружающую среду. Создадим первый вариант.
Начните в 3ds Max новый сеанс работы и постройте сплайновый прямоугольник произвольных размеров. Примените к полученному объекту модификатор Extrude (Выдавливание), сняв предварительно флажки Cap Start (Закрыть начало формы) и Cap End (Закрыть конец формы). Получится объект, как на рис. 3.13.
Рис. 3.13. Создание заготовки стен
Конвертируйте полученную форму в редактируемую сетку. Разместите рядом с формой параметрические объекты-лекала, ориентируясь на которые вы будете рассекать горизонтальные линии оконных проемов. Активизируйте инструмент Slice Plane (Режущая плоскость) и, ориентируясь на объекты-лекала (или, если вам удобнее, по заданным параметрам сетки), разрежьте форму на необходимое количество горизонтальных линий, перемещая плоскость разреза и нажимая кнопку Slice (Резать) (рис. 3.14).
Рис. 3.14. Сечение горизонтальных линий оконных проемов
Проделайте ту же операцию по разрезу вертикальных линий, развернув режущую плоскость на 90°и также ориентируясь на объекты-лекала (рис. 3.15).
Рис. 3.15. Сечение вертикальных линий оконных проемов
Удалите лишние полигоны, которые будут оконными проемами. Получится нечто вроде такой модели, как на рис. 3.16.
Рис. 3.16. Формирование оконных проемов
Примените к объекту модификатор Shell (Оболочка) с параметрами вашего здания: если вы строили модель по размерам наружной стены, то это Outer Amount (Наружная величина), если по размерам внутренней – Inner Amount (Внутренняя величина). Цифровые значения будут соответствовать толщине стен дома. Не забудьте установить флажок Straighten Corners (Выпрямлять углы) в самом низу свитка параметров. Получится вот такая модель (рис. 3.17).
Рис. 3.17. Результат применения модификатора Shell (Оболочка)
Модификатор Shell (Оболочка) можно не применять, если нет необходимости, например, показывать внутреннее убранство помещений или стекла практически непрозрачны и внутренней части дома не будет видно. Можно просто выделить полигоны, формирующие оконные проемы, и выдавить их инструментом Extrude (Выдавливание) с отрицательным значением (рис. 3.18). Осталось только удалить выделенные полигоны и на их место вставить рамы (чем мы и займемся чуть позже).
Рис. 3.18. Результат применения выдавливания
Такую модель легко править и добавлять к ней архитектурные детали вроде подоконников или декоративных элементов. Но все же лучше создавать их самостоятельными объектами. Обычно в проект постоянно вносится множество корректив, от добавления новых идей до удаления существующих. Если ваше здание сделано «одним куском», это, конечно, наиболее рационально по количеству используемых полигонов, но может принести немало хлопот при редактировании объекта в целом.
Итак, в вашем распоряжении три основных способа построения стен зданий. Какой из них выбрать или как комбинировать, зависит от ваших предпочтений и сложности объекта. А наша следующая задача – добавление к стенам непременных атрибутов любого здания – оконных рам. Для их моделирования также есть несколько способов, среди которых можно выделить два основных.
• Можно изготовить рамы отдельными объектами и вставить их в оконные проемы.
• А можно решить эту задачу несколько иначе – методом лофтинга по сплайновому сечению.
Давайте рассмотрим оба способа.
Сначала изготовим простую раму. Перейдите в окно Front (Вид спереди) и масштабируйте сцену до крупного вида одного из оконных проемов. Постройте сплайновый примитив Rectangle (Прямоугольник) чуть больше, чем сам оконный проем, чтобы будущая рама слегка заходила в стены (рис. 3.19).
Рис. 3.19. Построение контура оконной рамы
Спрячьте все, кроме контура рамы, командой Hide Unselected (Спрятать невыделенное) из контекстного меню, вызываемого щелчком правой кнопкой мыши (рис. 3.20).
Рис. 3.20. Скрытие лишних элементов сцены
Конвертируйте оставшуюся форму рамы в редактируемый сплайн. Перейдите на уровень сплайнов и активизируйте команду Outline (Контур) с параметрами, соответствующими толщине вашей рамы. Следите, чтобы второй контур при построении был обращен внутрь существующего (рис. 3.21).
Рис. 3.21. Создание внутреннего контура рамы
Добавьте необходимые сплайновые детали-перекладины, объедините с существующей формой командой Attach (Присоединение) из набора инструментов сплайнового моделирования и перейдите к инструменту Trim (Подрезать). Указывая на лишние пересекающиеся детали, удалите их. Не забудьте объединить образовавшиеся вершины в местах сочленений командой Weld (Связать) (рис. 3.22).
Рис. 3.22. Вырезание лишних пересекающихся деталей
Осталось преобразовать полученную сплайновую форму в объемный объект. Оконная рама, с учетом того, что в многоэтажных домах их очень много, не должна содержать большого количества полигонов, и в то же время ей необходимо придать некоторую «живинку». Простой модификатор Extrude (Выдавливание) сделает раму слишком примитивной. Давайте заменим его на подобный инструмент Bevel (Фаска). Примените этот модификатор к объекту и задайте параметры, как на рис. 3.23. При разных единицах масштаба настройки могут различаться, но принцип одинаков.
Рис. 3.23. Применение модификатора Bevel (Фаска)
Оконная рама приобрела несколько характерных скосов и будет интересно смотреться даже на достаточно близком расстоянии. Других деталей вроде петель, ручек, стекол и прочего в данном случае делать не рекомендуется.
Осталось вернуть в сцену скрытые объекты командой Unhide All (Показать все) и аккуратно совместить полученную форму со всеми оконными проемами методом копирования Instance (Ссылка) в окне Clone Options (Параметры клонирования) (рис. 3.24). Метод копирования Instance (Ссылка) в данном случае не просто желателен, а крайне необходим – и не только ради экономии ресурсов: он облегчает правку формы рамы сразу во всех окнах, если такая необходимость возникнет.
Рис. 3.24. Копирование объекта
Ну вот, здание начинает обретать жилой вид (рис. 3.25).
Рис. 3.25. Готовые оконные рамы
А как быть, если здание – небоскреб и окон в нем сотни, а то и тысячи? Изготавливать и расставлять таким способом рамы весьма расточительно для рабочего времени, да и смотреться они будут издалека, то есть мелких деталей разглядеть не удастся. Давайте решим эту задачу.
Постройте простую форму дома с большим количеством окон любым описанным выше способом. Для решения нашей задачи воспользуемся инструментом Section (Сечение) из категории объектов Splines (Сплайны). Этот инструмент позволяет создавать сплайновую форму в месте сечения трехмерного объекта. Активизируйте инструмент и расположите рамку сечения, как показано на рис. 3.26. Размер рамки может быть совершенно произвольным.
Рис. 3.26. Сечение трехмерного объекта
В свитке Section Parameters (Параметры сечения) нажмите кнопку Create Shape (Создать форму) и в появившемся окне дайте вновь создаваемому объекту имя Рама. Обязательно нажмите клавишу Delete на клавиатуре и удалите ненужную более рамку сечения. Выделите созданный сплайн и спрячьте все остальные элементы сцены командой Hide Unselect (Спрятать невыделенное), как вы это делали ранее. Теперь в вашем распоряжении появился новый объект – точная сплайновая копия стены с оконными проемами. Перейдите на уровень сплайнов и удалите лишнее, оставив только контуры оконных проемов. В зависимости от выбранного способа моделирования стен, возможно, кое-где потребуется прибегнуть к операции подрезки (инструментом Trim (Подрезать)) и удалить лишние детали. В данном же случае нужно только удалить внешний сплайн формы (рис. 3.27).
Рис. 3.27. Удаление лишних деталей формы
Зная особенности инструментов и «подводные камни» их применения, проще строить правильную стратегию при выборе способа моделирования здания.
Ну вот, теперь, когда в сцене остались только сплайновые контуры оконных проемов, их можно превратить в трехмерные рамы модификатором Sweep (Протяжение). По своей сути это тот же инструмент Loft (Лофтинговые) из категории Compound Objects (Составные объекты): к выделенному сплайновому пути назначается сплайновая форма сечения, и в результате ее движения образуется новая форма.
Создайте в окне Top (Вид сверху) сплайновую форму сечения рамы (рис. 3.28).
Рис. 3.28. Создание сплайна-сечения
Выделите сплайновую форму контура окон, примените к ней модификатор Sweep (Протяжение) и в его настройках, в свитке Section Type (Тип сечения), установите переключатель в положение Use Custom Section (Использовать созданное сечение). Нажмите кнопку Pick (Указать) и укажите на созданный вами сплайн-сечение. В итоге получились оконные рамы с фасками, привязанные точно к оконным проемам всего дома сразу (рис. 3.29). Корректировать и изменять созданную форму можно прямо в свитке параметров модификатора Sweep (Протяжение).