Занятие 6. Слесарное ремесло.

Базовый курс 3ds Max "с нуля"

Занятие 6. Слесарное ремесло.

Сообщение SergeyMarina » Вс янв 14, 2007 2:57 am

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

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

Одно из самых главных правил трехмерной графики - моделировать лишь видимые на конечном изображении области. Помните легенду о потемкинских деревнях? Согласно ей, князь Потемкин, сопровождавший императрицу Екатерину II в поездке в Крым, показывал ей под видом процветающего края ярко раскрашенные фанерные домики.

Вся трехмерная графика основана на принципе потемкинских деревень. 3D-художник показывает зрителю лишь то, что тот должен увидеть. Что это означает? Представьте себе, что вы создаете закрытый системный блок компьютера. Согласитесь, глупо моделировать материнскую плату, процессор, кулеры, шлейфы и прочую начинку, если после визуализации ничего этого видно не будет. Также не имеет смысла моделировать корпус устройства для чтения CD/DVD, достаточно создать переднюю панель. Если на корпусе есть винты, то вам нужно создать только шляпки, которые видны снаружи.

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

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

Изображение


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

Изображение

Изображение


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

Изображение

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

Изображение

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

В 3ds Max 9 есть два независимых друг от друга набора инструментов для работы с булевыми операциями - составной объект Boolean и модуль Pro Booleans. В большинстве случаев имеет смысл использовать именно модуль Pro Booleans, поскольку результаты его работы более корректны. Однако принцип моделирования остается неизменным, какой бы из способов работы с булевыми объектами ни был выбран.

Для справки: модуль Pro Booleans был доступен и для пользователей 3ds Max 8, однако тогда он не был включен в основной инструментарий программы и распространялся отдельно, в виде расширения (Extension). Поэтому если вы работаете с 3ds Max 8, то для использования Pro Booleans вам нужно установить это расширение.

Сегодняшнее занятие посвящено составному объекту Boolean, а это означает, что вы можете использовать более раннюю версию 3ds Max. Однако уже в следующий раз мы будем говорить о Pro Booleans и его преимуществах, поэтому вам для выполнения урока понадобится 3ds Max 8 с установленными расширением ProBooleans Extension или 3ds Max 9.

Если есть какие-то вопросы относительно версий 3ds Max, просьба писать по вот этому адресу.

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


Существует четыре основных типа булевых операций. Рассмотрим их по очереди.

Union (Сложение)

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

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

Если объекты отображаются в режиме Smooth + Highlights и при этом вспомогательный режим Edged Faces отключен, то определить, что операция булева сложения прошла, вы сможете по смене цветов. В этом случае объекты, которые принимали участие в операции, изменят свой цвет на цвет первого объекта. Это будет указывать на то, что на их основе образована единая поверхность.

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

Изображение

Изображение

Intersection (Пересечение)

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

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

Изображение

Subtraction (Вычитание)

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

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

Изображение


Изображение


Cut (Разрезание)

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

При использовании варианта Refine (Детализация) в топологию результирующего объекта включаются дополнительные ребра по периметру пересечения оболочек объектов.

Изображение


Чтобы разбить объект на два элемента, имеет смысл выбирать вариант Split (Разделить).

Результаты, полученные при выборе вариантов Remove Inside (Удалить внутри) и Remove Outside (Удалить снаружи), напоминают два варианта выполнения операции Subtraction. Разница состоит в том, что в данном случае в том месте, где поверхности взаимодействующих объектов пересекаются, образуется отверстие.

Изображение


Изображение


Создание булевых объектов

Алгоритм создания моделей при помощи булевых операций такой:

1. Нужно выделить первый объект (объект A), который будет участвовать в образовании модели, созданной после выполнения булевой операции.
2. Затем перейти на вкладку Create командной панели, выбрать в категории Geometry строку Compound Objects и нажать кнопку Boolean.
3. После этого установить параметры булевой операции.
4. И, наконец, нажать кнопку Pick Operand B (Выбрать операнд B) в свитке Pick Boolean и щелкнуть на втором объекте (объект B), который будет участвовать в операции.

По умолчанию при выполнении булевой операции исходный объект B удаляется. Однако если вы хотите, чтобы он оставался в сцене в том виде, в котором он присутствовал до булевой операции, необходимо до ее выполнения изменить положение переключателя в свитке Pick Boolean. Этот переключатель имеет четыре положения.

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

Изображение

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

Дополнительные материалы

Что почитать:


Книги

С. и М. Бондаренко. "3ds Max 8. Библиотека пользователя" Глава 7

или

С. и М. Бондаренко. "3ds Max. Самоучитель" Глава 3

Домашнее задание

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

Изображение


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

Изображение

Возьмем за основу для первой части цилиндр (можно цилиндр с фаской - ChamferCylinder), а для второй - параллелепипед. Расположим их в окне проекции таким образом, чтобы параллелепипед заходил в цилиндр.

Изображение

При выполнении булевых операций старайтесь обращать внимание на изменение топологии ребер трехмерных объектов. Казалось бы, простая задача: объединить с помощью булевой операции два объекта. Самый быстрый способ - выделить параллелепипед, щелкнуть на кнопке Boolean, установить переключатель операции в положение Union, нажать кнопку Pick Operand B и выбрать в сцене цилиндр. В результате вы получите объект, по форме напоминающий заготовку для ключа.

Изображение


Однако если включить режим отображения Edged Faces (щелчок правой кнопкой мыши по названию окна проекции), можно увидеть, что топология цилиндра изменилась. На этапе моделирования на это можно не обратить внимания, однако, забегая наперед, скажем, что такие изменения топологии могут усложнить текстурирование моделей. Поэтому возьмите за правило: работать с булевыми операциями в режиме Edged Faces. Это даст возможность контролировать изменения в топологии моделей.

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


Изображение


Несмотря на то, что мы не собираемся текстурировать ключ, поставим перед собой задачу получить модель с минимальными искажениями топологии. Поскольку присоединение цилиндра к параллелепипеду и параллелепипеда к цилиндру неизменно ведет к тому, что в верхнем основании цилиндра появляются дополнительные ребра, мы поступим так: клонируем эту пару объектов, выбрав вариант Copy, и временно скроем любой цилиндр и параллелепипед из окна проекции. Для этого, не снимая выделения с клонированных объектов, выберем в контекстном меню команду Hide Selected или Hide Unselected . Если вы выберете первую команду, будут скрыты новые объекты, если вторую - исходные. Поскольку они идентичны, для нас это не имеет значения.


Изображение



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

Изображение

Полученный кусочек в точности повторяет область, которую нужно вычесть из параллелепипеда. Перейдем на вкладку Modify и изменим название полученного объекта, например, на Intersection. Вернем скрытые объекты в окно проекции, выбрав команду Unhide All в контекстном меню. Выделим параллелепипед, нажмем кнопку Boolean и установим переключатель операции в положение Subtraction (A-B). После этого нажмем кнопку Pick Operand B и выберем объект пересечения. Делать это в окне проекции очень неудобно, поэтому вызовите окно Select Objects и найдите в нем объект, который вы назвали Intersection.

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

Изображение

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

Теперь выполним операцию булевого вычитания. Выделим цилиндр-ручку, в котором нужно сделать отверстие, нажмем Boolean и установим переключатель операции в положение Subtraction (A-B). Нажмем кнопку Pick Operand B и выберем цилиндр, который нужно вычесть.

Изображение

Сделаем острый конец ключа, срезав углы двумя примитивами Box.

Изображение


При этом, обратите внимание на последовательность действий. Выделяем стержень ключа, нажимаем Boolean , проверяем, чтобы была выбрана операция Subtraction (A-B), нажимаем кнопку Pick Operand B и выбираем один из вспомогательных объектов Box. Несмотря на то, что на командной панели кнопка Boolean уже нажата, кликаем по ней еще раз. После этого в списке объектов, которые участвуют в операции ( Operands), остается один объект. Повторяем операцию для второго вспомогательного объекта Box.

Изображение

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

Изображение


Выровняем примитивы ChamferBox так, чтобы они наполовину утопали в стержне. Поочередно выполним вычитание каждого примитива из стержня.

Изображение

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

Изображение

Само вычитание выполняется точно так же.

Изображение

Если в процессе работы над моделью появляются отверстия, вот типичное решение проблемы:

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



Что можно сделать дополнительно, если есть желание:

- Доработать форму ключа, например, сделать скос, как на иллюстрации в начале урока;
- Сделать несколько ключей разной формы;
- Придумать дополнительные элементы сцены, например, сделать кольцо для ключей из сплайнов.
- Ваш вариант :-).

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

Чего НЕ НУЖНО делать в сцене, которую вы присылаете нам:

- создавать ключи средствами Editable Poly и другими средствами моделирования, о которых не идет речь в уроке.
- конвертировать полученный объект в Editable Poly или Editable Mesh.
- накладывать текстуры, которые находятся у вас на жестком диске.
- ставить свет и создавать камеры.
- устанавливать внешние визуализаторы для просчета и использовать их материалы.
- использовать другие плагины.

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

Дополнительные материалы

Важно!

В освоении материалов школы вам очень поможет книга "3ds Max 2008 за 26 уроков" - печатная версия уроков CGLiberty, дополненная расширенными теоретическими сведениями.

Изображение



Как высылать домашнее задание

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

Правила отсылки работ остаются неизменными. На всякий случай напоминаем:

1) Выполнив домашнее задание, сохраните файл сцены в формате max.
2) Файл должен называться точно так же, какой у вас ник на форуме, плюс номер занятия в конце. Например, если бы этот файл отсылали мы, мы бы должны были назвать его Sergey|Marina_6.max
3) Заархивируйте файл сцены, используя архиватор WinRar.
4) Вышлите архив по адресу Изображение

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


Как узнать оценки

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

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

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

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

Хорошего всем настроения на предстоящую неделю!


[ Редактировано Sergey|Marina в 4.4.08 18:15 ]
Аватар пользователя
SergeyMarina
Уоллес и Громит
 
Сообщений: 1812
Зарегистрирован: Пт окт 22, 2004 12:38 am
Откуда: 3Domen.com

Re: Занятие 6. Слесарное ремесло.

Сообщение Cybil » Вс янв 14, 2007 7:07 am

Ключей много не бывает

Изображение

[ Редактировано Sergey|Marina в 14.1.07 14:28 ]
Cybil
Незнакомец
 
Сообщений: 8
Зарегистрирован: Вс дек 24, 2006 11:24 pm
Откуда: г.Свердловск

Re: Занятие 6. Слесарное ремесло.

Сообщение Tihonya » Вс янв 14, 2007 11:27 pm

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

Изображение
Аватар пользователя
Tihonya
Компетентный
 
Сообщений: 217
Зарегистрирован: Вт ноя 29, 2005 12:18 pm
Откуда: СПб

Re: Занятие 6. Слесарное ремесло.

Сообщение nod201 » Пн янв 15, 2007 2:25 am

Трабла после булевого вичетание примитива box тела становитса пустым из нутри как понят как обойти

Изображение
nod201
Хороший знакомый
 
Сообщений: 60
Зарегистрирован: Вс окт 22, 2006 7:47 pm
Откуда: www.3domen.com

Re: Занятие 6. Слесарное ремесло.

Сообщение SergeyMarina » Пн янв 15, 2007 8:11 pm

nod201

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

PS Если у вас еще эта сцена есть с ошибкой, пришлите, пожалуйста, ее нам. Не для оценки.
Аватар пользователя
SergeyMarina
Уоллес и Громит
 
Сообщений: 1812
Зарегистрирован: Пт окт 22, 2004 12:38 am
Откуда: 3Domen.com

Re: Занятие 6. Слесарное ремесло.

Сообщение totem » Вт янв 16, 2007 1:11 am

Изображение
totem
Незнакомец
 
Сообщений: 5
Зарегистрирован: Вс дек 17, 2006 11:22 pm
Откуда: Мухоср...ск

Re: Занятие 6. Слесарное ремесло.

Сообщение nod201 » Ср янв 17, 2007 10:43 pm

калмчество сигментов изминил проверил на максе 9-8 таже хлюг
а павер булеан вообше глючит даже ругает попробовал раз 100 самого начала как просили отправил сцену но чтота ответов нет даже незнаю дащол или нет сцена?

ЗЫ:Как узнать оценки от 5-го занятие ???
по указанному ссылку несмог найти http://www.3domen.com/modules/newbb/vie ... p?forum=15
nod201
Хороший знакомый
 
Сообщений: 60
Зарегистрирован: Вс окт 22, 2006 7:47 pm
Откуда: www.3domen.com

Re: Занятие 6. Слесарное ремесло.

Сообщение Neptune » Чт янв 18, 2007 12:39 am

Мне не совсем понятно.При булевой операцией объединения у меня получается как у Вас в теории (Union (Сложение)). Я поставил Edged Faces и получилось так,как если бы я делал дальше по уроку с помошью union... Поясните пожалуйста.
Neptune
Друг
 
Сообщений: 107
Зарегистрирован: Пн дек 18, 2006 6:29 pm
Откуда: Москва

Re: Занятие 6. Слесарное ремесло.

Сообщение Toha5 » Чт янв 18, 2007 2:46 am

nod201 те же траблы, независимо от версий Max'a. Пробывал также на 8-ом и 9-ом. Решил вопрос уменьшением исключаемых объектов. Точнее, создал основу ключика из кольца и параллепипеда, далее разложил Box'ы и цилиндры которые должны вычитаться, объеденил их все с помощью кнопки CONNECT (находится рядом с Boolean), они получились одним объектом. После этого исключил этот объект без проблем.
Удачи ;-)
Toha5
Незнакомец
 
Сообщений: 7
Зарегистрирован: Ср ноя 22, 2006 5:14 am
Откуда: Украина

Re: Занятие 6. Слесарное ремесло.

Сообщение SergeyMarina » Чт янв 18, 2007 4:13 am

nod201

Извините, что не успеваем мгновенно реагировать.

Действительно, в вашем случае наблюдается ошибка. А пошла она на том моменте, когда вы присоединили ручку ключа к стержню. Мы в уроке намеренно не соединяли части ключа, поскольку это лишняя булевая операция, которая не нужна. Она изменяет топологию объектов, а поскольку модуль Boolean не всегда корректно работает, то при моделировании таким способом следует придерживаться правила: чем меньше операций, тем лучше.

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


ЗЫ:Как узнать оценки от 5-го занятие ???


Очень извиняемся, ссылка была неправильной. Вот тут оценки

http://www.3domen.com/modules/school/vi ... hp?forum=8


Neptune

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




[ Редактировано Sergey|Marina в 18.1.07 01:14 ]
Аватар пользователя
SergeyMarina
Уоллес и Громит
 
Сообщений: 1812
Зарегистрирован: Пт окт 22, 2004 12:38 am
Откуда: 3Domen.com

След.

Вернуться в Класс "A"

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1