- •Конспект лекцій
- •1. Машинная графика. Основные понятия 6
- •2 Преобразования в компьютерной графике 17
- •3. Технические средства мг 39
- •4. Трехмерная графика 55
- •Введение
- •1. Машинная графика. Основные понятия
- •1.1. Концептуальная модель машинной графики
- •1.2 Программирование
- •1.2.1 Координатные пространства
- •1.2.2 Текущее положение
- •1.2.3 Примитивы вывода и атрибуты.
- •1.2.4 Видовые операции
- •1.2.5 Относительные координаты
- •2 Преобразования в компьютерной графике
- •2.1 Общая архитектура графической системы
- •2.3 Геометрические преобразования
- •2.3.1 Основные математические операции
- •2.3.2 Двумерные преобразования
- •2.3.3 Однородные координаты и матричное представление двухмерных преобразований
- •2.3.4 Композиция двумерных преобразований.
- •2.3.5 Вопросы эффективности
- •2.4 Растровая развертка примитивов.
- •2.4.1 Развеpтка векторов. Тангенсный алгоритм
- •2.4.2 Алгоритм Брезенхема
- •2.4.3 Растровая развертка окружностей
- •2.4.4 Заполнение областей
- •2.4.5 Отсечение примитивов вывода
- •2.4.6 Отображение окна на поле вывода
- •3. Технические средства мг
- •3.1. Архитектура систем мг
- •3.2 Кадровое запоминающее устройство
- •3.3. Видеоконтроллеры
- •4. Трехмерная графика
- •4.1 Трехмерные координатные пространства. Матричное представление трехмерных преобразований
- •4.2 Изображения трехмерных объектов
- •4.3 Проекции
- •4.4 Представление пространственных форм
- •4.4.1 Представление поверхностей полигональной сеткой
- •4.4.2 Задание плоскости
- •4.4.3 Бикубические поверхности
- •4.5. Алгоритмы удаления скрытых линий и поверхностей
- •4.5.1 Трехмерное отсечение
- •4.5.2. Удаление скрытых линий и поверхностей
- •4.6. Алгоритмы фотореалистичной закраски
- •4.6.1 Модель освещения
- •4.6.2. Однотонная закраска
- •4.6.3 Закраска методом Гуро
- •4.6.4 Метод закраски Фонга
- •4.6.5 Определение нормалей к поверхности, вершинам, ребрам
- •4.6.6 Определение вектора отражения
4.5. Алгоритмы удаления скрытых линий и поверхностей
4.5.1 Трехмерное отсечение
В общем случае объекты, описанные в мировых координатах, отсекаются по границам видимого объема.
Двумя наиболее распространенными формами трехмерного отсекателя являются прямоугольный параллепипед, используемый при параллельном проецировании и усеченная пирамида (пирамида видимости), используемая при центральном проецировании (Рис.4.10)
Рис.4.10 Трехмерные отсекатели: а) параллепипед; б) пирамида видимости.
У каждой из этих форм шесть граней: левая, правая, верхняя, нижняя, ближняя, дальняя. Как и при двумерном отсечении, отрезки, которые полностью невидимы, можно идентифицировать с помощью кодов концевых точек Коэна-Сазерленда: в трехмерном пространстве используется 6-битный код. В биты кода заносятся единицы с помощью обобщения двумерной процедуры:
- первый бит - если конец отрезка дальше объема;
- второй бит - если конец отрезка ближе объема;
- третий бит - если конец отрезка выше объема;
- четвертый бит - если конец отрезка ниже объема;
- пятый бит - если конец отрезка правее объема;
- шестой бит - если конец отрезка левее объема.
В противном случае в соответствующие биты заносится 0.
Если коды концов отрезка равны 0, то оба конца видны и отрезок также будет полностью виден. Если побитовое логическое произведение кодов концов отрезка не равно 0, то он полностью невидим. Если же это логическое произведение равно 0, то отрезок может оказаться или частично видимым или полностью невидимым. В этом случае необходимо определять пересечение отрезка с гранями отсекающего объема.
Подробно с данными алгоритмами можно ознакомиться в [ ].
Поиск кодов точки относительно отсекающего прямоугольного параллелепипеда является прямым обобщением соответствующего двумерного алгоритма. Если отсекателем служит усеченная пирамида, задача усложняется. Один из методов [ ] заключается в преобразовании отсекателя в каноническую форму, где :
Хпр. = 1, Хлев. = -1, Уверх.= 1, Унижн.= -1, Zдальн.= 1
В более естественном методе, меньше искажающем форму отсекателя, отрезок, соединяющий центр проекции с центром усеченной пирамиды, совмещается с осью z правой координатной системы (Рис. 4.11).
Уравнение прямой на плоскости XZ, несущей проекцию правой грани отсекателя, имеет вид:
где
Рис. 4.11 Усеченная пирамида
Уравнение этой прямой можно использовать для определения местоположения точки Р1 подставив ее координаты x, y, z в функции:
>
0, если Р справа от плоскости;
= 0, если Р на плоскости;
< 0, если Р слева от плоскости.
Для левой грани:
>
0, если Р справа от плоскости;
= 0, если Р на плоскости;
< 0, если Р слева от плоскости.
Верхняя грань:
> 0, если Р выше плоскости;
= 0, если Р на плоскости;
< 0, если Р ниже плоскости.
Нижняя грань:
< 0, если Р ниже плоскости;
q = 0, если Р на плоскости;
> 0, если Р выше плоскости.
Ближняя грань:
> 0, если Р ближе плоскости;
= 0, если Р на плоскости;
< 0, если Р дальше плоскости.
Дальняя грань:
<
0, если Р дальше плоскости;
= 0, если Р на плоскости;
> 0, если Р ближе плоскости.
Чем ближе
к бесконечности, тем больше форма
отсекателя приближается к прямоугольному
параллелепипеду.
Примечание: в приведенном методе можно получить некорректные результаты, если концы отрезков лежат за центром проекции.
