1. Основы 3D-моделирования, топологии и базового пайплайна
Основы 3D-моделирования, топологии и базового пайплайна
Представьте: вы — программист, открыли Blender впервые, за вечер налепили голову персонажа из сферы, импортировали в Unity, нажали Play — и лицо разъехалось в кашу при первом же повороте. Полигоны засвечиваются, тени ложатся пятнами, а при попытке добавить анимацию модель складывается как гармошка. Проблема не в движке и не в Blender — проблема в том, что без понимания топологии и пайплайна любая 3D-модель остаётся красивой болванкой, которая ломается в реальных условиях.
Эта статья — фундамент. Здесь нет ничего про художественный вкус или «почувствуй форму». Здесь — инженерные основы: как устроена полигональная сетка, почему направление рёбер влияет на анимацию, и какой порядок этапов превращает хаос в predictable workflow. Для программиста это самая важная глава курса — потому что топология работает по логике, а не по вдохновению.
Что такое полигональная сетка и почему это важно
Любая 3D-модель в играх — это набор полигонов (плоских граней), соединённых в сетку. Каждый полигон определяется вершинами (точками в пространстве) и рёбрами (линиями между вершинами). В реалтайм-рендере почти всегда используются треугольники — движок триангулирует четырёхугольники автоматически, но от того, как вы построили исходную сетку, зависит всё.
Представьте проволочный каркас, который обтянут плёнкой. Если проволока идёт ровно по контурам формы — плёнка ложится гладко. Если проволока нарезана хаотично — плёнка морщится, провисает, ломается при движении. Топология — это и есть «проволока» вашей модели.
Ключевые понятия, которые нужно запомнить с первого дня:
Для программиста аналогия проста: вершины — это элементы массива, рёбра — связи между элементами, грани — замкнутые подграфы. Топология — это структура данных вашей модели, и от неё зависит производительность, деформация и возможность анимации.
Топология: почему направление рёбер решает всё
Топология — это способ организации полигонов на поверхности модели. Не количество, а именно расположение и направление петель (edge loops) — непрерывных цепочек рёбер, обтекающих форму.
Почему это критично? Потому что при анимации скелет деформирует сетку: кость поворачивается, и вершины вокруг сустава смещаются. Если петли идут вдоль естественных линий сгиба — колено сгибается чисто. Если петли пересекают сустав хаотично — появляются артефакты: грани вдавливаются, тени ломаются, модель выглядит как надломленная.
Есть три типа петель, которые нужно уметь строить:
Микропример: представьте локоть. Если петли идут горизонтально вокруг предплечья и плеча, а в зоне локтя есть достаточная плотность вершин — локоть сгибается с плавным радиусом. Если те же петли идут вертикально вдоль руки — при сгибании грани «сжимаются» и появляются острые складки, которых нет на реальной руке.
Quad против Tris и N-gons
В игровом моделировании действует простое правило: рабочая сетка строится из четырёхугольников (quads). Треугольники — финальный формат для движка, но при моделировании quads дают predictable subdivision (гладкое сглаживание), чистые петли и предсказуемую деформацию.
N-gons — полигоны с пятью и более вершинами — категорически нежелательны на деформируемых участках. Они вызывают артефакты освещения (неправильное вычисление нормалей) и ломаются при анимации. Допустимы только на абсолютно плоских, неподвижных поверхностях — например, на подошве ботинка, которая никогда не гнётся.
| Тип полигона | Использование | Проблемы | |---|---|---| | Quad (4 вершины) | Основная единица моделирования | Нет — стандарт индустрии | | Triangle (3 вершины) | Финальный формат для движка | Сложнее контролировать subdivision | | N-gon (5+ вершин) | Только плоские неподвижные поверхности | Артефакты освещения, ломается при анимации |
Для программиста: если вы пишете инструмент импорта или проверяете модель скриптом — проверяйте соотношение quads и tris. Модель с 90%+ quads — здоровая топология. Модель с 40%+ n-gons — проблема, которую нужно исправлять до рига.
Базовый пайплайн: от идеи до готовой модели
Пайплайн — это последовательность этапов, каждый из которых опирается на результат предыдущего. Пропускать этапы нельзя, но можно оптимизировать — об этом в следующих статьях. Сейчас — классическая десятишаговая схема, которая работает для 90% игровых персонажей:
Этот пайплайн — не жёсткий закон, а карта. Для low-poly стилистики шаги 3 и 6 можно упростить. Для процедурных моделей — вообще заменить скриптами. Но если вы не знаете, зачем нужен каждый шаг — вы не сможете решить, что сократить.
Worked example: разбор топологии головы
Голова — самый сложный участок топологии на любом персонаже. Разберём по шагам, как строится правильная сетка лица:
Шаг 1: Петли вокруг глаз. Глаз — это сфера, которая вращается в глазнице. Петли должны идти концентрическими овалами вокруг глазного отверстия. Минимум три петли: одна по краю века, вторая — по орбите, третья — переход к скуле. Это обеспечивает моргание и движение бровей без артефактов.
Шаг 2: Петли вокруг рта. Рот — кольцевая мышца. Петли идут по контуру губ (верхняя и нижняя кайма), затем расходятся к щекам и подбородку. Ключевой момент: петли от рта должны соединяться с петлями от глаз через скуловую дугу — это «магистраль» лица, по которой передаётся деформация при улыбке и гримасе.
Шаг 3: Нос. Нос добавляет сложность: петли от глаз спускаются к переносице, расходятся по крыльям носа и соединяются с петлями от верхней губы. Здесь плотность вершин выше — нос активно деформируется при мимике.
Шаг 4: Уши. Ухо — отдельная «подмодель» с высокой плотностью quads. Оно крепится к голове через зону сглаживания, где петли головы плавно переходят в петли уха. Не пытайтесь строить ухо из той же сетки, что и череп — это усложнит и топологию, и UV.
Шаг 5: Затылок и лоб. Здесь плотность может быть ниже — эти зоны деформируются минимально. Петли от лица расходятся по черепу, постепенно укрупняясь. Главное — сохранить направление, чтобы subdivision давал гладкую поверхность.
Результат: на голове взрослого персонажа обычно 1500–3000 вершин. Для мобильной игры — ближе к 1500, для PC — до 3000. Лицо занимает примерно 30% бюджета вершин головы, хотя по площади это 15% поверхности — потому что деформация требует плотности.
Типичные ошибки начинающих
Программисты, приходящие в 3D, часто совершают одни и те же ошибки — потому что мыслят структурно, а не геометрически:
Если из этой статьи запомнить три вещи — это: