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.
Еще больше интересных статей
3д модель универсальная насадка УШМ 125 - заусовщик для среза края плитки под углом 45 градусов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как защитить 3D модель от пиратства ИИ (нейронных сетей).
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
3D-модели для 3D-печати и не только: тoп сайтов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Спасибо, что проверили !Перехо...
Ты слишком глуп для того, что....
Один нюанс... Полиамид какой и...
Всем привет. По работе попроси...
Доброго всем времени суток. У...
Бобра всем, перелистал кучу ст...
не могу понять почему в редакт...