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

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

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

Сообщение SergeyMarina » Вс янв 14, 2007 2:59 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 в 18.2.08 16:03 ]
Аватар пользователя
SergeyMarina
Уоллес и Громит
 
Сообщений: 1812
Зарегистрирован: Пт окт 22, 2004 12:38 am
Откуда: 3Domen.com

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

Сообщение Alexvlkap » Вс янв 14, 2007 9:59 am

Изображение


[ Редактировано Sergey|Marina в 14.1.07 14:23 ]
Alexvlkap
Незнакомец
 
Сообщений: 6
Зарегистрирован: Сб янв 06, 2007 10:07 am

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

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

Мои ключи от дома.

Изображение

[ Редактировано Sergey|Marina в 15.1.07 21:09 ]
rust
Новичок
 
Сообщений: 21
Зарегистрирован: Пн окт 23, 2006 3:25 pm
Откуда: Москва

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

Сообщение dark_good » Вт янв 16, 2007 7:45 am

Откроем для себя мир 3D!!

Изображение

[ Редактировано Sergey|Marina в 16.1.07 08:36 ]
dark_good
Новичок
 
Сообщений: 21
Зарегистрирован: Сб янв 06, 2007 9:07 pm

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

Сообщение Zomby » Ср янв 17, 2007 12:57 am

Есть проблема!
У меня при использовании Intersection с цилиндром и стержнем ключа получается не полный объект образованный их пересечением, а только некоторые стороны, т.е. объект получается как бы пустым внутри и отсутствуют некоторые стенки. С другими объектами, например шар и куб, все нормально. Почему так ? Точнее, что не так? :-?

И еще. Я не понял, обе части ключа в конце надо объединять или их просто сгруппировать?
Аватар пользователя
Zomby
Открытый
 
Сообщений: 318
Зарегистрирован: Ср дек 13, 2006 4:45 pm
Откуда: г.Санкт-Петербург

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

Сообщение SergeyMarina » Ср янв 17, 2007 1:32 am

Zomby

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

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

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

Сообщение Zomby » Ср янв 17, 2007 1:53 am

Спасибо. Буду пробовать еще.
Аватар пользователя
Zomby
Открытый
 
Сообщений: 318
Зарегистрирован: Ср дек 13, 2006 4:45 pm
Откуда: г.Санкт-Петербург

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

Сообщение Levas » Чт янв 18, 2007 2:00 pm

Уважаемые Сергей и Марина я тут перчитывал урок по слесарному делу и заметил одну штуку ... Вы пишете что одно из предназначений булевых операций это уменьшение количества просчитываемых поверхностей . Я решил проэкспериментировать: взял два цилиндра и вычел один из другого и вот результат

Изображение

А после вычитания

Изображение

Или может я чего не понял , но получается мы вычитанием увеличили число граней а соответственно и поверхностей ... объясните пожалуйста

[ Редактировано Sergey|Marina в 18.1.07 11:45 ]
Levas
Абориген
 
Сообщений: 350
Зарегистрирован: Чт дек 07, 2006 5:59 pm

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

Сообщение SergeyMarina » Чт янв 18, 2007 8:04 pm

Levas

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

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

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

http://www.3domen.com/uploads/old_images/library/ar ... vas_do.gif

http://www.3domen.com/uploads/old_images/library/ar ... _posle.gif

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

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

Сообщение Levas » Сб янв 20, 2007 2:40 pm

Простите за глупый вопрос , я просто не подумал об увеличении числа полигонов , да и в этом случае если не увеличивать число сегментов по высоте , то обрезать тоже не стоит , ну это если не требуется в дальнейшем использование модификаторов Band, noise и т .д . В любом случае это особо индивидуально
А вот мои ключики

Изображение

Рендерил стандартным рендером так что прошу простить за качество


[ Редактировано Sergey|Marina в 20.1.07 12:00 ]
Levas
Абориген
 
Сообщений: 350
Зарегистрирован: Чт дек 07, 2006 5:59 pm

След.

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

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

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