
- •1. Предмет кг. Области применения кг. Совр. Тенденции развития кг.
- •2. История развития кг. Современные тенденции развития кг.
- •3. Основные понятия кг. Аппаратное обеспечение кг. Принципы формирования изобр.
- •4. Архитектура рабочих станций. Графический ускоритель. Арi.
- •5. Архитектура графических рабочих станций. Технологии 3d графики.
- •6. Архитектура графических рабочих станций. Принципы конвейерной архитектуры.
- •7. Общие положения алгоритмов сжатия изображений.
- •8. Алгоритмы архивации без потерь: rle, lz/lzw, Хаффман.
- •9. Алгоритмы архивации с потерями, проблемы алгоритмов архивации с потерями. Основные идеи алгоритмов jpeg, фрактальный, волновой.
- •10. Геометрическое моделирование и решаемые им задачи…
- •11. Представление геометрических моделей. Полигональные сетки и способы …
- •12. Аффинные преобразования, их свойства, однородные координаты.
- •13. Аффинные преобразования на плоскости.
- •14. Аффинные преобразования в пространстве. Использование матричного представления. Составные аффинные преобразования в пространстве.
- •15. Проецирование. Общий вид преобразований в пространстве. Виды проекций.
- •Общая формула преобразования
- •16. Этапы создания графического объекта. Преобразование положения объекта. Понятие камеры. Особенности матричных преобразований.
- •17. Понятие растрового алгоритма. Понятие связности. Основные требования предъявляемые к растровым алгоритмам.
- •18. Растровое представление отрезка: постановка задачи, простейший алгоритм, алгоритм цда.
- •19. Растровое представление отрезка: постановка задачи, алгоритм Брезенхейма.
- •20. Растровое представление отрезка: построение сглаженной линии (метод Флойда-Стейнберга, модификация алгоритма Брезенхейма, сглаживание всей сцены).
- •21. Растровое представление окружности: постановка задачи, простой алгоритм, алгоритм Брезенхейма.
- •22. Алгоритм закраски области, заданной цветом границы.
- •Задача отсечения Вопрос 23
- •Двумерный алгоритм Коэна-Сазерленда (Кохена-Сазерленда)
- •Двумерный fc-алгоритм
- •Задача отсечения Вопрос 24
- •Двумерный алгоритм Лианга-Барски
- •Задача отсечения Вопрос 25
- •Двумерный алгоритм Кируса-Бека
- •Проверка выпуклости и определение нормалей Вопрос 27 Алгоритм с использованием векторных произведений
- •Разбиение невыпуклых многоугольников. Алгоритм метода при обходе вершин многоугольника против часовой стрелки состоит в следующем:
- •Отсечение многоугольника
- •Вопрос 28
- •Вопрос 29
- •Вопрос 30
- •Вопрос 31
- •Пересечение луча с плоскостью и многоугольником Вопрос 32
- •Вопрос34
- •Вопрос 35
- •Вопрос 36
- •Вопрос 37
- •Вопрос 38
- •Вопрос 39
- •Вопрос 40
- •Вопрос 41
- •Вопрос 42
- •Пирамидальное фильтрование (Mip-mapping).
- •Вопрос 43
- •Трассировка лучей
- •Излучательность
- •Вопрос 44
- •Интерактивные системы машинной графики
- •Графические языки высокого уровня
- •Синтаксические расширения алгоритмических языков
- •Процедурные графические языки
- •Вопрос 45
Вопрос 36
Удаление скрытых линий и поверхностей: алгоритм удаления поверхностей с Z-буфером, построчный Z-буфер, иерархический Z-буфер, Z-пирамида.
Обычный буфер кадра хранит коды цвета для каждого пикселя в пространстве изображения. Идея данного алгоритма заключается в том, что величина z по соответствующей оси является показателем того, какая грань сцены находится ближе, а какая дальше. Следовательно, для каждого пикселя дополнительно хранится еще и координата z (или глубина). При занесении очередного пикселя в буфер кадра значение его z-координаты сравнивается с z-координатой пикселя, который уже находится в буфере. Если у нового пикселя она больше, чем у старого, т.е. он ближе к наблюдателю, то атрибуты нового пикселя и его z-координата заносятся в буфер, если нет, то ничего не делается.
Построчный z-буфер представляет собой обобщение алгоритма построчной заливки многоугольника. Модификация должна учесть, что для каждой строки сканирования теперь может обрабатываться не один многоугольник.
Общая схема такого алгоритма следующая:
1. Подготовка данных. Для каждого многоугольника определить максимальную Y-координату. Занести многоугольник в группу многоугольников, соответствующую данной Y-координате.
2. Совбстенно заливка.
Иерархический z-буфер
Опишем куб вокруг всей сцены. Разобьем его на 8 равных частей.
Каждую из частей, содержащую достаточно много граней, снова разобьем и т. д. В результате получается восьмеричное дерево, где с каждым кубом связан список граней, содержащихся внутри его. Вывод всей сцены можно представить следующим образом: очередной куб, начиная с корня дерева, проверяется на попадание в область видимости. Если куб в область видимости не попадает, то ни одна грань из него не видна и мы его отбрасываем. В противном случае проверяем, не является ли этот куб скрытым. Скрытый куб также отбрасывается. В противном случае повторяем описанную процедуру для всех его восьми частей в порядке удаления: первым обрабатывается ближайший подкуб, последним — самый дальний. Для куба, являющегося листом, вместо вывода его частей просто выводим все содержащиеся в нем грани.
Для облегчения проверки грани на скрытость можно использовать z-пирамиду. Ее нижним уровнем является сам z-буфер. Для построения следующего уровня пиксели объединяются в группы по 4 (22×) и из их глубин выбирается наибольшая. Таким образом, следующий уровень оказывается тоже буфером, но его размер уже будет меньше исходного в 2 раза по каждому измерению. Аналогично строятся и остальные уровни z-пирамиды до тех пор, пока не будет достигнут уровень, состоящий из единственного пикселя, являющегося вершиной z-пирамиды.
Если минимальная глубина грани оказывается больше, то грань скрыта. В противном случае грань разбивается на 4 части и сравнение производится на следующем уровне пирамиды. Если ни на одном из промежуточных уровней скрытость грани установить не удалось, то осуществляется переход к последнему уровню, на котором грань растеризуется, и производится попиксельное сравнение с z-буфером.