Есть грязная геометрия (много пересекающихся объектов). Нужно их всех сбулить юнионом, чтобы получился один объект с замысловатым рельефом.
Написал скрипт, который работает на тестовых наборах произвольных объектов-примитивов. Но если наделать множество кубов, например, сдвинутых только по одной оси (то есть у некоторых кубов грани совпадают или находятся очень близко), то скрипт валится и говорит, что не может произвести операцию булина.
Скрипт после каждой булевой операции делает триангуляцию и квадрангуляцию для чистой топологии.
И на примере в прикрепленной картинке валится.
Как решить эту задачу?
Вот скрипт на всякий случай
Написал скрипт, который работает на тестовых наборах произвольных объектов-примитивов. Но если наделать множество кубов, например, сдвинутых только по одной оси (то есть у некоторых кубов грани совпадают или находятся очень близко), то скрипт валится и говорит, что не может произвести операцию булина.
Скрипт после каждой булевой операции делает триангуляцию и квадрангуляцию для чистой топологии.
И на примере в прикрепленной картинке валится.
Как решить эту задачу?
Вот скрипт на всякий случай
Код:
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;
}
Вложения
-
54,7 КБ Просмотров: 311