Модель — это сетка
В первых двух уроках объект был целым: его двигали, поворачивали, растягивали. Теперь заглянем внутрь. Любая модель в 3D — это сетка: набор точек в пространстве, соединённых отрезками, между которыми натянута поверхность.
Вершина — точка с тремя координатами. Ребро — отрезок между двумя вершинами. Грань — плоский кусочек поверхности, натянутый на замкнутый контур из рёбер. Именно грани видно на картинке: они принимают свет, отбрасывают тени и несут материал. Вершины и рёбра без граней на рендере не видны вовсе — это только каркас.
У стандартного куба 8 вершин, 12 рёбер и 6 граней. У сферы — сотни. У модели персонажа для кино — сотни тысяч. Чем больше граней, тем плавнее поверхность и тем тяжелее сцена: дольше считается рендер, медленнее отзывается окно. Поэтому число граней — это всегда компромисс, и хорошая модель плотная там, где есть изгибы, и лёгкая там, где поверхность ровная.
Круг в 3D — это многоугольник, а шар — многогранник: плавных кривых в сетке нет, есть только много маленьких плоских граней. Когда граней достаточно, глаз не видит угловатости. Когда мало — видит, и тогда на помощь приходит сглаживание, о котором в пятом уроке.
Есть и другие способы описывать форму — кривые, объёмы, облака точек, — но сетка остаётся главным. Её понимают все программы, игровые движки и 3D-принтеры, и именно ею занимаются уроки с третьего по пятый.
Режим объекта и режим правки
С сеткой работают в двух режимах, и путать их — самая частая ошибка новичка. В режиме объекта модель — единое целое: её двигают, крутят, копируют, но форма не меняется. В режиме правки вы работаете с самой сеткой: выделяете вершины, рёбра или грани и меняете форму.
| режим объекта | режим правки | |
|---|---|---|
| что выделяется | объекты целиком | вершины, рёбра, грани |
| что меняется | положение, поворот, масштаб | форма |
| опорная точка | двигается вместе с объектом | стоит на месте |
| типичная задача | расставить сцену | вылепить предмет |
Разница видна на простом опыте. Возьмите куб. В режиме объекта растяните его вверх — масштаб станет 1; 1; 2, и это растяжение нужно будет применять. В режиме правки выделите верхнюю грань и поднимите её — куб станет высоким, а масштаб останется 1; 1; 1. Форма изменилась по-настоящему, без хитростей.
В режиме правки выделяют три вида элементов, и для каждого есть свой переключатель: вершины, рёбра, грани. Поднять угол — вершина. Скруглить край — ребро. Выдавить ручку — грань. Выбор режима выделения часто важнее выбора инструмента: тот же инструмент на вершине и на грани делает разное.
Когда что-то «не работает», проверьте две вещи. Первое — в каком вы режиме: в режиме объекта инструменты формы недоступны. Второе — что выделено: инструмент применяется только к выделенному, и если выделено всё, изменится вся модель.
Нормали и сглаживание
У каждой грани есть лицевая сторона и изнанка. Направление, куда смотрит лицевая сторона, называется нормалью — представьте стрелку, торчащую из грани наружу. Для большинства моделей нормали должны смотреть наружу: из кружки, из стола, из стены комнаты — в сторону зрителя.
Почему это важно? Свет, материалы и многие инструменты считают, что «наружу» — это туда, куда смотрит нормаль. Если у части граней нормали вывернуты внутрь, эти грани освещаются неправильно: темнеют без причины, дают странные полосы, у стекла пропадает прозрачность. А инструменты вроде толщины стенок наращивают её не в ту сторону.
Вывернутые нормали появляются незаметно — после зеркального отражения, после объединения моделей, после ручной правки. Поэтому их проверяют специальным режимом отображения: лицевые стороны закрашиваются синим, изнанка — красным. Красное на внешней стороне модели — ошибка, и её исправляют командой пересчёта нормалей наружу.
Есть и вторая сторона нормалей — сглаживание. Грань плоская, и если освещать каждую грань отдельно, шар из граней выглядит гранёным, как кристалл. Сглаженное затенение плавно смешивает свет между соседними гранями, и та же сетка выглядит гладкой. Форма при этом не меняется: сглаживание — обман света, а не изменение геометрии. На острых кромках, где нужен чёткий угол, сглаживание отключают, иначе кромка расплывётся.
Отсюда полезная проверка: если модель выглядит угловатой, сначала попробуйте сглаженное затенение. Если выглядит «мыльной», с расплывшимися углами, — наоборот, сглаживание слишком сильное или не хватает рёбер у кромок.
Квады и топология
Грань может быть треугольной, четырёхугольной или иметь больше углов. Хорошая сетка для большинства задач собрана в основном из четырёхугольников — их называют квадами.
Почему квады? Во-первых, они предсказуемо сглаживаются: инструмент, который делит сетку для гладкости (пятый урок), ровно режет квад на четыре квада. Треугольник и пятиугольник при таком делении дают вмятины и складки. Во-вторых, квады образуют петли — непрерывные кольца рёбер вокруг модели. По петле можно выделить весь пояс модели одним щелчком или вставить новое кольцо рёбер, о чём следующий урок.
Треугольники не запрещены: в игровых движках всё в итоге превращается в треугольники, а на ровных местах они никому не мешают. Беспокоиться о них стоит на изгибах, которые будут сглаживаться. Многоугольники с пятью и больше углами допустимы на совсем плоских местах — дне коробки, торце стола, — но на изгибах дают непредсказуемые артефакты.
Расположение граней называют топологией. Хорошая топология — рёбра идут вдоль формы: кольцами вокруг цилиндра, вдоль изгиба ручки, вокруг отверстия. Плохая — рёбра идут как попало, и модель трудно менять: любое движение тянет за собой складки.
На первых порах хватит двух правил. Держите сетку из квадов там, где будет сглаживание. И не добавляйте рёбра «на всякий случай»: каждое лишнее ребро — это работа при каждой следующей правке. Простую форму делают простой сеткой, а детали добавляют, когда они действительно нужны.