Добавить в закладки

ГЛАВА 10. Составные объекты

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


Булеву алгебру придумал английский математик Джордж Буль (George Boole) для работы с алгебраическими множествами. В трехмерной графике булевы операции применяются к объектам для управления их формой. В этом разделе речь пойдет о булевых операциях над каркасными объектами. Булевы операции над сплайнами рассмотрены в 9 главе.
Булевы операции рассматривают сетчатые объекты как совокупности граней, для которых определены операции сложения и вычитания. Скульпторы либо прилепляют куски глины к заготовке, либо отсекают лишнее. В булевых операциях вы делаете нечто подобное, комбинируя объекты.
Булевы операции всегда применяются к двум объектам. Первый объект, который вы выделяете, называется операндом А. Второй объект - операнд В. Тип булевой операции и взаимное расположение объектов определяют конечный результат (рис. 10.2).



Рис. 10.2. Булевы операции с кубом и сферой


В 3ds max 6 существует пять типов булевых операций:

  •  объединение (union) соединяет оба операнда в один объект и устраняет грани, которые оказались внутри нового объекта;
  •  исключение (А - В) (subtraction (A - В)). Из объема операнда А исключается объем операнда В, и на операнде А строится внутренняя поверхность с добавлением примыкающих граней операнда В. Остаток операнда В удаляется;
  •  исключение (В - A) (subtraction (В - А)). Из объема операнда В исключается объем операнда А. Эта операция использует части граней операнда А, чтобы закрыть образовавшееся отверстие;
  •  пересечение (intersection) удаляет непересекающийся объем двух операндов и использует грани пересечения для построения нового объекта, проще говоря, остается лишь та часть пространства, которая была общей для обоих операндов;
  •  вырезка (cut) открывает внутренний объем операнда В в месте, где к нему примыкает поверхность операнда А. Никакие грани операнда В не добавляются к операнду А. Вместо этого происходит уточнение, разбиение или удаление граней операнда А в месте пересечения его поверхности с поверхностью операнда В.


Исключение - наиболее часто используемая булева операция.

Булево исключение


1. С помощью кнопок или расположите два каркасных объекта так, чтобы они пересекались.
2. Выделите объект, над которым вы хотите выполнить операцию (рис. 10.3).



Рис. 10.3 Выделите первый операнд


3. Щелкнув по кнопке , в панели
Create (Создать) откройте подпанель Geometry (Геометрия) и выберите из выпадающего списка вариант Compound Objects (Составные объекты). Затем щелкните по кнопке Boolean (Булевы операции) в свитке Object Type (Тип объекта). Появится свиток Boolean. Выделенный объект станет операндом А (рис. 10.4).



Рис. 10.4. На панели Create показывается, какой объект является операндом А

4. В свитке Parameters (Параметры) выберите Subtraction (A - В) (Исключение (А - В)) - см. рис. 10.5.



Рис. 10.5. Булева операция Subtraction (А - В) выполняется по умолчанию


5. Щелкните по кнопке
Pick Operand В (Выберите операнд В) и щелкните мышью по второму объекту. Произойдет операция исключения объема второго объекта из первого (рис. 10.6).



Рис. 10.6 От куба «откушен» кусочек


6. Чтобы вычесть первый объект из второго, используйте операцию
Subtraction (В - А) (Исключение (В - А)).

Совет
Операция Subtraction A - В установлена поумолчанию. Иногда булевы операции выполняются некорректно, хотя со времени выхода первой версии программы ошибок стало гораздо меньше. Тем не менее, перед тем как производить булевы операции, будет нелишним создать резервную копию сцены, используя команду Edit => Hold (Правка о Записать). В случае сбоя операции можно восстановить сцену из файла фиксации, используя команду Edit => Fetch (Правка => Восстановить). О том, как с большей пользой применять булевы операции, смотрите «Советы по успешному использованию булевых операций» в этом разделе ниже.

Булево пересечение


Объект, полученный в результате булевого пересечения, выглядит как часть, удаленная при исключении. Если операнды не пересекаются, оба они исчезают.
1. С помощью кнопок и расположите два каркасных объекта так, чтобы они пересекались.
2. Выделите один из объектов (рис. 10.7).



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


3. Примените команду
Boolean (Булевы операции).
4. В свитке
Parameters (Параметры) выберите вариант Intersection (Пересечение) - см. рис. 10.8.



Рис. 10.8 Выберите операцию пересечения


5. Щелкните по кнопке
Pick Operand В и затем - по второму объекту. Грани, не лежащие в пересечении объектов, исчезают, оставляя пересечение в чистом виде (рис. 10.9).



Рис. 10.9. Непересекающиеся грани удалены


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

Булева вырезка


Существует четыре варианта булевой операции вырезки (cut):

  •  уточнить (refine) - добавляет к операнду А новые грани в местах, где он пересекается с поверхностью операнда В;
  •  расщепить (split) - добавляет два набора новых граней к операнду А в местах, где он пересекается с поверхностью операнда В. Каждый из этих наборов используется для задания отдельных элементов в каркасе, так что каркас можно легко разбить. Другими словами, команда Split разделяет сетку операнда А на две части. Граница частей определяется пересечением с операндом В;
  •  убрать внутри (remove inside) - удаляет грани операнда А, которые оказались внутри объема операнда В. Эта опция работает как булево исключение, только к операнду А не добавляются грани;
  •  убрать снаружи (remove outside) - удаляет грани операнда А, которые оказались вне объема операнда В. Эта опция работает как булево пересечение, только к операнду А не добавляются грани.


1. Воспользовавшись панелью
Create , создайте два пересекающихся объекта.
2. Выделите объект, из которого вы хотите произвести вырезку (рис. 10.10).



Рис. 10.10. Выделите объект, из которого будет производиться вырезка


3. Примените команду
Boolean.
4. В свитке
Parameters (Параметры) выберите команду Cut (Вырезка) -рис. 10.11.



Рис. 10.11. Выберите команду Cut => Remove Inside


5. Щелкните по кнопке
Pick Operand В, а затем по второму объекту. Первый объект вырежется по форме второго (рис. 10.12).



Рис. 10.12. Сфера вырезает в кубе дыру, не создавая на месте вырезки новых граней

Анимация булевых объектов


После проведения булевых операций операнды могут быть анимированы. Весьма изящные и зачаровывающие результаты можно использовать для самых разных целей.
1. Выделите булев объект. Например, используйте объект, полученный путем исключения.
2. Щелкнув по кнопке , откройте панель
Modify.
3. В поле
Display (Отобразить) установите флажок Results + Hidden Ops (Результат + Скрытые операнды) -рис. 10.13. Скрытые операнды отобразятся в виде каркаса (рис. 10.14).



Рис. 10.13 Установите флажок Results + Hidden Ops в панели Modify

 



Рис. 10.14. Теперь скрытый операнд отображается в виде каркаса


4. В стековом окне модификаторов щелкните по значку + возле слова
Boolean. Затем щелкните по строке Operands (Операнды) - см. рис. 10.15.



Рис. 10.15. Включение подобъектов для булевой анимации


5. Щелкните по кнопке
Animate (Анимировать).
6. Измените положение ползунка времени.
7. Перетащите операнд, показанный в виде каркаса, сквозь другой операнд (см. рис. 10.16).



Рис. 10.16. Кажется, что пустота, созданная скрытым операндом, движется сквозь другой операнд


8. Выключите опцию
Show Hidden Operands (Показать скрытые операнды).
9. Щелкните по кнопке
Play Animation (Запустить анимацию). Пустота, созданная скрытым операндом, будет плавно перемещаться сквозь другой операнд.

Советы по успешному использованию булевых операций


Если при работе с булевыми объектами происходят сбои, отмените операцию и попробуйте выполнить следующие рекомендации:

  •  увеличьте число граней на том операнде, что проще, и повторите операцию. Наилучший вариант - когда плотности каркасов объектов приблизительно совпадают;
  •  слегка измените положение операндов;
  •  сверните перед использованием стек модификаторов операндов;
  •  чтобы прервать булеву операцию, нажмите клавишу Esc;
  •  правильные операнды имеют замкнутую непрерывную поверхность без самопересечений. Используйте модификатор STL-Check (STL-проверка) для поиска открытых и двойных ребер, двойных граней, внутренних граней и неслитых вершин;
  •  не используйте в качестве операндов длинные и узкие грани. Чтобы укоротить грани объекта, добавьте к примитивам дополнительные сегменты и дополнительные шаги, когда вы подвергаете объекты лофтингу, выдавливанию или вращению;
  •  между операциями сворачивайте стек и преобразовывайте модель в редактируемую сетку. Благодаря этому объект будет задан явно, а не параметрически. Объект, заданный вторым способом, гораздо менее стабилен;
  •  попробуйте применить модификатор Optimize с низким порогом граней (0,1);
  •  если вы не собираетесь проводить анимацию с использованием булевых операций, попробуйте запустить утилиту Collapse (Свернуть) в панели Utility (Утилиты). Команда Collapse создает редактируемую сетку. Удерживая клавишу Ctrl, вы можете успешно выбирать для работы многочисленные малые операнды.

Назад/Меню/Вперед

Rambler's Top100
Hosted by uCoz