1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Boolean union множество (несколько) объектов за ра

Тема в разделе "Maya", создана пользователем 3rr0r, 19 июн 2013.

Модераторы: Dark™, Skif
  1. 3rr0r

    3rr0r Знаток

    С нами с:
    14.09.2006
    Сообщения:
    201
    Симпатии:
    7
    Баллы:
    28
    Есть грязная геометрия (много пересекающихся объектов). Нужно их всех сбулить юнионом, чтобы получился один объект с замысловатым рельефом.
    Написал скрипт, который работает на тестовых наборах произвольных объектов-примитивов. Но если наделать множество кубов, например, сдвинутых только по одной оси (то есть у некоторых кубов грани совпадают или находятся очень близко), то скрипт валится и говорит, что не может произвести операцию булина.
    Скрипт после каждой булевой операции делает триангуляцию и квадрангуляцию для чистой топологии.
    И на примере в прикрепленной картинке валится.
    Как решить эту задачу?
    Вот скрипт на всякий случай

    Код:
    string $obj_list[]=`ls -sl`;
    string $first_obj=$obj_list[0];
    
    for($i = 1; $i < size($obj_list); $i++)
    {
        $next_obj=$obj_list[$i];
        polyBoolOp -op 1 -ch 1 -useThresholds 1 -preserveColor 0 $first_obj $next_obj;
        string $objects[]=`ls -sl`;
        $first_obj=$objects[0];
        polyTriangulate -ch 1 $first_obj;
        polyQuad  -a 30 -kgb 0 -ktb 0 -khe 0 -ws 0 -ch 1 $first_obj;
        DeleteHistory;
        refresh;
    }
    
     

    Вложения:

    • 3134287.jpg
      3134287.jpg
      Размер файла:
      54,7 КБ
      Просмотров:
      61
  2. Покатигорошек

    Покатигорошек Активный участник

    С нами с:
    09.12.2005
    Сообщения:
    232
    Симпатии:
    3
    Баллы:
    15
    Для начала можно тупо всё в 1000 отскейлить, сбулить и обратно.
     
  3. Владимир Забелин

    Владимир Забелин Активный участник

    С нами с:
    19.04.2012
    Сообщения:
    400
    Симпатии:
    12
    Баллы:
    17
    думается мне, если просто скомбайнить, то результат будет и корректнее и легче.
     
  4. 3rr0r

    3rr0r Знаток

    С нами с:
    14.09.2006
    Сообщения:
    201
    Симпатии:
    7
    Баллы:
    28

    А это сработало! Спасибо!
    И задача была именно сбулить юнионом, а не скомбайнить.
     
  5. Владимир Забелин

    Владимир Забелин Активный участник

    С нами с:
    19.04.2012
    Сообщения:
    400
    Симпатии:
    12
    Баллы:
    17
    сбулить была скорее всего не задача, а один из вариантов решения задачи моделирования. не самый лучший, кстати...
     
  6. iNOD

    iNOD Активный участник

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Ну это да, но смотря для какой целы еще это нужно, например если потом на нем будет использоваться бленд шейпы, то булит придется всеравно.
     
  7. Владимир Забелин

    Владимир Забелин Активный участник

    С нами с:
    19.04.2012
    Сообщения:
    400
    Симпатии:
    12
    Баллы:
    17
    неужели?
    вот за все 15 лет существования майа ни разу ни булил и студентам категорически не советовал. если алгоритм решения поставленной задачи включает в себя буль, то это плохой алгоритм.
    лично мне так кажется.
     
  8. 3rr0r

    3rr0r Знаток

    С нами с:
    14.09.2006
    Сообщения:
    201
    Симпатии:
    7
    Баллы:
    28
    :) Ладно, скажу зачем мне булить. Сам тоже никогда эту операцию не использовал. Здесь же мне нужно было сделать хаотично расположенную плитку для облицовки дома, который пойдет на 3д печать. Но пересекающиеся объекты тоже годятся, как выяснилось. Так что вопрос решен и снят. Зато у меня теперь есть скрипт, который может кучу объектов в один сбулить. Может где пригодится.
     
  9. Владимир Забелин

    Владимир Забелин Активный участник

    С нами с:
    19.04.2012
    Сообщения:
    400
    Симпатии:
    12
    Баллы:
    17
    это вряд ли. как любил говаривать наш прораб в стройотряде: "работа проделана большая, но бессмысленная..."
     
Модераторы: Dark™, Skif

Поделиться этой страницей