Наша новая игра 8 сентября в раннем доступе на steam



Не используйте операции Boolean или ProBoolean

... категорически!

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

Отвечу на все из них... сразу.

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

Вы спросите "Почему запрещен?". Отвечу. После этих операций меш (сетка) превращается в уродство. Так что время, которое Вы потратите на ее вычищение, эквивалентно (но часто больше) времени потраченному на НЕиспользование Boolean.

Если же Вы все обдумали и поняли, что другим методом Вы дырочку точно не вырежите, то читаем дальше. Правда, я тут хотел написать совсем другое: "Если же Вы из тех людей, которые готовы потратить 2 часа на то, что другим методом сделали бы за 7 минут - тогда читаем дальше." Но почему-то не написал.

Логика нижеследующих советов применима к любому 3d-редактору, НО техническая сторона рассмотрена для 3ds Max (и кое где для Maya).

Значит, во-первых: продумайте ВСЕ операции Boolean, которые Вам нужны и сделайте их за одно вычитание.

Что это значит? Это значит, что если Вам нужно сделать 13 дырочек, то не стоит их делать одна за другой. Нужно эти 13 объектов (которыми Вы собрались вырезать 13 дырочек) объединить в один (Attach). А потом уже проделать операцию “Ы”.

Во-вторых: если у Вас возникли проблемы с Boolean, то возможно их избежать, используя ProBoolean (и наоборот).

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

Подготовка меша для операции Boolean

Подготовка меша для операции Boolean

4. (надоело писать в-четвертых) Оператор А и оператор B должны быть редактируемым мешем Editable Poly/Mesh без кучи модификаторов в стеке (и прибитой историей если это Maya).

5. Если Вы уже успели наделать кучу (большую или маленькую) вычитаний Boolean, а после этого решили сделать еще одну операцию, но она никак не получается, то в 99% случаев нужно почистить меш.

Что это значит? Это значит, что нужно посклеивать вершины (weld), которые находятся в одном месте - сидят одна на другой, а на вид, как будто это одна вершинка. Поприбивать вершины, которые имеют только 2 ребра и т.д.

Пока все.

Никогда не сдавайтесь!

P.S. Генри Форду два года твердили все его инженеры, что V-образный двигатель сделать невозможно. А он, несмотря на бесконечные неудачные попытки, достиг своей цели.





Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

комментариев 40 к статье “Не используйте операции Boolean (ProBoolean)”

  1. а какие есть альтернативные методы, например ?

    • Это все зависит от задачи.

      Но в большинстве случаев задачу можно решить ручками.
      Строим изначально сплайновый каркас, а потом конвертируем в Editable Poly.

  2. и то правда..
    правда, к сожалению, без булина иногда не обойтись…

  3. правда, к сожалению, без булина иногда не обойтись…

    Я считаю, если не позволяет — значит не хватает мастерства. Без булина можно обойтись ВСЕГДА. Даже так: ВСЕГДА НУЖНО обходится БЕЗ булина!
    Очень рад за себя, что почти сразу понял всю убогость этого инструмента. Избавило от множества проблем.
    Вы еще не отказались от булина? Тогда сделайте это прямо сейчас!

  4. да, пральна…, после булина надо долго и упорно чистить сетку-строить квады, рисовать лупы)

    замена-
    топологически правильно резать сетку или использовать «плавающую» геометрию
    вот
    http://img188.imageshack.us/img188/2046/1124547.jpg
    http://img3.imageshack.us/img3/9479/floaters.jpg
    http://img23.imageshack.us/img23/6200/howto01.jpg
    http://img44.imageshack.us/img44/5261/shel.jpg

    Уважаемый Yuriki расскажите про топологию пожалуйста.

    • Уважаемый Yuriki расскажите про топологию пожалуйста.

      Что именно Вам интересно? Топология вообще или какие-то конкретные модели (персонажи, техника, растения)?

  5. вообще говоря, как-то приходилось делать ювелирку для станков.
    1. чистить сетку необходимости не было (спасибо, госсподи…)
    2. а вот некоторые технические штуки без булина пришлось бы делать днями и ночами. а тут ПЫЦ!.. и готово =)

  6. Что именно Вам интересно? Топология вообще или какие-то конкретные модели (персонажи, техника, растения)?

    Про топологию вообще

    зы….а вчем отличия топологии персонажей, техники, растений ведь сетка одна везде?

    • Если коротко, то отличие в функциях, которые возлагаются на модель.
      К примеру, если это персонаж для онлайн игры World of Warcraft без явного упора на мимику, то топология головы, а обычно и всего тела, будет сильно отличаться от топологии главного персонажа для анимационного полного метра.
      Тоже самое касается неорганических объектов.
      Топология сундука для простенькой игры будет в корне отличаться от топологии сказочного сундука для мультфильма. Особенно, если последний, перед визуализацией нужно будет еще и в сабдивы (subdivision surface) конвертировать.

  7. А про правила топологии вообще где лучше лупы делать, как првильно разводить квады?

    • Наверное, я напишу статью на эту тему.
      А если коротко и сейчас, то чем больше лупов, тем лучше.

  8. А как тогда сделать неравномерную фаску (т.е. размер ее плавно меняется от большего к меньшему или наоборот) на волнообразном ребре (примерно таком — ~)

  9. да…и у меня постоянно разные проблемы…то сетка на фаске кривая, то на прилегающей плоскости…
    надо получить фаску как на рисунке, если поможете буду очень благодарен…
    http://img7.imageshack.us/img7/363/75961817.th.png

    • Неравномерная фаска. Создание

      Выделяете ребра, которые нужно превратить в фаску.

      Делаете фаску (Chamfer) на минимальную ширину (Chamfer Amount), которая у вас есть на планируемой неравномерной фаске. Минимальная — это та ширина фаски, которая в самом узком месте (на вашем примере — это на вершине волнообразного изгиба).

      Выделяете ребро на фаске, которое нужно увеличить (или сразу все ребра, которые нужно увеличить, если увеличение нужно одинаковое).

      На закладке Edit Geometry (ваш объект должен быть Editable Poly) ставите радиобатон в области Constraints напротив Edge.

      Теперь, если вы будете увеличивать (Scale) выбранное ребро, оно не будет вылазить за «прилегающие плоскости».

      Надеюсь помог!

  10. иииххааа….Спасибо огромное!! я вроде так и делал….но вот глядя на присланный вами скрин сразу получилось… Еще раз спасибо! я с этой проблемой неделю уже ковыряюсь .. (=

  11. В Google SketchUp булены как-раз наоборот, очень хорошо работают, это практически центральная фишка програмы.

  12. И в Автокаде булеаном постоянно пользовалась, очень удобная вещь, проблем не было ни разу. А в Максе — пипец. А другим способом не знаю, как вырезать из криволинейной поверхности (павильон) криволинейную дырку под вход (также криволинейный). Вырезается-то хорошо, точно, только потом страшные искажения (павильон типа стеклянный, через стекло стало смотреть невозможно…).

  13. Все ругают максовский булин. Есть одна программа — называется Magics 13, в нём булин можно проводить над десятками и сотнями мешей по многу тысяч граней, и никогда не давал сбои ) Самый мощный булин из всех известных мне программ полигонального моделирования.

  14. ИМХО: Без Boolean будет все намного сложнее! Я как новичок даже не представляю как во многих случаях обойтись без вычитания! Не зря же этот инструмент присутствует в 3d редакторах…

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

  16. при моделировании потолка многоуровнего proboolean не заменим.

  17. тут videotuts.ru/657-hard-surface-modeling.html готичный чувак вполне убедительно все рассказывает, правда на инглише

  18. Boolean в Rhinoceros довольно таки нормальный,иногда ругается,если значения толерантности не подходят расположению тел,но небольшим сдвигом или скейлом это в большинстве случаев решается,а вообще максимально стараюсь булить в Magics,там действительно все без проблем.
    Пожалуйста,сделайте какой-нибудь урок про правильную топологию животного,сейчас делаю дракончика в modo,в родной rhino органику делать очень проблематично,в modo вроде как в основах моделирования разобралась,но с топологией просто беда,так как ко всему прочему приходится учитывать и толщины (ювелирка).
    Еще раз спасибо за Ваши уроки,лучших я еще не видела и это не лесть,а чистая правда!

  19. Вся разница между булеаном в твердотельном или поверхн. моделировании (ACAD, Rhino, etc.) и полигональном буле (макс, мая и т.д.) в том, что в первом случае — это логическая операция, которая корректна, и по ее результату строится сетка для отображения, перестраиваясь в соответствии с новыми условиями. Во втором случае — это «физическая» операция непосредственно над сеткой, и тут уж как получится — так получится, никто ничего перестраивать не будет. К чему все должно придти — это хардсурфейс и динамеш в ZB.

    Также стоит сказать о технологии «АнтиНУРБС». Дело в том, что все малополигональное моделирование + сглаживание по катмуллу-кларку основано на построении «правильной сетки», которая, по сути, есть nurbs нулевого уровня, т.е. поверхность, построенная по CV без интерполяции. Но после того, как все это сглажено и доведено до 250-500 тыс. полигонов, вполне можно выкусывать куски булем.

    • Я тоже заметила, чем гуще сетка, тем лучше получается, но комп грузится сильнее.

  20. А «ShapeMerge» и «ProCutter» к булеану относится? ( Хотя вот щас, еще раз проверил — и узнал — Да) Они тоже уродуют сетку =/.

    Я все никак понять не могу: откуда берутся эти лишние точки на ребрах! Нету их на Сплайне — нету и все! Нет булеан их магическим образом создает! х( (вот специально, чтобы я помучался)
    Вот если бы булеан работал по логической операции, как в (ACAD, Rhino, etc.), а не по физически, это как сейчас — то думаю, было бы все просто замечательно! =) . Может Разработчики 3ds max это Исправят в дальнейшем =). Буду надеятся…

    Думаю, что лучше будет использовать «Cut» для вырезании круглой дырки в объете ( это как проем для машинных Фар и т.д.) (ведь же точки можно будет потом выровнять между собой ) . А сглаженной дырку сделает «MeshSmooth».
    Это только если надо будет сделать впуклую надпись на объекте, то уже не обойтись без «ShapeMerge».
    А оконный разъем можно сделать с помощью «bridge» в «EditablePoly»

    У меня вопрос: А как еще можно сделать впуклую дыру (или ямку) на объекте? (без использования булевых операций?)

  21. А вот, например, если надо сделать ножку кресла, то как тут обойтись без булеана? http://imageshack.us/photo/my-images/705/chairleg.jpg
    Это не риторический вопрос ))

    • Если это для архивиза, то пойдёт и булёвый модификатор, но если для любой другой области — то ручками моделируем под последующее сглаживание.

      • Спасибо за ответ.

        Вот переделал: http://imageshack.us/photo/my-images/689/chairleg2.jpg Конечно, немного дольше, чем булеаном, но зато лучше смотрится.

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

    • Тут нужно использовать — AntiNurbs (Антинурбс)

      В двух словах :
      Вырезаете геометрию Boolean-ом, затем руками правите геометрию.

      Антинурбс не плохая методика, если руки прямые.

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

  23. у меня после применения bolean касяк который никак не исправить причем он проявляется только если применить отражающий материал типа металл, при рендере страшные артефакты, походу придется заново делать модель…

    • Да не обязательно её делать по новой. Просто в одной вершине спрятано еще 2-3 вершины. Имено они и делают такой косяк с поверхностью металла.
      Достаточно выделить эту облать и применить команду Weld, чтобы объединить эти вершины в одну.

  24. ну, помогли так помогли! =) везде по гуглу, что «надо делать ручками» и «потратить 2 часа на то, что другим методом сделали бы за 7 минут», но почти нигде ничего конкретного на тему «КАК». я вот вообще не понимаю как некоторые вещи сделать по другому, не то что быстрее.

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

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

    закончил на том, что придеться объединять все «вырезки» для вырезания «в один заход», чувствую, если не одержу победу, то проще будет освоить инженерный пакет, чем делать это в максе =(

  25. Спустя десять лет после публикации сего опуса могу добавить. Что функция ПроБулеан это настоящее спасение. По сравнению с обычным Булеаном, который всегда глючил. Этот новый «составной объект» ПроБулеан, введённый что-то около 8 версии Макса — гораздо круче предшественника. ПроБулеан отщипывает лишние куски буквально за один щелчок мышки.

  26. В последнее время наоборот, всё больше начинают использовать булеан. Появились даже плагины для добаваления чамфера или филлета. Ну и еще можно исользовать CAD, и потом сделать ретопо + запечку нормалей.

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com