Как понять топологию в 3D-моделировании
Понимание топологии в 3D-моделировании включает анализ распределения граней в модели. Возможно, вы задавали себе следующие вопросы:
- Как определить правильность распределения рёбер в моей модели?
- Можно ли сказать, что рёбра равномерно распределены в сетке модели?
- Как узнать, насколько чистая моя сетка?
- Есть ли проблемы с защемлением в моей модели?
- Почему после подразделения сетка выглядит деформированной?
Ответить на эти вопросы поможет понимание основ топологии в 3D-моделировании. Однако, не существует универсальных правил или процессов, которые можно применить ко всем проектам. Несмотря на это, существуют простые правила, которые нужно запомнить. Однако, для умения применять эти правила к разным сеткам потребуется практика и опыт.
С чего начать?
Итак, давайте начнем с определения того, что такое правильная топология в 3D-моделировании.
Позвольте мне сначала продемонстрировать несколько примеров, когда топология становится проблематичной, а затем мы рассмотрим возможное простое решение этой проблемы.
В следующем примере мы можем видеть, что у сетки возникают некоторые проблемы из-за неправильной топологии. Одна из проблем заключается в искажении области, вызванном близким расположением краёв.
Теперь давайте посмотрим, сможем ли мы найти простое решение этой проблемы.
В данном примере наблюдается искажение в сетке модели. Острота области зависит от расстояния между ее рёбрами - чем ближе рёбра, тем более резкий угол они образуют. Однако, если на одном конце рёбра расположены очень близко, а на другом - значительно разнесены, может произойти деформация.
На примере видно, что область с широким разбросом рёбер постепенно переходит в область с узким разбросом рёбер. Переход между этими областями вызывает деформацию из-за недостаточной геометрии для поддержки такой структуры.
Простым решением этой проблемы является создание более равномерного распределения граней (или рёбер) в модели. Добавление новых граней следует выполнять таким образом, чтобы распределение граней было равномерным и походило на квадраты или ромбы. Это поможет снять напряжение и предотвратить деформацию.
Правильная топология требует не только равномерного распределения граней, но и достаточного количества полигонов, чтобы обеспечить детализацию модели.
Слишком низкое число полигонов может привести к искажениям при увеличении деталей. Однако не следует перегружать модель избыточным количеством полигонов, так как это также может вызвать проблемы.
Работа с гранями имеет свои плюсы и минусы как при низкой, так и при высокой плотности полигонов. Давайте рассмотрим их преимущества и недостатки.
Низкое количество полигонов (Low poly count)
➕ Низкое количество полигонов позволит нам легко изменять форму и блокировать идею.
⛔ При низком количестве полигонов мы не сможем создать детали. Чем больше деталей мы хотим, тем больше геометрии нам понадобится.Большое количество полигонов (High poly count)
➕ При большом количестве полигонов мы легко можем добавить больше деталей и легко уплотнить сетку.
⛔ С другой стороны, сетки с большим количеством полигонов сложнее контролировать, так как в них больше точек и граней, которыми нужно манипулировать.
Правила, которым мы следуем до сих пор
Итак, если мы обобщим эту информацию, какой вывод или правило мы применим к нашему рабочему процессу?
1. Мы должны начинать с очень низкого полигонажа.
Почему? Потому что сеткой легче управлять, и она помогает нам быстрее создать форму.
2. Мы должны убедиться, что грани распределены равномерно.
Почему? Потому что мы хотим быть уверены, что у нас достаточно геометрии для наших деталей и острых углов. Неравномерное распределение граней может привести к нежелательным результатам, как мы видели в нашем первом примере.
Отлично! Два простых правила для начала. Не так уж сложно запомнить, верно?
Но разве это все?
Нет... у нас есть ещё два. Если мы сейчас проверим наш прогресс, каким будет наш следующий шаг?
Наш последний пример показывает, что геометрия не имеет искажений благодаря равномерно распределенным граням, но теперь углы больше не острые.
Чтобы сделать это правильно, нам нужно познакомиться с поддерживающими рёбрами и потоком рёбер. Давайте рассмотрим это дальше.
Поддерживающие рёбра (Supportive Edges)
Что такое поддерживающие рёбра?
Поддерживающие рёбра просто обеспечивают сохранение резкости объекта после применения подразделения.
Любая грань/фигура, которую мы хотим подтянуть, нуждается как минимум в одной или двух (рекомендуется) поддерживающих рёбрах. Обычно это контур нашей модели. Два края, расположенные близко друг к другу, образуют острый угол. Нам просто нужно следовать этому правилу.
Итак, в нашем примере, где мы расположим опорное ребро? Мы уже упоминали о контуре, верно?
В этом случае мы можем либо выдавить края контура (показаны желтым цветом) наружу, либо продублировать край с внутренней стороны. Таким образом мы устанавливаем поддерживающее ребро.
После экструдирования фигуры контурный край в идеале должен быть окружен двумя поддерживающими рёбрами.
Теперь мы можем быстро проверить, как будет выглядеть наша сетка с применённым подразделением. Всё выглядит нормально, и кажется, что на поверхности нет искажений при изгибе. Пока что это выглядит достаточно хорошо.
Давайте добавим в наш список правил и рёбра поддержки.
Правила, которым мы следуем до сих пор
1. Мы должны начинать с очень низкого количества полигонов.
Почему? Потому что сеткой легче управлять и она помогает нам быстрее создать форму.2. Мы должны убедиться, что рёбра распределены равномерно.
Почему? Потому что мы хотим быть уверены, что у нас достаточно геометрии для наших деталей и острых углов. Неравномерное распределение рёбер может привести к нежелательным результатам, как мы видели в нашем первом примере.3. Нам нужно добавить поддерживающие рёбра.
Почему? Потому что поддерживающие рёбра обеспечат сохранение структуры нашей основной фигуры (или контура), когда мы применим подразделение.
Edge flow (поток рёбер)
Что такое поток рёбер и что такое перенаправление рёбер?
Во многих ситуациях первые три шага не всегда дают желаемый результат. Некоторые углы могут быть не такими острыми или мягкими, как мы хотим.
В нашем случае все углы по-прежнему очень мягкие, а не острые и чёткие.
Теперь нам нужен способ манипулировать топологией, которая у нас уже есть, чтобы получить желаемый результат, верно? Но не только это, нам также нужно сохранить чистоту топологии, сохраняя при этом квадраты.
Если эта область кажется немного запутанной, просто нужно попрактиковаться. Больше примеров, через которые вы пройдёте, станут более понятными.
Давайте сначала поговорим о перенаправлении. Мы можем начать с поддерживающих рёбер, так как они обеспечивают достаточную геометрию для формирования острого угла.
Если мы вернёмся к самым основам, у нас будет два примера. Один пример будет иметь мягкий угол, а другой - более острый. Заметили разницу?
Итак, основываясь на приведенном выше примере, давайте продолжим и применим острые углы, используя поддерживающие рёбра там, где это возможно.
Теперь мы медленно приближаемся к окончательной форме, и, как вы можете заметить, осталось заточить только два угла.
Вот что мы собираемся сделать. Нам нужно переставить наши ребра таким образом, чтобы у них был "гравитационный поток". Скажите, что???
Да, эта штука помогла мне лучше понять эту штуку с ребрами, так что, надеюсь, она поможет и кому-то другому.
В примере ниже мы видим наш текущий поток граней слева. Но теперь давайте проверим пример в середине.
У нас есть серый контур, который представляет наше поддерживающее ребро. Теперь давайте также представим, что там есть сила гравитации, и в зависимости от того, под каким углом мы будем идти, это будет поток для грани (показано желтым). Нам просто нужно применить эту логику для перестановки граней, чтобы они работали в пользу формы.
В примере справа я убрал ненужные нам рёбра, чтобы у нас было больше места для следования "гравитации" нашей формы.
Итак, наша исходная сетка расположена слева. Затем, как показано в примере посередине, мы удалим ненужные нам рёбра и организуем поток тех, которые не соответствуют "гравитационному" потоку. Затем, как показано в примере справа, мы вернём рёбра в средние области, чтобы все рёбра снова были более или менее равномерно распределены.
Это то, что нужно, ребята! Существует множество других вариантов того, как вы можете это сделать, но я постарался сделать все просто и точно.
Давайте еще раз разберем правила, раз уж мы закончили.
- Мы должны начинать с очень низкого количества полигонов.
Почему? Потому что сеткой легче управлять и она помогает нам быстрее создать форму.- Мы должны убедиться, что рёбра распределены равномерно.
Почему? Потому что мы хотим быть уверены, что у нас достаточно геометрии для наших деталей и острых углов. Неравномерное распределение рёбер может привести к нежелательным результатам, как мы видели в нашем первом примере.- Нам нужно добавить поддерживающие рёбра.
Почему? Потому что поддерживающие рёбра обеспечат сохранение структуры нашей основной фигуры (или контура), когда мы применим подразделение.- Нужно проверить, правильно ли распределены рёбра.
Почему? Потому что разные потоки граней дадут разные результаты при делении. Эта часть потребует практики.
ПРИМЕЧАНИЕ: Хотя эти правила могут быть простыми, некоторые факторы могут меняться. Например, поддерживающие рёбра могут быть добавлены позже, после того, как вы справитесь с потоком рёбер. Но это хорошая практика - сначала ознакомиться с правилами, позже эти же правила можно будет легко нарушать и манипулировать ими в соответствии с вашим стилем работы.
Переведено с англоязычного сайта, How to Understand Topology in 3D Modeling