Blender не работает bool tool с mirror

Заставь булеан работать

Существует мнение, что модификатор « Boolean» плохо работает и что его лучше по-реже использовать, или, еще лучше, совсем отказаться от него. Конечно, булеан не панацея, но в некоторых случаях незаменим.

Некоторые пишут, что булеан « работает через раз», поскольку, действительно бывает, что им выдается такое сообщение:

Если « Boolean выдает ошибку» или « булеан не работает верно» эта статья поможет вам. Если вы не хотите вдаваться в подробности следуйте сразу к этой части, где описываются решения проблем. Статья описывает стандартный модификатор Boolean, но применима и к команде булевской операции ( Mesh → Faces → Intersect ( Boolean)), добавленной в 2.77 так и к аддонам, посторенным на модификаторе.

Как работает Boolean

Как я понимаю, не многие пытаются разобраться, а в чем ошибка, почему blender в одних случаях хорошо и быстро режет сложнейшие модели, в других отказывается сделать булеан-операцию даже с самыми, казалось-бы простыми? Чтобы это понять, нужно иметь хотябы небольшое представление, а как работает этот модификатор. На самом деле булеан Блендера — безотказная вещь, но требующая хороший исходный материал. Гарантирую, если Вы сможете разобраться и исправить модель, Blender справится с булеаном даже в самых сложных случаях ( ну… если хватит оперативки).

Итак, чтобы начать, посетим сайт blender.org, и отыщем, а что-же там написано про булеан:

  • Exactly overlapping faces cause errors.
  • Self-intersecting geometry on either side of the operation ( which also intersects the other side) causes errors.

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

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

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

В результате два объекта разделяются на 4 части, от линии пересечения теперь отходят по четыре плоскости и чтобы завершить операцию, в зависимости от типа ( вычитание, пересечение или объединение) Blender удаляет лишние 2 плоскости.

Например, мне нужно вычесть из куба, отмеченного красным, синий. Нужно взять часть меша № 1 и часть синего куба, которая находится как-бы « внутри» красного № 3, а остальное удалить. Но как Blender узнает, какая часть находится « внутри», а какая « снаружи»? По нормалям. Действительно, мешу необязательно быть замкнутым, главное — чистая линия пересечения и верные нормали. Рассмотрим на примере: я взял сюзанну и плейн:

Затем я добавляю булеан к сюзанне и вычитаю плейн:

Хоть плейн и не замкнут, но у него есть нормаль, по которой часть обезьянки находится « внутри», а часть « снаружи». Но почему пропал глаз? Глаз сюзанны сделан отдельным мешем. В этом легко убедиться, попробовав нажать L на любой части сюзанны. Поэтому совершенно не понятно находится глаз внутри или снаружи, ведь плейн незамкнут. Попробуем так-же развернуть нормали плейна:

Теперь область « внутри» поменялась местами с областью « снаружи». Так ошибки в нормалях могут приводить в ошибках с булеаном, проверяйте, в правильную ли сторону они направлены и используйте Ctrl + N

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

Методы борьбы с ошибками boolean

1. Remove Doubles

Самое первое что вы должны сделать — попробовать старое доброе:

  1. W → R Remove doubles
  2. Ctrl + N Recalculate normals

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

Например, вы сделали объемный текст или кривую и пытаетесь вычесть ее:

Читайте также:  Как правильно настроить contra cam

Чтобы сделать острое ребро, обычно в 3D-графике на его месте делается разрез. С виду меш цельный, но на самом деле он надрезан по границам букв. Это легко увидеть, если поставить дисплейс без текстуры:

Точно так-же работает и модификатор Edge Split, создающий острые углы. Если вы попробуйте вычесть объект с Edge Split, булеан, возможно, не сработает

Решение проблемы: W → R Remove doubles

2. Exactly overlapping faces.

« Exactly overlapping faces cause errors» — написано в документации Blender — что это значит? Рассмотрим на примере. Я вычитаю один объект из Text и из Cube, а затем пытаюсь объединить их:

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

Решение проблемы: Следите за порядком булеанов ( сделайте сначала объединение, а потом вычитайте) или примените Boolean и чуть сдвиньте один объект. Новый тип булеана B-mesh ( 2.78) может обойти эту проблему. Попробуйте сменить тип операции

3. Примените масштаб

При отрицательном масштабе объект становится вывернутым, что может отразится на операции. Преверьте нет ли у вас отрицательного масштабирования, если есть примените его Ctrl + A → Scale. Затем, нужно будет пересчитать нормали Tab , Ctrl + N

4. 3D-print toolbox.

На сложных моделях иногда трудно найти дыры в объекте, или другие косяки, аддон « 3D-print toolbox» укажет вам на них. Он входит в стандартный набор аддонов, нужно только лишь активировать его в настройках File → User Preferences ( Ctrl + Alt + U ).

Далее в Toolbox 3D-вида ( T ) появится новая вкладка:

Войдите в Edit Mode и нажмите Checks: → Solid. Внизу появится сообщение с количеством « неправильных ребер». Нажмите соответствующую кнопку, и Blender выделит эти ребра, указав на неточности в модели:

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

Вторая кнопка указывает на проблемы с нормалями

Решение проблемы: с помощью 3D-print toolbox исправьте меши так, чтобы Checks: → Solid выдавал нули

5. Самопересечение.

Самопересечение — это когда полигоны объекта пересекают полигоны этого-же объекта. Это бывает, например, когда вы используете Bevel у текста или кривой:

Bevel расширяет область вокруг кривой, поэтому во внутренних углах образуются области самопересечения:

Решение проблемы: нужно вручную склеить вершины ( Alt + M ) или с помощью привязки, таким образом, чтобы область пересечения исчезла:

Часто бывает и другое: объект с самопересечением проходит операцию булеана, но на месте самопересечения образуется дырка. Такой объект застопорится уже на следующем булеане, что вводит в заблуждение ( один булеан прошел, второй — нет, значит блендер-баг)

6. Сложные полигоны.

В особо редких случаях бывает проблема, связанная с N-gon. Она настолько редкая, что мне не удается ее повторить, чтобы сделать скриншот. Так-же я не уверен можно ли ее словить в новых версиях Blender. Суть проблемы в том, что иногда в результате многочисленных булеанов создается N-gon такой сложной формы, что при операции булеана он может буквально самопересечься.

Решение проблемы: разбить N-gon на более мелкие полигоны. Или подразделить большой исходный полигон, который участвует в операции булеана с более мелким или детальным объектом

Подводим итог.

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

  1. W → R Remove doubles, затем Ctrl + N Recalculate normals
  2. Проверьте не накладываются ли фейсы, например, в результате неправильного порядка булеанов.
  3. С помощью 3D-print toolbox проверьте меш ( Checks: → Solid)
  4. Найдите область самопересечения и исправьте ее.
  5. Если ничего не помогло — напишите в комментариях, может, я что-то пропустил? Сделаем эту статью лучше!
Читайте также:  Не работает трансляция nvidia

Источник

Blender не работает bool tool с mirror

Blender

1. Your object should have that blue wrench icon appear beside it in the outliner, that means there is a modifier attached to it.

2. These two buttons have to be on, blue, like in this screenshot for the modifier to actually display what it is doing in the viewport. The computer screen icon just before those two buttons would toggle visibility of the modifier in the render I believe.

3. You probably want to put your mirror modifier on the the top of the stack above the subsurf modifier. I would assume they did that in the tutorial as well — mirror first subsurf after. The modifier on the top of the stack is applied first, and I believe I’ve heard somewhere it is better for the mirror modifier to be calculated first before the subsurf modifier. I don’t think I can remember the reason why though, so if you wanted a reason you’d have to google why mirror comes first. Also a possibility I’m imagining that memory wrong and it was just my personal preference and that it doesn’t really matter which comes first.

Edit: I got the icons mixed up in #1, the blue wrench icon is what I meant. Fixed above.

Also, there is that orange dot that will be at the center of an object when you first add it. Called the object’s origin point.

The mirror modifier mirrors around that, and when you move a mesh in edit mode, the origin point stays where it was in object mode. Meaning you could end up dragging your mesh in edit mode way off from the origin point causing the actual mirroring to take place off screen where you are not seeing it.

I don’t think this is your issue, I suspect one of the visibility buttons being turned off is far more likely. You’d probably see if your mesh had been pulled off the origin point unless you are not rotating the camera or you somehow pulled the mesh EXTREMELY far off the origin point. Just mentioning it to cover everything I can think of, so you can solve this now (hopefully).

If it did happen to be because of where your origin point is though, you can recalculate it so it mirrors better. You just make sure you have the appropriate object selected, and go into object mode, then top left there is one of those menus called «Object». Open that, go to «Set Origin» and then select one of the «Set Origin to Center of Mass» options.

Works totally fine on my end, very much exactly like it did in previous versions.
You sure you havent turned edit mode viewport display turned off or something?

Can you share a screenshot of your object and the mirror modifier settings?

Don’t apply the modifier before you go into edit mode. Once you apply the modifier it mirrors it and you’re left with a mirrored mesh to work with, but while you’re working the on it keep the mirror modifier active but not applied

For whatever reason when you apply the modifier it doesn’t do anything but if its active and not appied it works!

Don’t apply the modifier before you go into edit mode. Once you apply the modifier it mirrors it and you’re left with a mirrored mesh to work with, but while you’re working the on it keep the mirror modifier active but not applied

Читайте также:  Книжная библиотека не работает

For whatever reason when you apply the modifier it doesn’t do anything but if its active and not appied it works!

I’m confused about what you are saying here so I might be interpreting this wrong. But it sounds to me like you are describing how you are supposed to use modifiers in the first place (don’t apply them unless you absolutely have to) and that you were doing it wrong to begin with. If I’m reading this right, it sounds like you were adding the mirror modifier in object mode, then applying it, then going into edit mode to actually change your mesh.

One idea behind the modifiers is so you can have a non-destructive workflow — that is, so you can make changes to your model while not destroying the basic parts of the mesh, so you can revert back to the base mesh if you need to. So actually applying a modifier goes against that idea, because then that makes the changes permanent (once you can’t undo past that point anyway).

So in general, you should avoid actually applying the modifiers unless you actually have to. Add them to the model and let them stay in the stack without applying, they’ll still do the modifications and you won’t make any irrevocable changes to your base mesh. The changes a modifier makes to your mesh will show up in the render without having to apply the modifier.

Don’t apply the modifier before you go into edit mode. Once you apply the modifier it mirrors it and you’re left with a mirrored mesh to work with, but while you’re working the on it keep the mirror modifier active but not applied

For whatever reason when you apply the modifier it doesn’t do anything but if its active and not appied it works!

I’m confused about what you are saying here so I might be interpreting this wrong. But it sounds to me like you are describing how you are supposed to try and use modifiers in the first place (don’t apply them unless you absolutely have to) and that you were doing it wrong to begin with. If I’m reading this right, it sounds like you were adding the mirror modifier in object mode, then applying it, then going into edit mode to actually change your mesh.

One idea behind the modifiers is so you can have a non-destructive workflow — that is, so you can make changes to your model while not destroying the basic parts of the mesh, so you can revert back to the base mesh if you need to. So actually applying a modifier goes against that idea, because then that makes the changes permanent (once you can’t undo past that point anyway).

So in general, you should avoid actually applying the modifiers unless you actually have to. Add them to the model and let them stay in the stack without applying, they’ll still do the modifications and you won’t make any irrevocable changes to your base mesh. The changes a modifier makes to your mesh will show up in the render without having to apply the modifier.

yhea you were right on the assessment. I was doing it wrong to begin with by trying to add in the modifier when I wasn’t supposed to. I was trying to apply it to the edit mode and every time I did I got errors not allowing me to apply them and when I went back into object mode to apply the modifier it applies, then going back into edit mode with no results. Because of the fact that I applied the modifier when I wasn’t supposed to

Источник

Оцените статью