Оболочки: вершины, ребра, грани

В программе оболочки всех объектов, независимо от их формы, состоят в конечном счете из треугольных граней (faces), образующих сетку (mesh) с треугольными ячейками.

Каждая грань имеет три вершины (vertices) и три ребра (edges), соединяющих эти вершины. Смежные грани, лежащие в одной плоскости, образуют многоугольник или полигон (polygon). Начиная с четвертой версии в программе 3ds max появился новый тип объектов, в оболочках которых минимальным редактируемым плоским фрагментом является именно полигон, а не треугольная грань. Сетку, образованную из полигонов, называют редактируемой полисеткой (editable poly). В чем состоит удобство использования полисеток по сравнению с традиционными сетками, вам, надеюсь, станет понятно в ходе прочтения последующих глав книги. Несмотря на то что полигон как минимальную ячейку полисетки можно выделить только целиком, он все равно разбивается программой на треугольные грани, недоступные для редактирования.

Ребра между гранями, не лежащими в одной плоскости, изображаются на сетке сплошными линиями, а между гранями, лежащими в одной плоскости — демонстрирующим увеличенный фрагмент сферической оболочки. Есть еще один важный элемент грани — ее нормаль (normal), то есть перпендикуляр к поверхности грани. Нормаль позволяет определить, будет данная грань видимой или нет. Видимыми считаются только те грани, нормали которых направлены в сторону наблюдателя. Если нормаль грани перпендикулярна линии взгляда или направлена от наблюдателя, то грань перестает быть видимой. Например, если бы вы заглянули внутрь объекта-сферы (а это легко сделать в 3ds max с помощью модели съемочной камеры), то были бы разочарованы, не увидев ничего. Все грани сферы видны только снаружи.

В программе 3ds max каждая грань задается координатами своих вершин — как известно, положение любой точки в трехмерном пространстве можно задать тройкой координат: (X, Y, Z). Таким образом, даже для такого простейшего трехмерного объекта, как прямоугольный параллелепипед, программе приходится хранить координаты 8 вершин, то есть 8 троек чисел, с указанием того, какие из этих троек образуют каждую из 12 треугольных граней параллелепипеда. Сложные сцены иногда содержат в своем составе сотни тысяч граней, так что можете представить, какую работу приходится производить компьютеру при визуализации таких сцен!

Зачем же нужно разбивать оболочки на грани? Это делается из соображений единообразия. Точки поверхностей тел простой формы, таких как сфера, цилиндр или конус, можно было задать и не разбивая эти поверхности на грани, но в реальной жизни объекты правильной геометрической формы встречаются редко. Пришлось бы разрабатывать и использовать разные подходы к описанию поверхностей тел простой формы и всех остальных объектов, имеющих произвольную конфигурацию.

Почему используются грани именно треугольной формы? Это просто: через три точки в трехмерном пространстве всегда можно провести плоскость, и притом только одну. Если бы нам приходилось разбивать поверхности объектов на грани вручную, то каждому пользователю 3ds max пришлось бы осваивать смежную профессию огранщика алмазов. Само по себе это, может быть, и не плохо, да вот только процесс моделирования мог бы оказаться слишком сложным. К счастью, программа производит такое разбиение самостоятельно.