STL и борьба с сеткой
Сегодня мне хочется поднять такую тему, как STL и ретопология. Данная статья будет полезна для новичков и людей, которые работают в таких системах, как Inventor, Компас, Solid и пр. В свое время мне бы очень пригодилось знание, которые я опишу в статье ниже. Я никоим образом не претендую на знатока в области сеток и буду очень рад, если кто-нибудь более знающий поправит или дополнит мой материал.
Для начала обсудим - что такое STL ? STL - это популярный формат представления 3d объектов, представляющий из себя треугольную полигональную сетку. При этом внутри эта сетка пустая, что довольно важно.
Так что такое полигон? ОЧЕНЬ условно, полигон - это некоторый геометрический элемент (многоугольник), который содержит face, edge, vertex. Между точками мы проводим грани, а грани формируют сторону полигона. Кроме этого у каждого полигона есть нормаль, которая показывает в какую сторону отражается свет от данной стороны. Из-за неправильного направления этих нормалей очень часто возникают проблемы с 3д печатью. Но мы отвлеклись. Как правило, используется квадратная и треугольная сетка - от многогранных сеток стараются избавляться. К сожалению, и с треугольной сеткой не все гладко и сейчас разберем почему.
Этап 1. Работа в инженерной САПР
Для тех, кто работает в инженерной системе привычно построить эскиз и совершить с ним операцию. Таким образом построим простейший квадратик. Для чистоты эксперимента буду использовать Inventor и Компас. После того, как построили геометрию - экспортируем ее в формате stl. С точки зрения обывателя, мы ожидаем что у нас будет 6 полигонов, формируемые 8 точками ( vertex). Но, к сожалению, это не так:Рисунок 1. Stl из КомпасаРисунок 2. Сетка из Inventor'a
Это связано с тем, что как я описал ранее, сетка STL является треугольной и наша программа в автоматическом режиме разбила квадраты на треугольники. И если для простого прямоугольника мы получаем не слишком критичный результат, то стоит добавить туда сопряжение и результат становится совсем плачевный. Рисунок 3. STl прямоугольника со скруглениями
И если аппроксимация окружности на отрезки - это не слишком страшно, то такое количество элементов и потеря симметрии ( а у нас теперь нечетное количество столбцов) проблема довольно ощутимая (Да, в некотором софте можно редактировать настройки генерируемой сетки, но это все-равно происходит автоматически). Это почувствуется и как в расчетной программе на основе формата stl, так и в случае, если вы попробуете это редактировать в художественной программе. Работать с такой сеткой ужасно неудобно. А значит нам требуется какой-нибудь способ работать с этими сетками.
Этап 2. Работа с сеткой
Возьмем случайную модель с портала thingverse. В моем случае выбор пал на череп из игры Warhammer 40k. Откроем stl и посмотрим на первичную сетку.Рисунок 4. Первичная STL сетка
Как видите, сетка не только вся мутная, она еще и асимметричная. В таком случае рекомендуется удалить половину детали и работать только с частью, но в данный момент не будем это делать.
Многие привыкли чинить свои модели с помощью различных программ. Возьмем meshmixer и посмотрим, как он повлияет на полигоны модели. Специально сохраним исправленную деталь в двух форматах - obj и stl. Рисунок 5. OBJ и STL после Meshmixera
Как видим, ретопология модели практически не изменилась, а отличие между obj и stl вообще нулевое. Таким образом понимаем, что чинить аккуратность сетки нам придется руками. Для начала попробуем использовать инструментарий, который есть внутри Maya (уверен, что в Blender, Softimage, 3dsmax и пр. есть аналогичные функции). Первым этапом превратим сетку в квадратную, как показано на рисунке. Рисунок 6. Квадратная сетка изначальной модели
Сетка стала чуть более удобной, хотя ее асимметричность стала более заметной. После этого попробуем воспользоваться опциями clean up и reduce. Рисунок 7. Попытка использования clean up
К сожалению, опции clean up и reduce не привели к приемлемым результатам - так что смело забываем про чистку сетки в Maye и переходим к более подходящему инструментарию - Zbrush и Mudbox, благо передача данных осуществляется одной кнопкой. Начнем с Zbrusha. Выглядит это следующим образом: Рисунок 8. Первичная сетка в Zbrush
Справа во вкладке Geometry используем функцию ZRemesher, которая прекрасно переделывает всю ретопологию модели. Спустя небольшое время получаем такой результат:Рисунок 9. После первого автоматического редактирования Zremesher
Сетка выглядит прекрасно. Возможно она чуть мелковата и немного уехала симметричность модели, но в целом результат очень приемлемый. Вполне возможно в Zremesher можно установить симметричность, но что-то я не нашел данной функции. Следующим шагом уменьшим количество полигонов и сделаем еще одну переработку геометрии. Получаем следующий результат: Рисунок 10. После второго автоматического редактирования Zremesher
Асимметрия стала более явной, но при этом сетка стала еще меньше (количество элементов), сохранив прежнюю геометрию. Экспортируем результат в формат stl и iges и отправляем это дело в Inventor. О том , как сделать из stl твердотельный объект останавливаться не буду - для этого не так давно была статья на сайте. Покажу финальный результат после передачи: Рисунок 11. STL после конвертации в твердотельный
Как видите, это твердотельный объект, который состоит из кучи треугольников, но их намного меньше , чем могло бы быть в случае первичного экспорта - такая модель меньше грузит машину и с ней удобнее работать. Вообще, я надеялся, что при экспорте в формате iges получится сохранить квадратную сетку - с ней было бы работать намного удобнее, но при экспорте почему-то в Inventor приходит белый экран. Об этой проблеме есть пара разделов на форуме Autodeska, но данная тематика требует отдельной проработки, а углубляться в это не особо хочется. В любом случае, после Zbrusha мы получили очень приемлемую геометрию, которая намного удобнее той, что была в начале. Дальнейшее ее редактирование в любой художественной программе не вызовет никаких проблем.
Экспорт в Mudbox первичной stl сетки не дал никаких результатов - Mudbox отказался менять ретопологию модели, что меня немного огорчило. А вот поработать с геометрией из Zbrusha получилось довольно интересно. Я постарался сильно уменьшить количество полигонов, чтобы сильно упростить работу с данным объектом. Кроме этого в Mudboxe намного очевиднее сделать симметричность детали - вышло следующее:Рисунок 12. До и после переработки Mudboxa
Да, мы слегка сжевали качество и нижняя часть потеряла свою остроту, но при этом мы добились симметрии в нашем объекте, сохранили форму черепа и сильно уменьшили количество полигонов. В Inventor это придет в следующем виде: Рисунок 13. STL после Mudboxa в Inventor
Объект вышел немного грубоват, но геометрия вполне рабочая. Сделал тестовый элемент выдавливания, чтобы показать, что все отличноРисунок 14. Исправленная геометрия в Inventor
Выводы:
а) Как видите, слов много, а действий на самом деле мало. Для того, чтобы изменить сетку модели надо знать всего одну кнопку в Zbrush или найти альтернативы ( я уверен, они есть и может в комментариях кто скажет. Опыт от топогана например). Еще мы потеряли симметрию - но это лечится удалением и копированием половины модели на начальном этапе.
б) Теперь, надеюсь, вы понимаете, почему STL портит вашу геометрию и что деталь в stl формате может быть легко изменена.
в) Хотите нормально работать с STL файлами - легче уже выучить какой-либо художественный пакет, благо на рынке сейчас их много и еще больше курсов. Для того, чтобы подправлять сетки (если не хотите делать свои модели) достаточно знать 5-10 функций.
Надеюсь, что это было полезно и очень хочу, чтобы мой материал кто-нибудь дополнил или указал полезную литературу - с удовольствием ознакомлюсь. Все, что я написал - это личное понимание и опыт, которые сформировались после перехода на полигональное моделирования спустя 5 лет моделирования в Autodesk Inventor.
Еще больше интересных статей
Платформа №1. Проект RC машинка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Аккумуляторная батарея. Проект RC машинка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
- Часть №1...
Поднимаем модель с изображения.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Часто натыкаясь в объявлениях о просьбе замоделить что-то простое...
Комментарии и вопросы
ЧИП не видно (это который квад...
Это если по основному договору...
Слово - договор, честь выше лю...
Печатаю модельки лошадей и вот...
Доброго времени суток дорогие...
Тема: 3D-принтер Kobra зависае...
Добрый день!Решил установить д...