Как сделать правильную топологию 3d модели

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Сегодня в большинстве компьютерных игр присутствуют сильно детализированные 3D персонажи, созданные, чтобы удивлять своей реалистичностью и красотой. Но дизайнеры и создатели моделей в процессе проработки объектов не ограничивают себя строгими рамками и дают волю фантазии. Часто случается, что результатом их творчества становится проработанный до мельчайшей детали, узнаваемый и интересный герой, которого просто невозможно перенести в мир компьютерной игры. Причина кроется в огромном количестве полигонов.

История ретопологии

Полигон – прямоугольник, у которого есть перспективное искажение. Из таких элементов можно составить многогранник практически любой формы. Если полигонов будет много, ими легко покрыть, например, модель человеческого лица. На более плоских поверхностях будет использовано минимальное количество четырёхугольников, а выпуклые, рельефные детали (глаза, нос, губы) окажутся покрыты десятками примитивных фигур. Чем больше полигонов задействовано, тем более реалистичным, ровным и проработанным выглядит результат.

Все 3D модели можно условно поделить на 3 категории:

Hi-poly. Они наиболее детализированы и содержат 1-3 миллиона полигонов. Применяются при создании игровых AAA-проектов для консолей и ПК. Отличаются огромной прорисовкой и большим весом.
Mid-poly. Объекты средней детализации. Оптимальный вариант для консольных игр и проектов для персонального компьютера.
Low-poly. Содержат всего 5-10 тысяч полигонов. Их использование экономит ресурсы, поэтому игры с такими моделями в большинстве своем предназначены для мобильных устройств, а также дополненной и виртуальной реальности.

Ретопология Low и High Poly

Зачем нужна ретопология

Имея готовую модель, разработчик может анимировать её в Maya, 3ds Max или Blender. Но если полигонов порядка 5-20 миллионов, заставить их быстро реагировать практически невозможно. Высокополигональную сетку в её изначальном виде попросту не получится интегрировать в компьютерную игру. Но можно уменьшить их количество, выстроив на базе имеющейся новую топологию.

Для этого 3D-художники используют целый ряд программ:

Поместив готовую hi-poly модель в одну из них, легко построить сетку с маленьким количеством полигонов заново. Её удобнее и проще анимировать, но возникает вопрос: можно ли сохранить высокое качество графики? Да. Рассмотрим конкретный пример.

Пример ретопологии в моделировании

Эта модель была создана в одном из 3D-редакторов для игры, которая выйдет на смартфоне. Детализированная фигура персонажа отличается не только проработкой мелких элементов, но и наличием реалистичных текстур. Их не хотелось бы потерять в процессе переноса модели в игру.

Low poly модель

Мы нанесли сетку поверх уже готовой сложной фигуры, упростив её перед анимацией. Если у объекта есть симметрия, процесс может ускориться. В остальных случаях полигоны наносятся вручную, и это довольно кропотливая работа. Вы можете наблюдать, как их число сократилось с 3-5 миллионов до 40-50 тысяч. Это далеко не предел, но на начальном этапе уже можно считать достигнутый результат хорошим.

Сравнение low poly и high poly

Карты нормалей 3D модель

С полученной таким способом моделью легко работать при анимировании, но в игре она не будет выглядеть упрощённой. Применение ретопологии позволяет создавать красивые и реалистичные фигуры персонажей и других объектов с проработанными текстурами, не завышая требований к производительности компьютера или консоли. Это отличная возможность реализовать сложный замысел на любой платформе, от мощного современного ПК до обычного смартфона. Создавая упрощённую топологию поверх существующей, 3D-художники могут практически не ограничивать себя в творчестве.

С первой проблемой которой я столкнулся в моделировании персонажа это топология.

Было совсем не весело когда уже практически были готовы несколько голов и я узнаю что нужно делать все по другому. И так что такое топология.

Правильная 3d топология лица

1) Четырехугольные полики и только. (Причем полигон должен быть похож на квадрат или прямоугольник, но не в коем случае на треугольник с 4 углами или стрелку.)

2) Loop замкнутый контур в определенных частях тела.

3) В областях сгиба должны присутствовать продольные линии.

Правильная топология очень важна для анимации персонажей, органических объектов и определяется правильной деформацией при искожении.

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Добрый день, дорогие посетители 3dtoday

Сегодня мне хочется поднять такую тему, как STL и ретопология. Данная статья будет полезна для новичков и людей, которые работают в таких системах, как Inventor, Компас, Solid и пр. В свое время мне бы очень пригодилось знание, которые я опишу в статье ниже. Я никоим образом не претендую на знатока в области сеток и буду очень рад, если кто-нибудь более знающий поправит или дополнит мой материал.

Для начала обсудим - что такое STL ? STL - это популярный формат представления 3d объектов, представляющий из себя треугольную полигональную сетку. При этом внутри эта сетка пустая, что довольно важно.

Так что такое полигон? ОЧЕНЬ условно, полигон - это некоторый геометрический элемент (многоугольник), который содержит face, edge, vertex. Между точками мы проводим грани, а грани формируют сторону полигона. Кроме этого у каждого полигона есть нормаль, которая показывает в какую сторону отражается свет от данной стороны. Из-за неправильного направления этих нормалей очень часто возникают проблемы с 3д печатью. Но мы отвлеклись. Как правило, используется квадратная и треугольная сетка - от многогранных сеток стараются избавляться. К сожалению, и с треугольной сеткой не все гладко и сейчас разберем почему.

Этап 1. Работа в инженерной САПР

Для тех, кто работает в инженерной системе привычно построить эскиз и совершить с ним операцию. Таким образом построим простейший квадратик. Для чистоты эксперимента буду использовать Inventor и Компас. После того, как построили геометрию - экспортируем ее в формате stl. С точки зрения обывателя, мы ожидаем что у нас будет 6 полигонов, формируемые 8 точками ( vertex). Но, к сожалению, это не так:

STL и борьба с сеткой

STL и борьба с сеткой

Рисунок 2. Сетка из Inventor'a

Это связано с тем, что как я описал ранее, сетка STL является треугольной и наша программа в автоматическом режиме разбила квадраты на треугольники. И если для простого прямоугольника мы получаем не слишком критичный результат, то стоит добавить туда сопряжение и результат становится совсем плачевный.

STL и борьба с сеткой

Рисунок 3. STl прямоугольника со скруглениями

И если аппроксимация окружности на отрезки - это не слишком страшно, то такое количество элементов и потеря симметрии ( а у нас теперь нечетное количество столбцов) проблема довольно ощутимая (Да, в некотором софте можно редактировать настройки генерируемой сетки, но это все-равно происходит автоматически). Это почувствуется и как в расчетной программе на основе формата stl, так и в случае, если вы попробуете это редактировать в художественной программе. Работать с такой сеткой ужасно неудобно. А значит нам требуется какой-нибудь способ работать с этими сетками.

Этап 2. Работа с сеткой

Возьмем случайную модель с портала thingverse. В моем случае выбор пал на череп из игры Warhammer 40k. Откроем stl и посмотрим на первичную сетку.

STL и борьба с сеткой

Рисунок 4. Первичная STL сетка

Как видите, сетка не только вся мутная, она еще и асимметричная. В таком случае рекомендуется удалить половину детали и работать только с частью, но в данный момент не будем это делать.

Многие привыкли чинить свои модели с помощью различных программ. Возьмем meshmixer и посмотрим, как он повлияет на полигоны модели. Специально сохраним исправленную деталь в двух форматах - obj и stl.

STL и борьба с сеткой

Рисунок 5. OBJ и STL после Meshmixera

Как видим, ретопология модели практически не изменилась, а отличие между obj и stl вообще нулевое. Таким образом понимаем, что чинить аккуратность сетки нам придется руками. Для начала попробуем использовать инструментарий, который есть внутри Maya (уверен, что в Blender, Softimage, 3dsmax и пр. есть аналогичные функции). Первым этапом превратим сетку в квадратную, как показано на рисунке.

STL и борьба с сеткой

Рисунок 6. Квадратная сетка изначальной модели

Сетка стала чуть более удобной, хотя ее асимметричность стала более заметной. После этого попробуем воспользоваться опциями clean up и reduce.

STL и борьба с сеткой

Рисунок 7. Попытка использования clean up

К сожалению, опции clean up и reduce не привели к приемлемым результатам - так что смело забываем про чистку сетки в Maye и переходим к более подходящему инструментарию - Zbrush и Mudbox, благо передача данных осуществляется одной кнопкой. Начнем с Zbrusha. Выглядит это следующим образом:

STL и борьба с сеткой

Рисунок 8. Первичная сетка в Zbrush

Справа во вкладке Geometry используем функцию ZRemesher, которая прекрасно переделывает всю ретопологию модели. Спустя небольшое время получаем такой результат:

STL и борьба с сеткой

Рисунок 9. После первого автоматического редактирования Zremesher

Сетка выглядит прекрасно. Возможно она чуть мелковата и немного уехала симметричность модели, но в целом результат очень приемлемый. Вполне возможно в Zremesher можно установить симметричность, но что-то я не нашел данной функции. Следующим шагом уменьшим количество полигонов и сделаем еще одну переработку геометрии. Получаем следующий результат:

STL и борьба с сеткой

Рисунок 10. После второго автоматического редактирования Zremesher

Асимметрия стала более явной, но при этом сетка стала еще меньше (количество элементов), сохранив прежнюю геометрию. Экспортируем результат в формат stl и iges и отправляем это дело в Inventor. О том , как сделать из stl твердотельный объект останавливаться не буду - для этого не так давно была статья на сайте. Покажу финальный результат после передачи:

STL и борьба с сеткой

Рисунок 11. STL после конвертации в твердотельный

Как видите, это твердотельный объект, который состоит из кучи треугольников, но их намного меньше , чем могло бы быть в случае первичного экспорта - такая модель меньше грузит машину и с ней удобнее работать. Вообще, я надеялся, что при экспорте в формате iges получится сохранить квадратную сетку - с ней было бы работать намного удобнее, но при экспорте почему-то в Inventor приходит белый экран. Об этой проблеме есть пара разделов на форуме Autodeska, но данная тематика требует отдельной проработки, а углубляться в это не особо хочется. В любом случае, после Zbrusha мы получили очень приемлемую геометрию, которая намного удобнее той, что была в начале. Дальнейшее ее редактирование в любой художественной программе не вызовет никаких проблем.

Экспорт в Mudbox первичной stl сетки не дал никаких результатов - Mudbox отказался менять ретопологию модели, что меня немного огорчило. А вот поработать с геометрией из Zbrusha получилось довольно интересно. Я постарался сильно уменьшить количество полигонов, чтобы сильно упростить работу с данным объектом. Кроме этого в Mudboxe намного очевиднее сделать симметричность детали - вышло следующее:

STL и борьба с сеткой

Рисунок 12. До и после переработки Mudboxa

Да, мы слегка сжевали качество и нижняя часть потеряла свою остроту, но при этом мы добились симметрии в нашем объекте, сохранили форму черепа и сильно уменьшили количество полигонов. В Inventor это придет в следующем виде:

STL и борьба с сеткой

Рисунок 13. STL после Mudboxa в Inventor

Объект вышел немного грубоват, но геометрия вполне рабочая. Сделал тестовый элемент выдавливания, чтобы показать, что все отлично

STL и борьба с сеткой

Рисунок 14. Исправленная геометрия в Inventor

а) Как видите, слов много, а действий на самом деле мало. Для того, чтобы изменить сетку модели надо знать всего одну кнопку в Zbrush или найти альтернативы ( я уверен, они есть и может в комментариях кто скажет. Опыт от топогана например). Еще мы потеряли симметрию - но это лечится удалением и копированием половины модели на начальном этапе.

б) Теперь, надеюсь, вы понимаете, почему STL портит вашу геометрию и что деталь в stl формате может быть легко изменена.

в) Хотите нормально работать с STL файлами - легче уже выучить какой-либо художественный пакет, благо на рынке сейчас их много и еще больше курсов. Для того, чтобы подправлять сетки (если не хотите делать свои модели) достаточно знать 5-10 функций.

Надеюсь, что это было полезно и очень хочу, чтобы мой материал кто-нибудь дополнил или указал полезную литературу - с удовольствием ознакомлюсь. Все, что я написал - это личное понимание и опыт, которые сформировались после перехода на полигональное моделирования спустя 5 лет моделирования в Autodesk Inventor.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Знаменитые 3D-художники дают советы по моделированию начинающим специалистам и делятся секретами с профессионалами.

10 top 3D modeling tips_01

Совет №1: Палочка-выручалочка

10 top 3D modeling tips_02

Совет №2: Деформируйте детали

10 top 3D modeling tips_03

Тайловые поверхности – чудесный способ сделать работу более детализированной

10 top 3D modeling tips_04

Carlos Ortega Elizalde – большой фанат инструмента Select N Edge, который он использует для детализации своих работ. © Carlos Ortega Elizalde

Совет №3: Будьте проще

10 top 3D modeling tips_05

Моделирование станет достаточно сложным процессом, если вы воздержитесь от использования ненужных инструментов

10 top 3D modeling tips_06

10 top 3D modeling tips_07

Иногда проще фиксить проблемы по мере их возникновения

10 top 3D modeling tips_08

José Alves da Silva создал эту иллюстрацию для фестиваля ©Trojan Horse Was a Unicorn

Совет №5: Фокусы на местности

10 top 3D modeling tips_09

Если вы раз за разом сталкиваетесь с одной и той же проблемой, скорее всего ее можно пофиксить с помощью скрипта

Совет №6: Дела органические

10 top 3D modeling tips_10

Моделировать объекты лучше в разных приложениях

Совет №7: Не будьте одержимы топологией

10 top 3D modeling tips_11

Alex Alvarez обещает, что плохая топология не будет преследоваться по закону

10 top 3D modeling tips_12

Для создания лесного ландшафта Alex Alvarez использовал Maya, mental ray, Paint Effects, Onyx и ZBrush. Сцена из личной копилки Alex Alvarez и насчитывает порядка 110 млн. полигонов. © Alex Alvarez

Совет №8: Очень даже будьте одержимы топологией

10 top 3D modeling tips_13

Топология лица стоит потраченного на нее времени

Совет №9: Поза имеет значение

10 top 3D modeling tips_14

При моделировании людей не забывайте о важности их позы

10 top 3D modeling tips_15

Совет №10: Думайте на несколько шагов вперед

10 top 3D modeling tips_16

Детали и реализм были ключевыми моментами, когда Meny Hilsenrad и студия Aiko работали над проектом miCoach для бренда Adidas

Пытайтесь!

Вышеперечисленные советы являются, конечно же, лишь малой толикой тех подходов, которым профессионалы следуют в своей работе, стараясь сделать процесс более эффективным и быстрым. Вы, скорее всего, работаете каким-то своим способом. Но если вы работаете много и каждый раз пытаетесь выложиться по максимуму, это, несомненно, сработает. Поскольку, если говорить начистоту, единственный совет, которому действительно стоит следовать при попытке создать нечто ошеломляюще невероятное, это продолжать пытаться. А потом попробовать еще раз. И еще раз, только на этот раз стараться еще сильнее.

Если у вас возникла необходимость в 3d-модели то существует два способа её получить. Первый и самый простой это просто приобрести её на специализированном ресурсе. Благо таких ресурсов — море. Например:

Второй способ это сделать модель самостоятельно. Существуют методики создания трёхмерных объектов. В зависимости от задачи эти методики могут использоваться либо отдельно, либо в связке.

1) Полигональное моделирование.

Первая самая классическая техника моделирования – полигональная. Полигональная техника самая простая и понятная, она базируется на операциях с четырёхугольниками. Четырёхугольники – полигоны или квады состоят из точек (vertex) и рёбер (edge). Пространство, заполненное между рёбрами, называется гранями (face). К базовым операциям можно отнести: перемещение (translate), вращение (rotate), масштабирование (scale), выдавливание (extrude), разделение (subdivide), слияние (merge), скольжение (slide). Эти операции будут очень часто повторяться. В любом пакете общего назначения существуют полигональные заготовки — примитивы: плоскость (plane), куб (cube), сфера (shere), цилиндр (cylinder), конус (cone). На основе этих простых объектов можно компоновать более сложные. Либо использовать простые как основу для более сложных. Методом разделения, последовательного выдавливания и череды простых трансформаций фрагментов куба можно получить человеческую руку или шланг от пылесоса. Кому как нравится или как того требует задача.

Если моделируемый объект симметричный, то эффективнее будет разрезать объект по оси симметрии и применив модификатор симметрии или зеркалирования выполнять операции только с одной частью модели, допустим левой. Изменения возникшие на одной стороне модели (левой) будут автоматически добавляться модификатором на другую (правую) зеркальную сторону.

Все действия производимые с объектом записываются в историю действий. По истории можно перемещаться вперёд и назад. Модификаторы используются для простого типового изменения формы объекта. В зависимости от пакета моделирования их название и состав могут отличаться.

В технике полигонального моделирование существуют правила построения полигональной сетки или меша (от англ. mesh — сетка). Правила описываю подходы позволяющие формировать и поддерживать корректную топологию сетки. Топология как раздел математики изучает явление непрерывности пространства. Что это означает применительно к сетке? Выстраиваясь полигоны образуют направления — полигональные кольца или петли (loop). В зависимости от того как взаимно расположены или склеены полигональные петли зависит то, как будет происходить сглаживание объекта при операциях подразделения. Дело в том, что сложные полигональные объекты состоят из тысяч полигонов. 3d-художник редактирует форму объекта только на базовом уровне детализации, а финальное сглаживание выполняет модификатор подразделения. Для того, чтобы такое сглаживание приводило к ожидаемому результату, 3d-художнику нужно предусмотреть расположение полигональных петель на критичных участках формы. Иначе будут заметны артефакты сглаживания или форма объекта будет казаться оплавленной. Также нужно следить, чтобы плотность сетки была одинаковой по всей поверхности объекта и состояла только из квадов. Иногда допускается врезка треугольных фейсов, но это исключение. Есть небольшие различия в моделировании высокополигональных моделей (для кино) и моделей предназначенных для визуализации реального времени (интернет, игры). Для высокополигональных моделей важна правильная топология и сетка состоящая из четырёхугольных граней, а для игровой графики важна оптимизация. Поэтому модели, которые прошли оптимизацию имеют большую угловатость и состоят приемущественно из треугольных граней.

Полигональное моделирование одинаково хорошо реализовано во всех современных конкурентноспособных пакетах моделирования: Blender, 3Dsmax, Maya, Cinema 4D, LightWave, Modo.




Варианты размещения полигональных ептель для получения требуемой фаски или закругления формы

Артефакты проявляющиеся при подразделении если топология – мусорная


Процесс моделирования от простой формы к сложной

2) Скульптинг или воксельная лепка.

Следуюшая технология — скульптинг основана на принципах скульптурной лепки, позаимствованных из реальной жизни. 3d-художник лепит форму объекта, не задумываясь о топологии сетки. По взмаху виртуальной кисти на модели появляются вмятины, вздутия или текстурный рельеф. Естественно после такого творческого процесса топология получается очень мусорная и нужно производить в обязательном порядке ретопологию. Ретопология это уменьшение количества полигонов (полигонажа) за счёт создания в ручную новой более оптимизированной сетки. Ретопология это буквально обрисовывание высокополигональной модели. Чтобы работать в такой технике требуется мпециализированный софт: ZBrush, 3D-Coat, Mudbox.



Третий способ моделирования основан на использовании криволинейных поверхностей. Такие поверхности называют NURBS -поверхностями (с англ. Non-uniform rational B-spline). От полигональной техники данный метод отличается тем, что 3 d -художник оперирует не гранями, а кусками ограниченными кривыми линиями. Чтобы изменить характеристики поверхности нужно изменить кривизну линии. NURBS -поверхности имеют бесконечную детализацию, так как форму таких поверхностей описываются математическими формулами, а не расположением вершин как в полигональном моделировании. Перед тем как визуализировать такую поверхность программа предварительно её триангулирует. Триангуляция это процесс разбиения на треугольные грани. У данного метода моделирования есть преимущества перед полигональным. А именно - точность. Данную методику применяют для изготовления точных промышленных изделий, который потом будут изготавливаться литьём штамповкой и т. д. Данная технология реализована в 3 dsmax и Maya и доведена до совершенства в CAD -пакетах: Rinoceroc , Katia , Fusion 360.


Модель собранная из NURBS-кусков (Blender)


4 ) Процедурное моделирование

Четвёртый подход к моделированию процедурный. Процедурное моделирование востребовано в таких задачах, где требуется создание систем объектов и поверхностей, которыми нужно еще и гибко управлять. К таким системам можно отнести деревья (растения), небоскрёб или целый город (архитектурные объекты), толпу людей, взаимодействующих по определённому сценарию. Процедурное моделирование может быть линейным (стековым) и нелинейным (узловым или нодовым). Линейную процедурность поддерживают все серьёзные пакеты моделирования, она основана на вертикальном стеке модификаторов. Нодовое процедурное моделирование хорошо реализовано в Houdini , Cinema 4 D с модулем MoGraph, R hinoceros с плагином Grasshopper . Процедурное моделирование имеет большое преимущества над всеми остальными за счёт отсутствия деструктивных операций. В любой момент 3 d -художник может вернуться на любой этап моделирования и изменить нужный параметр. Естественно рабочая сцена хранит всю информацию о произведённых действиях пользователя. В определённый момент, если не контролировать процесс моделирования и своевременно не чистить историю, рабочий файл может разростись до гиганских размеров. Компьютер перестанет справляться с возросшим объёмом информации. В параметрическом моделировании легко уживаются сплайны и полигональные объекты.


Процедурное дерево (SpeedTree)


Процедурная модель здания, выполненная с помощью нодового редактора (Houdini)

Читайте также: