- •Конспект лекций по дисциплине «Компьютерная графика» Лекция1
- •Тема 1- Компьютерная графика, ее назначение и решаемые задачи
- •Тема 2 - Геометрическое моделирование
- •Конспект лекций
- •Лекция 2
- •Тема 3 - Геометрические модели
- •Для записи модели объекта необходимо определить форму записи членов многочлена алгебраического уравнения с любым числом переменных и любым порядком.
- •Алгебраическое уравнение первого порядка общего вида
- •Алгебраическое уравнение второго порядка общего вида
- •Введение негеометрических свойств в алгебраические уравнения
- •Радиусографический способ
- •Способ кривых второго порядка
- •Кинематическая модель сферы (эллипсоида)
- •Кинематическая модель однополостного гиперболоида
- •Кинематическая модель двуполостного гиперболоида
- •Кинематическая модель конуса второго порядка
- •Кинематическая модель параболоида
- •Кинематическая модель цилиндра
- •СуперПоверхности 2-го порядка
- •Кинематическая модель суперсферы (суперэллипсоида)
- •Суперцилиндр
- •Конспект лекций
- •Лекция 3
- •Тема 4 - Компьютерная реализация геометрического моделирования
- •§ 2.2 Визуализация алгебраических поверхностей 2-го порядка
- •§ 2.3 Определение видимости
- •§ 2.4 Построение теней
- •§ 2.5 Стерео изображения
- •Конспект лекций
- •Лекция 4
- •Тема 5 - Графические диалоговые системы
- •Конспект лекций по дисциплине «Компьютерная геометрия и графика» Лекция 5
- •Тема 6 - Архитектура и программное обеспечение современных графических станций
- •Конспект лекций по дисциплине «Компьютерная геометрия и графика» Лекция 6
- •Тема 7 - Форматы и стандарты компьютерной графики
- •Конспект лекций по дисциплине «Компьютерная геометрия и графика» Лекция 7
- •Тема 8 - Применение интерактивной графики в информационных системах
§ 2.2 Визуализация алгебраических поверхностей 2-го порядка
Рассмотрим методы и алгоритмы построения реалистических пиксельных отображений пространственных объектов на экран при центральном проецировании.
В отличие от методов построения каркасных изображений, где для быстроты вычислений и вывода изображений на экран используется вывод изображения отрезками прямых линий, при окраске освещенных поверхностей необходим пиксельный вывод изображений, а соответственно и вычисление значений каждого пиксела отображаемой поверхности.
Значение пиксела выражается в полутоне цвета. Число полутонов для одного чистого цвета определяет цветовую разрешающую способность изображения.
Цветовая разрешающая способность устанавливается аппаратными средствами и реализуется программным средствами путем отображения объемных тел на плоский экран с определенной точки зрения и точек освещения.
Алгоритм метода окраски освещенных поверхностей следующий:
Из точки зрения
(рис.2.4) проводим луч a, проходящий
через визуализируемую поверхность и
попадающий на экран проецирования в
точку
;Луч зрения проходя через поверхность дает для поверхности 2-го порядка две точки
- ближняя к наблюдателю и
-
дальняя;В точке пересечения с поверхностью определяем вектор нормали N к ближней точке. Вычисляем угол a между вектором нормали N и направлением освещения L. Если угол равен нулю, то поверхность освещена максимально (луч освещения перпендикулярен поверхности в данной точке), если угол равен 90 градусов, то освещение равно нулю (луч освещения касается поверхности, скользит поверхности в данной точке), величина угла определяет уровень освещения;
Находим координаты точки пересечения луча зрения с экраном проецирования ;
Вычисляем экранные координаты пиксела;
Присваиваем пикселу номер цвета (полутона освещения);
Выводим пиксел на экран;
Начиная сканирование поверхности с точки выбора (рис.2.5), и идя влево, затем вправо с переходом на строку вверх-вниз, в цикле определяем все проекции точек поверхности и получаем на экране окрашенную освещенную поверхность.
Рис. 2.4
Рис. 2.5
Рассмотрим математическое описание метода.
Визуализируем поверхность 2-го порядка, уравнение которой имеет общий вид
. (2.1)
Уравнение прямой линии, проведенной через две точки в пространстве, имеет вид
;
(2.2)
Сканирование луча идет от глаза к экрану, проходя через поверхность, и начинается с точки выбора поверхности.
Размер шагов при решении математических уравнений вычисляется следующим образом. Например, разрешающая способность изображения равна 800 600. Физический размер пиксела на экране размером 256х192 мм (14”) по x равен 0,32 мм - по z равен 0,32 мм.
Примем текущие значения координат в мм:
пиксела на экране
-
по широте,
- по высоте;
- точки, лежащей на поверхности
- по широте объема,
- по глубине объема,
- по высоте объема.
Решение уравнений осуществляется в мм.
Меняя текущее экранное значение пиксела
по
от 0 до 799, а по
от 0 до 599 вычисляем координаты точек,
лежащих на экране и поверхности.
Определим координаты точки пересечения луча проецирования с поверхностью:
координата x
в уравнение (2) подставим и выразим через
(2.3)
координата z (необходимо инвертировать экранную систему в координатную систему пространства по высоте, так как начало экранной системы в левом верхнем углу экрана, а начало пространственной системы в левом нижнем углу пространства)
в уравнение (2) подставим и выразим через
(2.4)
Решим систему, состоящую из уравнений (2.1), (2.2), подставив выражения (2.3) и (2.4) в уравнение (2.1) и получив, опуская громоздкие выкладки, уравнение относительно
(2.5)
где
,
решаем уравнение (2.5) для нахождения
(ближняя точка поверхности)
(дальняя точка поверхности).
Подставляя вычисленное значение в (2.3) вычислим .
Подставляя вычисленное значение в (2.4) вычислим .
Дифференцируя уравнение (2.1) и, подставляя
координаты точки поверхности
,
вычисляем координаты нормали
:
;
;
.
Вычисляем координаты вектора освещенности
в точке поверхности
и относительно точки освещения
:
;
(точечный источник освещения);
(параллельные лучи освещения);
.
Вычисляем угол между нормалью поверхности в точке и направлением освещения
Величина а изменяется в пределах от 0 до 1. Номер полутона цвета hcol определяется по формуле
,
где dcol - число полутонов цвета;
bcol - начальный номер цвета в цветовой таблице.
Для вывода пиксела на экран используется стандартная функция
.
Если в ходе сканирования при вычислении подкоренное выражение приобретает отрицательное значение, это означает, что луч сканирования выходит за пределы поверхности. В этом случае меняется направление сканирования.
Порядок сканирования для минимизации числа проходов следующий:
От точки выбора поверхности проходим по строке вправо до границы поверхности;
От точки выбора поверхности проходим по строке влево до границы поверхности;
Определяем середину между границами поверхности;
От середины между границами поверхности переходим на одну строку вверх и повторяем процедуры прохода вправо и влево;
Повторяем процедуры 1...4 до нахождения верхней границы поверхности;
После от точки выбора поверхности переходим на одну строку вниз и повторяем процедуры 1...4 с движением вниз до нахождения нижней границы поверхности.
