Введение в трехмерное моделирование. Примитивы и преобразования

Моделирование объектов на основе примитивов

 

 

Создание расширенных примитивов

Набор стандартных примитивов дополняется группой расширенных примитивов (Extended Primitives), часть из которых, например ChamferBox (Коробка с фаской) и ChamferCyl (Цилиндр с фаской), на первый взгляд напоминают соответствующие примитивы из группы Standard Primitives — Box (Коробка) или Cylinder (Цилиндр). Однако при внимательном рассмотрении параметров данных примитивов можно заметить, что у примитивов ChamferBox (Коробка с фаской) и ChamferCyl (Цилиндр с Фаской) их больше — имеются еще дополнительные параметры, позволяющие оформлять фаску и избавляться тем самым от острых кромок, которые отсутствуют у любых объектов в реальном мире.

Для примера создайте произвольный объект на основе примитива ChamferBox с длиной и шириной в 25 пикселов и высотой в 50 пикселов. Для лучшего обзора перейдите в режим отображения единственной проекции Perspective, щелкнув на кнопке Min/Max Toggle (Переключатель Min/Max) (рис. 1).

 

Рис. 1. Появление объекта ChamferBox — фаска пока отсутствует

Рис. 1. Появление объекта ChamferBox — фаска пока отсутствует

Выделите объект, активируйте панель Modify (Редактировать) и обратите внимание на дополнительные параметры Fillet (Фаска) и Fillet Segs (Число сегментов фаски). По умолчанию первый из них равен нулю, а значит, фаска отсутствует. Начните постепенно увеличивать значение параметра Fillet (Фаска) и внимательно следите за изменением объекта, кромки граней которого начинают постепенно стачиваться. Затем, также путем перебора, подберите оптимальное, на ваш взгляд, значение параметра Fillet Segs (Число сегментов фаски) — рис. 2 и 3. Увидеть все сегменты фаски можно, временно отключив флажок Smooth (Сглаживание). Поэкспериментируйте немного с примитивами ChamferBox (Коробка с фаской) и ChamferCyl (Цилиндр с фаской) и с их параметрами, чтобы получить примерно такую же картинку, как показана на рис. 4.

 

Рис. 2. Результат добавления фаски к объекту ChamferBox

Рис. 2. Результат добавления фаски к объекту ChamferBox

Рис. 3. Вид панели Modify после добавления фаски к объекту

Рис. 3. Вид панели Modify после добавления фаски к объекту

Рис. 4. Результат создания серии объектов ChamferBox и ChamferCyl

Рис. 4. Результат создания серии объектов ChamferBox и ChamferCyl

Ознакомимся теперь в общих чертах с другими примитивами данной группы, в которую также входят:

  • Hedra (Многогранник) — граненый примитив, позволяющий имитировать природные кристаллы;
  • Oil Tank (Цистерна) — цилиндр, форма оснований которого может варьироваться от практически плоской до сферической;
  • Spindle (Веретено) — цилиндр, форма оснований которого может варьироваться от практически плоской до конической;
  • Gengon (Граненая призма) — призма, к которой можно добавить фаски по ребрам боковой поверхности;
  • RingWave (Волнообразное кольцо) — примитив с круговой структурой, являющийся вариацией стандартного примитива Tube (Труба) с фигурной внутренней частью;
  • Prism (Призма) — треугольная призма, для которой возможно изменение угла наклона основания к боковым граням.
  • Torus Knot (Узловой тор) — примитив, предназначенный для имитации различных узлов и закручивания;
  • Capsule (Капсула) — цилиндр, основания которого представляют собой полусферические поверхности;
  • L-Ext (Выдавливание L-профиля) — примитив, позволяющий создавать объекты, близкие к прокатному профилю «уголок»;
  • C-Ext (Выдавливание С-профиля) — примитив, обеспечивающий получение объектов, близких к прокатному профилю «швеллер»;
  • Hose (Шланг) — примитив, предназначенный для имитации широкого спектра вытянутых объектов, ограниченных двумя однотипными поверхностями.

Попробуйте поэкспериментировать с названными примитивами и создать, например, несколько объектов на основании простых в настройке примитивов Hedra и Torus Knot (рис. 5 и 6).

 

Рис. 5. Группа кристаллов, созданная на основе примитива Hedra

Рис. 6. Набор замысловатых узлов, полученных на основе примитива Torus Knot

Рис. 6. Набор замысловатых узлов, полученных на основе примитива Torus Knot

Обратите внимание, что практически все примитивы из группы Extended Primitives имеют довольно большое число используемых при их построении параметров, причем для каждого типа примитивов своих. Попробуем разобраться с нюансами настройки объектов на основе примитива Hose, отличающегося наиболее длинным списком параметров. Выберите примитив Hose и создайте на его основе произвольный объект — изначально он будет напоминать резьбу на болте (рис. 7).

 

Рис. 7. Исходный вид объекта на основе примитива Hose

Рис. 7. Исходный вид объекта на основе примитива Hose

Выделите объект, активируйте панель Modify (Редактировать) и обратите внимание на не помещающийся на экране список параметров (рис. 8). Уменьшите значение параметра Cycles (Циклы) до 1, и вместо резьбы болта вы увидите что-то наподобие заготовки для вазы (рис. 9). Отрегулируйте значения параметров в блоке Common Hose Parameters (Общие параметры шланга), как показано на рис. 10, переверните объект и для получения более гладкой поверхности увеличьте значение параметра Sides (Стороны) в блоке Hose Shape (Форма шланга) — перед вами появится изображение обычной гири, используемой для взвешивания на ручных весах (рис. 11). Измените параметры в соответствии с рис. 12, и вы получите заготовку для рюмки (рис. 13) и т.д.

 

Рис. 8. Окно параметров для примитива Hose

Рис. 8. Окно параметров для примитива Hose

Рис. 9. Заготовка для вазы

Рис. 9. Заготовка для вазы

Рис. 10. Настройка параметров в блоке Common Hose Parameters

Рис. 10. Настройка параметров в блоке Common Hose Parameters

Рис. 11. Гиря для взвешивания

Рис. 11. Гиря для взвешивания

Рис. 12. Настройка параметров для создания рюмки

Рис. 12. Настройка параметров для создания рюмки

Рис. 13. Заготовка для рюмки

Рис. 13. Заготовка для рюмки

В начало В начало

Создание и редактирование конструкций из примитивов

Выравнивание объектов

Для выравнивания объектов используется команда Align (Выровнять), вызываемая из командного меню Tools (Инструменты), или набор кнопок на панели инструментов Main Tools. Познакомимся с выравниванием на примере создания модели простого трехмерного логотипа ювелирной компании на основе примитивов Hedra и Torus Knot. Естественно, после создания объекты из примитивов нужно выровнять и откорректировать положение объектов во всех трех проекциях, так как изначально их размещение вряд ли будет идеальным (рис. 14). В данном случае нам нужно выровнять три ограненных кристалла в левой части логотипа. Для этого выделите данные объекты, заключив их в прямоугольный контейнер инструментом Select Object (Выделить объекты), и вызовите команду Tools=>Align (Инструменты=>Выровнять). Обратите внимание, что после вызова данной команды внешний вид маркера мыши изменится, а в нижней части экрана появится приглашение выделить объект, по которому следует произвести выравнивание. Поэтому щелкните на задающем центр выравнивания объекте (в данном случае был выбран объект Hedra3, соответствующий среднему кристаллу). В результате откроется диалоговое окно Align Selection (Выровнять выделенные объекты), где необходимо задать параметры выравнивания (рис. 15). Возможно, результат будет напоминать рис. 16. Сохраните созданный логотип.

 

Рис. 14. Исходный вид логотипа

Рис. 14. Исходный вид логотипа

Рис. 15. Настройка параметров выравнивания

Рис. 15. Настройка параметров выравнивания

Рис. 16. Вид логотипа после выравнивания кристаллов

Рис. 16. Вид логотипа после выравнивания кристаллов

Объединение объектов в группы

Любая сцена состоит из огромного числа объектов, и для удобства работы с ними используют различные варианты их объединения. Самое простое — объединить объекты в группы, что позволит в дальнейшем выполнять ряд действий, таких как выбор, клонирование, присвоение материалов, трансформация и пр., одновременно в отношении всей группы объектов. Обычно в группы объединяют составные элементы сложного объекта, а также наиболее часто повторяющиеся наборы однотипных объектов и т.п. Группы могут быть как одноуровневыми, так и иметь многоуровневую архитектуру.

Для работы с группами предназначено командное меню Group (Группировать), группировка объектов осуществляется выбором одноименной команды из данного меню, а для работы с определенными объектами группы используются команды:

  • Open (Открыть) — позволяет частично снять группировку, что дает возможность выбирать, модифицировать и трансформировать любой объект открытой группы;
  • Close (Закрыть) — предназначена для восстановления частично снятой группировки;
  • Ungroup (Разгруппировать) — удаляет один уровень группировки объектов;
  • Explode (Полностью разгруппировать) — отвечает за полное удаление группировки объектов независимо от уровня вложенности групп;
  • Detach (Отсоединить) — позволяет исключить выбранный объект из состава предварительно открытой при помощи команды Open (Открыть) группы;
  • Attach (Присоединить) — предназначена для включения выбранных объектов в группу.

Создадим группу из объектов только что полученного логотипа. Выделите все объекты, заключив их в прямоугольный контейнер инструментом Select Object (Выделить объекты), вызовите команду Group=>Group (Группировать=>Группировать) и введите имя группы (рис. 17). После этого можно будет работать с группой как с единым целым — все объекты группы будут выделяться щелчком на любом из них и их можно будет все вместе перемещать, поворачивать, масштабировать, копировать и пр.

 

Рис. 17. Ввод имени группы объектов

Рис. 17. Ввод имени группы объектов

А теперь исключите из группы ранее выровненные кристаллы. Для этого выделите и откройте группу при помощи команды Group=>Open (Группировать=>Открыть). Выделите первый исключаемый из группы кристалл и примените команду Group=>Detach (Группировать=>Отсоединить), затем проведите аналогичную операцию для двух других кристаллов и закройте группу командой Group=>Close (Группировать=>Закрыть). Щелкните по любому элементу группы инструментом Select Object (Выделить объект), и вы увидите, что исключенные объекты окажутся невыделенными, а значит, они больше не входят в группу. А теперь проведите обратную операцию: сформируйте пару новых объектов и добавьте их в ранее созданную группу. Выделите первый из созданных объектов, выберите из меню Group (Группировать) команду Attach (Присоединить) и щелкните мышью на группе (рис. 18) — объект окажется включенным в группу, в чем несложно убедиться, например, при попытке одновременного перемещения всех объектов группы. Аналогичную операцию проведите и в отношении второго включаемого в группу объекта.

 

Рис. 18. Указание группы в процессе включения в нее нового объекта

Рис. 18. Указание группы в процессе включения в нее нового объекта

Клонирование объектов

В 3D Studio Max существует несколько способов клонирования объектов. Наиболее часто используемыми являются выделение копируемого объекта или группы объектов и применение одной из команд трансформации: Move (Переместить), Rotate (Повернуть) или Scale (Масштабировать) при нажатой клавише Shift. После завершения выполнения команды происходит вызов окна Clone Options (Режимы клонирования) (рис. 19), где необходимо указать тип создаваемого объекта или группы объектов и количество копий. Всего существует три типа создаваемых при клонировании объектов:

  • Copy (Копия) — новый объект, наследующий все свойства исходного: геометрию, материалы, режимы отображения и пр., однако любые изменения, которые будут произведены в дальнейшем с копией или с оригиналом, уникальны и будут применяться только к модифицируемому объекту;
  • Instance (Экземпляр) — новый объект является полной копией исходного, и между ними создается двусторонняя логическая связь: любые изменения оригинала отображаются во всех его клонах, и наоборот;
  • Reference (Ссылка) — новый объект является полной копией исходного, но с односторонней связью: изменения оригинала будут вызывать изменения его клонов.

 

Рис. 19. Определение параметров клонирования

Рис. 19. Определение параметров клонирования

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

Можно клонировать объекты непосредственно при помощи команды Clone (Клонировать) из меню Edit (Редактировать) или из контекстного меню. Данный вариант создания клонов объектов удобен, если клоны должны иметь те же координаты, что и исходное изображение.

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

 

Рис. 20. Вид изображения после клонирования с масштабированием

Рис. 20. Вид изображения после клонирования с масштабированием

А теперь проведем еще один эксперимент с клонированием и попробуем создать имитацию резьбы на каменной поверхности. Вначале создайте исходные объекты: каменную плиту на основе примитива ChamferBox и заготовку для резьбы на основе примитива RingWave (рис. 21 и 22). Не забудьте выровнять объекты по центру относительно осей X и Y при помощи команды Align (Выровнять). Выделите объект RingWave01 и воспользуйтесь командой Scale (Масштабировать) при нажатой клавише Shift, создавая два клона волнообразного кольца (рис. 23). В итоге каменная плита преобразится и станет напоминать рис. 24. Конечно, для полной имитации следовало бы подобрать подходящую текстуру, но к этой задаче мы еще вернемся на одном из следующих уроков.

 

Рис. 21. Исходный вид изображения — плита и декоративная заготовка для резьбы

Рис. 21. Исходный вид изображения — плита и декоративная заготовка для резьбы

Рис. 22. Параметры настройки примитива RingWave

Рис. 22. Параметры настройки примитива RingWave

Рис. 23. Изображение в процессе масштабирования

Рис. 23. Изображение в процессе масштабирования

Рис. 24. Каменная плита с резьбой

Рис. 24. Каменная плита с резьбой