Изображение в трехмерной графике

Элементы трехмерной компьютерной графики

 

Когда обсуждаются возможности и задачи компьютерной графики, то в самом названии «трехмерная графика» заложено указание на то, что при работе в этой области и решении ее проблем необходимо использовать три пространственных измерения: ширину, высоту и глубину. Кроме того, заметим, что термин «трехмерная графика» в определенной степени является искажением истины, поскольку на деле трехмерная компьютерная графика является образом, созданного двумя проекциями воображаемого трехмерного мира на двухмерной видовой поверхности - экран дисплея, бумага на поле графопостроителя и т.п.

Система координат

Трехмерное пространство – это куб в кибернетическом пространстве, созданного в памяти компьютера, управляемого соответствующими программными пакетами. Кибернетическое пространство отличается от реального физического мира тем, что создается и существует только в памяти компьютера, благодаря действию специального программного обеспечения.

Однако, подобно реальному пространству, трехмерное кибернетическое пространство также неограниченно велико и чтобы не потерять в нем свои объекты, задача решается с помощью координат.

Наименьшей областью трехмерного пространства, которая может быть занята каким-то объектом, является точка, Положение каждой точки определяется тройкой чисел, называемых координатами. Примером координат может служить тройка чисел (0, 0, 0), определяющая центральную точку трехмерного пространства, называемую началом координат.

Каждая точка трехмерного пространства имеет три координаты, из которых одна определяет ширину, вторая высоту третья – глубину.

Через начало координат можно провести три координатные оси киберпространства. Координатная ось – это воображаемая линия пространства, определяющая направление изменения координаты.

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

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

Сказанное остается справедливым и для остальных координатных осей.

Достаточно часто встречается понятие левосторонняя или правосторонняя система координат, что соответственно определяется следующим соглашением. Правосторонней считается систем координат, для которой положительными считаются такие повороты, при которых ( если смотреть с конца положительной полуоси в направлении начала координат) поворот на 900 против часовой стрелки будет переводить одну положительную полуось в другую. На основе этого соглашения строится таблица, справедливая как для правых, так и для левых систем координат.

 

Ось вращения Положительным будет направление поворота
x от y к z
y от z к x
z от x к y

 

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

Задание цилиндрических координат

Задание цилиндрических координат аналогично заданию полярных координат на плоскости. Дополнительно появляется значение, определяющее координату z по оси Z, перпендикулярной плоскости XY. Цилиндрические координаты описывают расстояние от начала системы координат (или от предыдущей точки в случае относительных координат) до точки на плоскости XY , угол относительно оси X и расстояние от точки на плоскости XY. Угол задается в градусах.

Задание сферических координат

Ввод сферических координат в трехмерном пространстве также аналогичен вводу полярных координат на плоскости. Положение точки определяется ее расстоянием от начала координат, углом к оси X в плоскости XY и углом к плоскости XY. Угол задается в градусах.

В компьютерной графике нашла применение текстурная координатная система, используемая при наложении текстур на объект. В ней вектор V описывает направление (ориентацию) текстуры и лежит вдоль оси Z. Вектор U обычно лежит вдоль оси Y с началом в (0, 0, 0).

 

Изображение в трехмерной графике

Проблема наглядного изображения на плоскости объемных тел очень стара. Еще первобытные люди оставили на стенах пещер изображения своих объемных сородичей. Большинство древних рисунков, в том числе, принадлежащих эпохе Древнего Египта и средневековью показывают человека и животных или сбоку, или в анфас; иногда одна часть тела изображена в профиль, а другая фронтально. Очевидно, легче было постичь ортогональные виды предметов, в которых линия, силуэт более выразительны и определенны, чем более реалистические, но сложные ракурсы. Особый интерес к достоверности рисунка и правильности в передаче объемных предметов и сцен возникает в эпоху Возрождения. Альбрехт Дюрер, Леонардо да Винчи и другие художники много сделали в осмыслении процесса зрительного восприятия окружающего нас объемного мира и плоской картины, моделирующей этот мир. Искали связь между восприятием, искусством и геометрией, изобретали приспособления, позволяющие правильно построить рисунок

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

Когда мы хотим показать широкую панораму или окружающее нас пространство, плоская картина становится неэффективной. Можно представить себе зрителя окруженным цилиндрическойили сферической (полусферической) поверхностью, на которую, нанесено изображение. Если знать геометрические правила, на плоскости можно нарисовать изображение, которое в виде развертки представит собой проекцию, затем картину можно изогнуть нужным образом, и тогда изображение не будет искажено.

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

Так как сфера не развертывается, то приходится перепроецировать изображение со сферической поверхности на плоскость. Если точки пространства проецируются на поверхность сферы лучами, проходящими через её центр, то перепроецировать их отображения на плоскость можно множеством способов. Среди которых выделяется стереографический; здесь со сферы на плоскость точки перепроецируются прямолинейными лучами, проходящими через полюс сферы, противоположный тому, в котором сфера касается плоскости. Положительное свойство этой проекции - её конморфность. Это значит, что углы между пересекающимися линями на сфере и их отображениями на плоскости равны, а если брать небольшие части изображения, то и отношение длин отрезков будет тем же. А это значит, что при различных углах отклонения лучей от главного проецирующего луча небольшие части объекта будут изображены достоверно (правда в зависимости от направления лучей будет меняться их масштаб).

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

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

 

· преобразование объемных фигур в пространстве;

· получение плоских изображений трехмерных объектов.

 

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

Конечно, восприятие как картины, так и натуры - процесс сложный, в ход вступает множество дополнительных факторов: аккомодация зрачка (его фокусировка, настройка на разглядывание близких или далеких предметов), конвергенция двух глаз (не параллельность зрительных осей глаз при рассматривании близких предметов), стереоскопический эффект, существующий благодаря наличию двух глаз и позволяющий нам более объемно, полно видеть мир, однако "выдающий" плоскостность картинной поверхности, и т.д. То, что попадает в пределы окна, которое само является проекцией видимого объема на картинную плоскость, затем преобразуется в поле вывода и отражается на графическом устройстве.


На рис. 5.3 показана концептуальная модель вывода трехмерной графической информации. Здесь, как и для двухмерного случая, для каждой конкретной реализации могут быть использованы разнообразные модели, представляемые в различных системах координат.