Да,
это истинная правда, булевские операции - настоящий кошмар. Они есть во многих
пакетах полигонального моделирования, что позволяет достаточно легко складывать
и вычитать тела (рис. 2.27). Может быть, это и удобно при работе с объектами неизменной
формы, но не в том случае, когда объекты приходится деформировать.
После применения к модели булевской
операции возникает масса ненужных многоугольников. Если вы посмотрите на след,
появившийся в результате ее проведения, то увидите огромное количество крошечных
граней, корректирующих изъяны на стыках объектов. Эти многоугольники практически
не влияют на вид модели, но делают ее вдвое, а то и втрое «тяжелее».
К тому же, при сглаживании булевские поверхности покрываются складками из-за нежелательных
добавочных элементов, что показано на рис. 2.28. Сравните с этим изображением
рис. 2.29, где проиллюстрирован результат выполнения аналогичных действий, но
без использования булевских операций. Как видите, поверхность вокруг отверстия
хорошо сглажена.
Рис.
2.27. Вычитание цилиндра из сферы с помощью булевской операции
Даже
если булевские операции применяются к моделям с низким разрешением, на швах получается
сущее безобразие. После сглаживания поверхность, к которой применяли операции
этого типа, выглядит как шрам, оставленный плохим хирургом. Возможно, такой рубец
будет уместен при моделировании Франкенштейна, но если у вас другие планы, избегайте
булевских операций.
Вместо
них находчивые разработчики используют стандартные инструменты полигонального
моделирования. При создании выступа примените операцию формирования скоса или
экструдируйте многоугольники наружу. Если в объекте необходимо вырезать отверстие,
экструдируйте многоугольники внутрь или сформируйте внутренний скос. Это позволит
избежать проблем при сглаживании.
Рис.
2.28. Результат сглаживания булевских поверхностей
Рис. 2.29. Получение хорошо сглаженной поверхности