Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

vvedenie_v_kompyuternuyu_grafiku

.pdf
Скачиваний:
23
Добавлен:
11.05.2015
Размер:
2.76 Mб
Скачать

1.Треугольник и плоскость не пересекаются, т.е. все вершины треугольника находятся по одну сторону от плоскости.

2.Треугольник касается плоскости одной вершиной, а две другие находятся по одну сторону от плоскости.

3.Треугольник касается плоскости ребром, т.е. две вершины находятся в плоскости, одна - вне ее.

4.Треугольник полностью в плоскости - все его вершины.

5.Треугольник пересекается с плоскостью - т.е. есть пара вершин, лежащих по разные стороны от плоскости.

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

Контрольные вопросы к разделу 5

1.Дайте определения объектных, картинных, смешанных алгоритмов решения задач загораживания.

2.Как работает метод Z-буфера в задачах загораживания?

3.В чем суть метода плавающего горизонта?

4.Как определяется видимость или невидимость грани многогранника при проектировании (проецировании) на плоскость?

5.Что такое триангуляция? Где она используется, в том числе и в компьютерной графике?

6.Сформулируйте, как работает алгоритм построения линий уровня двух переменных.

6. ДОПОЛНИТЕЛЬНЫЕ ВОПРОСЫ КОМПЬЮТЕРНОЙ ГРАФИКИ

6.1. Алгоритм определения точки пересечения произвольного луча с геометрическими объектами

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

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

Только после этого для оставшихся лучей имеет смысл проводить более детальный анализ.

1. Пересечение со сферой

Пусть луч выходит из точки О, радиус вектор которой R0 (x0, y0, z0), в направлении, определяемом вектором L (l, m, n) 0. Здесь l, m, n – косинусы углов, которые образует вектор, направленный вдоль луча, с осями декартовой системы координат, или, что то же самое, проекции соответствующего единичного вектора на эти оси.

Параметрическое уравнение такого луча можно записать в виде

R(t) = R0 + L* t,

t > 0,

 

или

 

 

x(t) = x0 + l*t, y(t) = y0 + m*t, z(t) = z0 + n*t.

(*)

Если направляющий вектор единичный (l2 + m2 + n2 = 1), то смысл параметра t - расстояние от начала луча до текущей точки.

Пусть имеется сфера радиуса r, центр которой расположен в точке с координатами хс, yc, zc. Ее уравнение тогда можно записать:

(x - xс )2 + (y - yс )2 + (z - zс )2 = r2.

Точки пересечения луча со сферой будут, если x, y, z одновременно принадлежат лучу и сфере, т.е. удовлетворяют соответственно уравнениям луча и сферы одновременно.

Подставим (*) в уравнение сферы; тогда получим

at + 2bt + c = 0. (**)

Здесь a = l2 + m2 + n2 = 1 (для единичного L);

b = l*(x0 - xс ) + m*(y0 - yс ) + n*(z0 - zс ); c = (x0 - xс ) + (y0 - yс ) + (z0 - zс ) - r .

Если существуют значения t, при которых выполняется (**), это и есть точки пересечения.

Корни уравнения (**) t = - b ± √ b2 – c.

Если b2 – c < 0, решения нет, и это означает, что луч идет мимо сферы; b2 – c = 0 - одно решение – луч касается сферы;

b2 –c > 0 - два решения – луч «протыкает» сферу.

Поскольку мы принимали t > 0, то ближайшая точка пересечения отвечает меньшему положительному корню (**); обозначим ее через t1. Тогда точка пересечения определяется координатами

x =x0 + lt1, y =y0 + mt1, z =z0 + nt1.

Нормаль к сфере - единичный вектор - определится тогда соотноше-

нием

N=(x -xс , y -yс , z -z с) / r.

Таким образом, весь алгоритм включает в себя расчет:

1)a, b, c из (*);

2)b2 - c;

3) tmin и tmax ;

4)

t1 , выбираемое из tmin и tmax ; определяется точка пересечения;

5)

расчет N.

2. Пересечение с плоскостью

Пусть уравнение плоскости

ax + by + cz + d = 0;

тогда N(a, b, c) - вектор нормали к ней. Если при этом N - единичный вектор (a2 + b2 + c2 =1), то d в уравнении плоскости означает расстояние от начала координат до плоскости.

Пересечение луча с плоскостью будет, если вместо x, y, z в уравнение плоскости подставим (*):

а*(x + lt) + b*(y + mt) + c*(z + nt) + d = 0.

Решение этого уравнения

t

= −ax +by +cz +d .

1

al +bm +cn

 

Если знаменатель в этом выражении равен нулю, то t1 → ∞, а это означает, что луч параллелен плоскости и ее не пересекает.

Если t1 < 0 - пересечения луча с плоскостью нет;

если t1 > 0 - есть пересечение в точке, координаты которой определяются из соотношений

x = x + lt1 , y =y + mt1 , z = z + nt1 .

При определении пересечения луча с многогранником определяется возможность его пересечения с каждой гранью - многоугольником.

Для этого определяется:

1)пересекает ли луч плоскость многоугольника;

2)попадает ли точка пересечения внутрь многоугольника.

О первом вопросе – о пересечении луча с плоскостью – речь уже шла выше. Для решения второго вопроса и многоугольник, и точка пересечения проектируются на какую-либо координатную плоскость, например, z=0. Если проекция точки пересечения находится внутри проекции многоугольника, то и сама точка – внутри многоугольника.

Один из приемов заключается в следующем. Система координат передвигается так, чтобы точка пересечения x, y оказалась в начале координат. После этого есть ряд способов определить, находится ли этот центр внутри многоугольника. Например, если все х > 0 или все x <0 одновременно, то центр (0, 0) находится вне многоугольника, и анализ прекращается. В противном случае анализ продолжается с использованием более сложных рассуждений.

6.2. Основы методов устранения ступенчатости

Причины возникновения «лестничного» эффекта и многих других искажений:

1.В использовании дискретных растровых устройств для рисования непрерывных линий. Об этом уже шла речь при обсуждении алгоритма Брезенхема.

2.В низкой частоте несущего сигнала. Например, если вести выборку значений разных сигналов с одной и той же частотой, как это показано на рис. 20 и рис. 21,

Рис. 20

Рис. 21

то его изображение по дискретным значениям будет одним и тем же, как, например, показано на рис. 22.

Рис. 22

Для предотвращения таких искажений необходимо вести выборку с чаcтотой как минимум вдвое большей, чем максимальная частота сигнала.

3. В наличии многих объектов в изображении; при этом если объект не попадает в пиксел (а), то он игнорируется и не изображается; если же попадает (б), то меняет атрибут пиксела целиком. В итоге мелкие объекты либо теряются совсем и не изображаются на экране монитора вообще, как для случая на рис. 23, либо слишком выделяются, как на рис. 24.

Простое мельчение выборки (на современных средствах до 2000 пикселов в строке) проблемы не решает.

Рис. 23 Рис. 24

Возможные пути решения:

1. Вычисляется растр с высоким разрешением (это так называемый математический растр), а изображается на реальном (техническом) растре с

более низким. При этом на реальном растре проводится усреднение - равномерное (на рис. 25 математический растр 3*3, на рис. 26 - 4*4) или с весами (рис. 27). В последнем случае «вес» означает, что изображение в соответствующей части математического растра вносит в определение атрибута пиксела, пропорциональную 1, 2 или 4. Разумеется, эти «веса» можно изменять.

+

+

+

+

+

+

+

+

+

Рис. 25. Растр 3×3, когда ячейки имеют одинаковые «веса»

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

Рис. 26. Растр 4×4, когда ячейки имеют одинаковые «веса»

1

2

1

2

4

2

1

2

1

Рис. 27. Растр 3×3, когда ячейки имеют различные веса в соответствии с цифрами внутри ячеек

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

2. Технический пиксел трактуется не как точка, а как некоторая область конечных размеров. В этом случае интенсивность закрашивания пиксела определяется размерами части области, занятой изображением. Относительная величина этой части и определяет интенсивность цвета (и/или освещенности) в реальных дисплеях.

Для определения атрибута пиксела используется так называемая операция свертки сигнала (т.е. изображения) с некоторым ядром свертки.

Функция свертки определит часть сигнала как площадь пиксела, отсекаемую стороной многоугольника, что и задаст атрибут пиксела.

Обычно ядро свертки (функция, определяющая, какой «вес» имеет тот или иной участок области в зависимости от ее положения внутри всей области, занимаемой пикселом) определяется в виде треугольника или Гауссова распределения. Тем самым определяется, что участки, расположенные ближе к центру области, вносят больший вклад в цвет и/или освещенность элемента технического растра, нежели расположенные на его периферии.

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

6.3. Полутоновые изображения

Полутоновые изображения изобретены Стефаном Хагеном в 1880 г. для печати изображений в полиграфии.

Полутоновая печать - решеточный или клеточный процесс. Размер клетки зависит от зернистости решетки. Для газетных изображений это обычно 50...90 точек/дюйм, для журнальных - 100...300. Когда рекламируют возможности современных принтеров, один из параметров, указывающих на четкость получаемого изображения, и означает число точек на дюйм (dpi – dot per inch).

В полутоновой печати варьируются и размеры клеток.

Размеры клеток фиксируются, а внутри их могут быть несколько пикселов. Если, например, в клетке 4 пиксела, то возможны 5 полутонов. Они получаются по следующей схеме: когда из четырех клеток ни одна не закрашена, это минимальная интенсивность; следующая степень закрашивания отвечает одной закрашенной клетке из четырех, и т.д. Понятно, что при наличии 9 пикселов есть возможность получения 10 полутонов, и т.д.

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

ЛИТЕРАТУРА

1.Грайс Д. Графические средства персонального компьютера/ Пер. с англ. –

М.: Мир, 1989. – 376 с.

2.Шикин Е.В., Боресков А.В., Зайцев А.А. Начала компьютерной графики. –

М.: ДИАЛОГ-МИФИ, 1993. – 138 с.

3.Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения. – М.: ДИАЛОГ-МИФИ, 1995. – 288 с.

4.AutoCAD. Полезные рецепты/ Под ред. М.И. Кнеллера. – М.: Радио и связь, 1994. – 208 с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]