logo
CompGraphicsRGUIT

1.1. Трехмерная векторная графика и ее реализация в 3d Studio max

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

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

Объект- в данном случае – это первичное понятие, которое не определяется. Примерами объектов могут служить сфера, прямоугольный параллелепипед (коробка), линия, окружность. Объекты бывают двумерные и трехмерные. Каждый объект имеет собственное имя, которое присваивается ему автоматически при его создании, например, при создании первой сферы программа присвоит ей имя Sphere01, следующей – Sphere02 и так далее. Имя можно изменить, причем программа допускает не только латиницу, но и кириллицу в именах объектов. Наименьшей областью трехмерного пространства, которая может быть «занята» каким-либо объектом, является точка (point). Положение каждой точки определяется тройкой чисел, называемых координатами (coordinates). Примером может служить тройка (0; 0; 0), определяющая центральную точку трехмерного пространства, называемую также началом координат (origin point). Другими примерами координат могут являться тройки (12; 96; 200) или (200; -349; -303).

К

Рис. 1. Координатные оси

аждая точка трехмерного пространства имеет три координаты. Две из них соответствуют плоскости экрана: по горизонтали (X) и вертикали (Y); третья координата (Z) определяет расстояние точки по нормали к этой плоскости: глубину положения точки. Таким образом, через каждую точку можно провести три координатных оси виртуального пространства.

Координатная ось (см. рис. 1) — это воображаемая линия в трехмерном пространстве, определяющая направление изменения координаты. Стандартными в 3D МАХ являются оси X, Y и Z.

Точка пересечения трех осей, имеющая координаты (0; 0; 0), - это точка начала мировой системыкоординат. Если вы нанесете точку на расстоянии одной единицы от начала координат вправо по оси X, то у этой точки будут координаты (1; 0; 0). Следующей точкой при смещении еще на единицу в этом же направлении будет точка (2; 0; 0) и т. д. С другой стороны, если вы двинетесь вдоль оси Х «влево» от начала координат, то при смещении на единицу достигнете точки с координатами (-1; 0; 0), еще на единицу - точки (-2; 0; 0) и так далее.

Сказанное остается справедливым и для остальных координатных осей. При смещении по оси Y «вверх» значения координат положительны, при смещении «вниз» - отрицательны. Например, точка с координатами (0; -1; 0) располагается на оси Y на единицу ниже начала координат. Это же правило применяется и к оси Z, положительное направление которой ориентировано в сторону наблюдателя.

Таким образом, чтобы найти точку с координатами (128; -16; 25), нужно переместиться от начала координат на 128 единиц вправо по оси X, на 16 единиц вниз по оси Y и на 25 единиц в сторону расположения наблюдателя по оси Z.

Если соединить две точки в киберпространстве, то будет создан отрезок прямой (line). Например, соединяя точки (0; 0; 0) и (5; 5; 0), получаем отрезок. Ломаная линия (polyline) состоит из нескольких отрезков, примыкающих друг к другу Замкнутая форма (closed shape), получается, если из каждой точки исходят по два отрезка. Замкнутая форма имеет внутреннююивнешнюю области. Форма может представлять собой простой трехсторонний многоугольник (polygon), называемый также гранью (face), и составляет основу объектов, создаваемых в виртуальном трехмерном пространстве. Концепция замкнутой формы, противопоставляемой разомкнутой (open shape), является очень важной в 3D Studio MAX. Многие двухмерные формы не могут быть преобразованы в трехмерные объекты, если они не замкнуты.

У трехмерного многоугольника имеются базовые элементы, назначение которых вы должны хорошо себе представлять. Такими базовыми элементами, манипулирование которыми возможно средствами 3D МАХ, являются вершины, ребра и грани.

Вершина (Vertex) - это точка, в которой сходится и соединяется друг с другом любое число линий. Иными словами, вершина - это точка пересечения линий в трехмерном пространстве.

При построении многоугольника каждая из его точек становится одной из его вершин. Каждый отрезок формирует границу области, становясь ребром (Edge) многоугольника. Когда форма замкнута, стало возможным говорить о наличии «внутренней» и «внешней» областей этой формы. Фрагмент, ограниченный ребрами многоугольника, т. е. его «внутренняя» область, называется гранью (Face).

В программе 3D Studio MAX для построения сложных поверхностей используются треугольники (triangles), четырехугольники, (quads), и более сложные многоугольники. Кроме того, поверхности трехмерных объектов составляются из кусков поверхностей Безье или поверхностей типа NURBS, причем чаще всего используются многоугольники, расположенные таким образом, чтобы образовать оболочку объекта нужной формы. В ряде случаев для конструирования требуется всего несколько многоугольников. Однако в большинстве случаев формирование объекта требует использования сотен и тысяч многоугольников, образующих большой массив данных. К примеру, в процессе работы с кубом 3D МАХ должен отслеживать положение восьми вершин, шести граней и 12 видимых ребер. Для более сложных объектов число элементов составляющих их многоугольников может достигать десятков тысяч. Поскольку объекты состоят из многоугольников, которые, в свою очередь, определяются координатами вершин в киберпространстве, объекты в результате также занимают вполне определенное положение в нашем виртуальном пространстве. Например, вершина одного из углов куба со сторонами длиной в 100 единиц может помещаться в начале координат. Это означает, что вершина куба, расположенная непосредственнонадначалом координат, будет иметь координаты (0; 100; 0). Ее можно рассматривать каклевый верхний угол передней граникуба. Поскольку куб располагается целиком в положительном направлении вдоль оси X, то следующая пара вершин будет иметь координаты (100; 0; 0) -правый нижний угол передней грании (100; 100; 0) - "равый верхний угол передней грани. Наконец, последняя группа его вершин будет иметь координаты (0; 0; -100) -левый нижний угол задней грани, (0; 100; -100) -левый верхний угол задней грани, (100; 0; -100) -правый нижний угол задней грании (100; 100; -100) -правый верхний угол задней грани.