ПРОГРАМИШКА.РФ
Видеоуроки - учиться с нами просто
Посмотрел. Послушал. Выучил

RUB

Модификатор Логический

Введение

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

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

../../../_images/Modifier_Generate_Boolean_Union_Intersect_Difference_Examples.jpg

Рис. 1 - объединение, пересечение и разность между Кубом и UV-сферой, модификатор применен к сфере c использованием Куба в качестве цели(объекта). (Объединение использует N-угольники).

Описание

Логический модификатор может быть использован только на объектах полисетка.

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

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

Результаты операции над сетками будут отображаться только в объектном режиме 3D вида.

Примечание

  • Логический модификатор работает с открытыми и закрытыми объемами.

  • Логический модификатор не работает на ребрах без граней.

  • Целевая топология определяет новую топологию модифицированной полисетки.

  • Нормали граней учитываются для расчетов.

  • Грани помеченные как гладкие или плоские не влияют на результаты расчета данного модификатора. (См. Рис. 28 и 29.)

  • Линия, по которой этот модификатор рассчитывается разделяет первый тангенциальный контакт между гранями модифицированной полисетки и цели.

Совет

Это динамический модификатор работает в реальном времени!

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

Использование

Используя установку Blender по умолчанию, выделите нужную полисетку, идите в окно свойств, который расположен в правой части экрана Blender, ниже окна структуры проекта. Нажмите на модификаторы, который представляет собой изображение гаечного ключа (см. рис. 2 - Логический модификатор; гаечный ключ подсвечивается синим). Затем, нажмите на кнопку Добавить модификатор и Blender покажет вам список всех доступных модификаторов. Логический модификатор находится на третьей строке в колонке генерация.

Вы также можете нажать на кнопку Добавить модификатор и использовать N, чтобы добавить Логический модификатор, или использовать поиск Blender нажатием клавиши Spacebar и вписать “Добавить модификатор”, нажмите на кнопку Добавить модификатор и нажмите N.

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

Вы можете добавить один или более модификаторов этого типа для объекта, но вы можете применить только одну операцию Логического модификатора одновременно.

Опции

../../../_images/Modifier_Generate_Boolean_Boolean_Modifier_Options.jpg

Рис. 2 - Логический Модификатор

Операции

Операция

Логическая операция которая будет использована.

Разница

Изменяет полисетку вычитая из целевой полисетки.

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

  • Если в измененной есть перевернутые нормали, Блендер добавит обе полисетки (Объединит).

  • Если обе полисетки используют перевернутые нормали, результатом будет пересечение с целевой полисеткой.

Объединение

Целевой сетки добавляется к модифицирующей сетке.

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

  • Если в измененный сетки используются перевернутые нормали, Blender будет вычитать из целевой полисетки.

  • Если обе полисетки использует перевернутые нормали, результатом будет пересечение с модифицированной полисеткой.

Пересечение

Целевая полисетка вычитается из модифицированной полисетки.

  • Если целевая полисетки использует перевернутые нормали, Blender будет вычитать целевую сетку.

  • Если в измененной полисетке используются перевернутые нормали, Blender будет пересекать целевую полисетку.

  • Если обе полисетки используют перевернутые нормали, Blender добавит обе полисетки (Объединит).

Объект

Имя целевого объекта полисетки.

Материалы

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

Исключение составляет лишь операция Разница, когда нормали мишени и модифицированной полисетке перевернуты (рис 7 и 8). В этом случае Blender будет проецировать текстуры в вертикальном направлении над целевым использованием центра контакта полисетки в качестве опоры и в результате полисетка будет иметь измененную полисетку в результате вычитания из целевой. Для сложных целевых сеток в некоторых конкретных случаях Вам может потребоваться переназначить материалы для граней, потому что Blender будет использовать возможные проекции, и это может привести к не оптимальному назначению текстуры.

Ниже, приведены некоторые примеры, чтобы проиллюстрировать, как работает с материалами Логический модификатор; мы взяли куб в качестве изменяемой полисетки, и икосферу как цель с одним материалом (белый). Мы добавили четыре различных индекса одной из граней Куба, оставив другие с основным материалом на других гранях. На рис. 3 показано, как Логический модификатор взаимодействует с материалами. Рисунки 4, 5 и 6 показывают три различные логические операции применяемые к модифицированной полисетке. Полисетки используют нормали направленные наружу (нормаль полисетки). Посмотрите их подписи, дополнительные сведения.

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Base.jpg

Рис. 3 - Куб с Мульти-Материалом (модифицированной) полисетки и Икосфера (целевой) с основным материалом

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Union.jpg

Рис. 4 - Объединение - первый активный материал добавляется в куб (новая топология); другие материалы остаются в старой топологии

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Difference_.jpg

Рис. 5 - Разница- Икосфера вычиталась из Куба; новая топология получила первый активный Материал Куба

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Intersect_.jpg

Рис. 6 - Пересечение - результирующая полисетка была скопирована и повернута 180- - Вы можете увидеть первый активный материал Куба на задней грани (новая топология); передний торец получил 4 основных материала Куба.

В наших последних примерах (рис. 7 и 8) Как Логический модификатор работает с материалами, у нас есть перевернутые нормали для обоих целей (Икосфера) и модифицированной полисетки (Куб). Как мы уже говорили ранее, это скорее исключение, чем правило. Как видите, цель получила материалы из модифицированной полисетки.

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Inverted_Normals_Back.jpg

Фиг. 7 - Перед цели с материалом модифицированной полисетки

../../../_images/Modifier_Generate_Boolean_Multi_Materials_Example_Inverted_Normals_Front.jpg

Фиг. 7 - Задняя часть цели с материалом модифицированной полисетки

UV карта

Когда ваша UV-карта находится на вашей цели, Blender добавит карту для каждой из граней в цели. Когда вы примените Логический модификатор, Blender будет следовать UV картам уже в назначенных гранях целевой топологии, Это будет результат операции на модифицированной полисетке. Blender также будет использовать те же изображения, что и на целевых гранях в модифицированной сетки.

Предупреждение

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

Ниже у нас есть четыре изображения, УФ сфера наносится на карту с тестовой сеткой, тонированной в голубой цвет и другие грани тонированные в фиолетовый цвет, а одна грань куба тонированная в светло-оранжевый цвет, а другие грани с помощью обычной тестовой-сетки. На рис. 9 показана операция на старте (разница), и справа (рис. 10), результирующая полисетка. В рис. 11 и 12 мы покажем развертку в Окне редактора UV/Изображений Blender.

../../../_images/Modifier_Generate_Boolean_UV_Boolean_Difference_Operation_Op_Start.jpg

Рис. 9 - UV сфера и куб с разными UV картами

../../../_images/Modifier_Generate_Boolean_UV_Boolean_Difference_Operation_Applied.jpg

Рис. 10 - Примененная операция “Разница”

../../../_images/Modifier_Generate_Boolean_UV_Map_Face_Modified_Mesh.jpg

Рис. 11 - Грани модифицированной полисетки на карте

../../../_images/Modifier_Generate_Boolean_UV_Map_Face_Modified_Mesh_New_Topology.jpg

Рис. 12 - Новая топология на карте и UV присвоенными гранями; у нас есть еще изображения, назначенные на грани фиолетовая тонировка.

Другие модификаторы

../../../_images/Modifier_Generate_Boolean_Error_Message_Boolean_Operation.jpg

Рис. 13 - Логический модификатор с сообщением об ошибке

Логический модификатор рассчитывается через целевую модифицированную топологию полисетки и размеры. Другие добавленные модификаторы модифицируют полисетку по очереди. Это означает, что если цель использует другой модификатор, как подразделение поверхности, результирующая топология для модифицированной полисетки будет учитывать подразделение поверхности цели; но для модифицированной полисетки, базовая топология используется в любом случае (см. примеры).

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

Логический модификатор может быть добавлен вместе с другими модификаторами в модифицированную полисетку, но в зависимости от модификатора, расчеты не могут быть выполнены, и/или модификатор нельзя выполнить. Когда модификатор не может быть выполнен, он будет показывать сообщение "невозможно выполнить логическую операцию" (см. рис. 13), и когда модификатор не может быть применен к сетке, Blender покажет сообщение "модификатор выключен, применение пропущено.". В этом случае, Вы должны либо удалить некоторые модификаторы или применить необходимые.

Самый распространенный случай-это когда вы добавляете или копируете Логический модификатор для использования в модифицированной сетки в сочетании с другим целями позже; Blender поместит предупреждение в последующие Логические модификаторы в стеке, в зависимости от операции, потому Вы можете создать параллельные логические операции для той же модифицированной полисетке, которые в большинстве случаев невозможно выполнить в зависимости от выбранной цели. В этом случае, можно применить первый Логический модификатор из стека для цели, а затем использовать другой Логический модификатор(ы) в стеке для последующих операций.

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

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

Ниже приведены два изображения: одно с добавленным подразделением поверхности в цель (рис. 14), и другой с результирующей топологией (рис. 15).

../../../_images/Modifier_Generate_Boolean_Subsurf_Added_To_The_Target.jpg

Рис. 14 - Подразделение поверхности добавлено только в цель (Икосферу)

../../../_images/Modifier_Generate_Boolean_Resulting_Mesh_Subsurf_Added_To_The_Target.jpg

Рис. 15 - Результирующая топология. Подразделение поверхности добавленное в цель было учтено

Как Вы можете видеть, добавлено (не применено) подразделение поверхности до цели было принято во внимание. Топология Икосферы с подразделением поверхности (уровень 2) был полностью перенесен на модифицированную сетку.

Совет

Целевая топология определяет результирующую топологию

Целевая топология определяет результаты операции Логический модификатор. Это означает, что любой модификатор добавляется к цели которая изменяет свою топологию в результате операции над полисеткой.

Параллельные Операции

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

Подсказки

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

Совет

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

Нормали граней

При использовании Логических модификаторов, Blender будет использовать нормали граней для расчета трех логических операций. Направление нормали будет определять результат из трех доступных операций. Когда один из объектов имеет инвертированные нормали, на самом деле операция умножения на -1 и инвертирующий расчет. Вы можете, в любое время, выбрать измененную полисетку, Вы должны использовать режим правки и перевернуть нормали, чтобы изменить поведение Логического модификатора. См. Советы по устранению смешанных Нормалей ниже.

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

Это означает, что вы можете использовать нормали полисеток полностью указав нормали во внутрь или наружу для объектов учавствующих в операции, но нельзя смешивать нормали указывающие внутрь и наружу используемые для расчетов граней топологии,. В этом случае Blender будет включить модификатор, и вы можете применить модификатор. [?] Мы сделали некоторые примеры с кубом и икосферой и указали результаты.

См. рис. 16 и 17 - все нормали граней направлены наружу (нормали полисетки).

../../../_images/Modifier_Generate_Boolean_Normals_Pointing_Outwards.jpg

Рис. 16 - Грани с нормалями, указывающими наружу

../../../_images/Modifier_Generate_Boolean_Difference_Normals_Pointing_Outwards.jpg

Рис. 17 - Обычный Логический модификатор, операция (операция разности)

См. Рис. 18 и 19 - все нормали граней направлены внутрь (Полисетка с инвертированными нормалями)

../../../_images/Modifier_Generate_Boolean_Normals_Pointing_Inwards.jpg

Рис. 18 - Граней с нормалями, указывающими внутрь

../../../_images/Modifier_Generate_Boolean_Intersection_Normals_Pointing_Inwards.jpg

Рис. 19 - Обычный Логический модификатор операция (операция пересечения)

Теперь, давайте посмотрим, что происходит когда направления нормалей смешиваются для одного из участников операции Логического модификатора. На Рис. 20 - Нормали граней смешанные, указывают на разные направления и 21 - в результате операции, вы можете увидеть, что модификатор имеет плохие эффекты при нанесении, остаются открытые грани:

../../../_images/Modifier_Generate_Boolean_Normals_Mixed_Inwards_Outwards.jpg

Фиг. 20 - Нормали граней смешанные, указывают на разные направления

../../../_images/Modifier_Generate_Boolean_Resulting_Mesh_Normals_Mixed.jpg

Фиг. 21 - В результате операции, модификатор имеет плохой эффект при нанесении, оставляя открытым грани

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

Советы для решения проблем со смешанными нормалями

Вы можете исправить смешанные нормалей путем пересчета их наружу или во внутрь; здесь мы также даем Вам небольшую подсказку о том, как это сделать до использования Логического модификатора:

../../../_images/Modifier_Generate_Boolean_Mesh_Display_Transform_Panel.jpg

Рис. 22 - отображение полисетки в панели трансформации

Показать нормали граней, вы можете открыть панель свойств, находим вкладку отображение полисетки, и нажимаете на маленький куб без оранжевой точки. (См. Рис. 22 - отображение полисетки на панели.свойств) Вы также можете изменить высоту по оси, которая указывает направление нормали. По умолчанию используется значение 0.1.

Когда некоторые направления нормалей смешиваются указывая внутрь и наружу, вы можете пересчитать их внутрь с помощьюbd:Ctrl-Shift-N и наружу с использованием Ctrl-N. Если нормали по-прежнему смешанные из-за сложной полисетки, вы можете изменить к выбранные грани в режиме Режим правки, и используя Ctrl-Tab и выбрать режим выделения Грань. Затем выберите грани, которые указывают в неверном направлении, используя Shift-RMB и используя меню Полисетка в заголовке окна 3D-вида, идите в пункт Нормали и выберете Перевернуть нормали:

../../../_images/Modifier_Generate_Boolean_Recalculate_Normals_Menu_Mesh_Edit_Mode.jpg

Рис. 23 - Пункт меню в 3D вид - пересчитать и перевернуть нормали

Пустые или Дублированные грани

Данный модификатор не работает, когда измененные и/или целевые полисетки используют пустые грани в топологии, используемые для расчетов. Если модификатор сталкивается с ситуацией, когда у вас есть пустые грани смешанные с нормальными гранями, модификатор будет попробовать, как только возможно, соединить грани и применить операцию. Для ситуаций, когда у Вас есть две параллельные грани в том же положении, модификатор будет действовать на целевую полисетку через обе грани, но результирующие нормали могут быть не верные. Чтобы избежать дублирования граней, вы можете удалить дублированные вершины до пересчета нормалей наружу или внутрь. Кнопка для удаления двойников находится на панели инструментов полисетки в 3D виде, в режиме правки.

Лучший сценарий использования этого модификатора-это когда у Вас есть чистая полисетка с гранями четко указывающими в направлении (во внутрь/наружу)

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

../../../_images/Modifier_Generate_Boolean_Mesh_With_Mixed_Empty_Faces.jpg

Рис. 24 - Полисетки с двумя пустыми гранями и смешанными нормалями на гранях

../../../_images/Modifier_Generate_Boolean_Mesh_With_Mixed_Empty_Faces_Result.jpg

Рис. 25 - Результат разности примененной операции - Blender соединил то, что было возможно.

Незамкнутые объемы

Логический модификатор позволяет использовать открытые полисетки или незамкнутые объемы (не открытые грани).

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

См. рис. 26 и рис. 27 - в результате операции используется два не замкнутых объема с гранями, образуя новую топологию.

../../../_images/Modifier_Generate_Boolean_Complete_Face_Shape.jpg

Рис. 26 - незамкнутые объемы формируют новую топологию

../../../_images/Modifier_Generate_Boolean_Resulting_Complete_Face_Shape.jpg

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

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

../../../_images/Modifier_Generate_Boolean_Incomplete_Face_Shape.jpg

Рис. 28 - Открытые объемы, не формирующие новую топологию.

../../../_images/Modifier_Generate_Boolean_Resulting_Incomplete_Face_Shape.jpg

Рис. 29 - Результат операции используя два открытых объема, которые не формируют новую топологию.

Как можно видеть на рис. 28, гранях одного участника в Логической операции дает неполную информацию, модификатору; результат показан на рис. 29 - в результате операции используется два открытых объема, которые не формируют новую топологию. Результирующие ребра запутываются и там не достаточно информации, чтобы создать грани для полисетки. Этот пример использует гладкое затенение UV-сферы разрезанной пополам. Как уже говорилось, в затенение (гладкое/плоское) не влияет на результаты расчета модификатора.