Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика Учебные пособия / Конспект лекций по графике_2.doc
Скачиваний:
69
Добавлен:
29.03.2016
Размер:
610.3 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

ОБНИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ АТОМНОЙ ЭНЕРГЕТИКИ

Факультет кибернетики

Н.Г.Типикин

КОНСПЕКТ ЛЕКЦИЙ ПО КУРСУ «КОМПЬЮТЕРНАЯ ГРАФИКА»

Часть 2. Создание реалистических изображений

Обнинск 2005

Типикин Н.Г. Конспект лекций по компьютерной графике. Часть 2. Создание реалистических изображений. – Обнинск ИАТЭ, 2004. – 80 с.

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

Пособие предназначено для использования студентами специальностей 220200 и 071900, изучающих курс «Компьютерная геометрия и графика»

Удаление невидимых линий и граней Общие замечания

Удаление невидимых линий производится до проецирования объекта.

Алгоритмы удаления невидимых граней могут быть условно поделены на два класса в зависимости от принципов, заложенных для их реализации. Первый класс – это алгоритмы, работающие в пространстве объекта. Это означает, что для определения видимости данной грани сравнивается ее взаимное расположение со всеми остальными гранями в трехмерной сцене. ПустьN– количество граней в трехмерной сцене. Для построения трехмерной сцены в этом случае необходимо сравнить положение каждой грани с оставшимися, что требует порядкаN2операций. Например, пусть количество граней в трехмерной сценеN= 1000, тогда время работы алгоритмов этого класса порядка 1,000,000 операций.

Другой класс алгоритмов – алгоритмы, работающие в пространстве изображения, основан на нахождении точки ближайшей грани, которую пересекает луч зрения, проходящий через заданную точку на растре. Поскольку число точек на растровом экране фиксировано, то алгоритмы этого класса менее чувствительны к увеличению количества объектов в трехмерной сцене. Пустьn- число точек на растровом экране. Тогда количество операций, необходимых для построения трехмерной сцены будет порядкаnN. Например, для экранного разрешения 320200 точек,n= 64000, тогда количество операций дляN= 1000 граней будет порядка 64,000,000. Выбор класса алгоритма может зависеть от особенностей конкретной задачи, а также от способов реализации алгоритма.

Определение видимости или не видимости точки по сути сводится к проверке, лежат ли две точки на одном проекторе (см. рисунок …).

Рисунок … Проверка взаимной видимости точек

Если проекция параллельная, то проверка сводится к сравнению координат

x1 =x2,y1 =y2;

Если проекция центральная, то проверки становятся значительно сложнее:

, .

Те же самые вычисления придется повторить для новой точки P3.

Для эффективного решения задачи удаления невидимых ребер/граней преобразуем видимый объем, как показано на рис. 33.

Рис. 33. Изменение видимого объема при перспективном преобразовании: а) до преобразования; б) после преобразования.

Это достигается с помощью матрицы

,

которая носит название перспективного преобразования. После применения матрицы Mpнормированный видимый объем становится прямоугольным параллелепипедом, что позволяет перейти от центральной перспективной к параллельной проекции. Легко проверить, что, например,

.

При выполнении различных операций по выявлению перекрывающих друг друга граней широко используют ограничивающиеграньтела (оболочки). В качестве оболочек чаще всего используют параллелепипеды с гранями, параллельными координатным плоскостям. Если такой ограничивающий грань параллелепипед задан координатами своих диагональных углов (xmin, ymin, zmin) и (xmax,ymax,zmax), то проверка пересечения оболочек двух граней сводится к простой процедуре проверки пересечения трех промежутков: отxminдоxmax, отyminдоymaxи отzminдоzmax. Если хотя бы один из этих промежутков не пересекается с аналогичным промежутком для оболочки другой грани, то оболочки граней не пересекаются и, следовательно, грани тоже не пересекаются. Грани, оболочки которых пересекаются, могут как пересекаться, так и не пересекаться, и в этом случае проводят более сложные вычисления.

Рисунок. … Многоугольники и их оболочки: а) оболочки не пересекаются, следовательно многоугольники не пересекаются; б) оболочки пересекаются, а многоугольники нет.