- •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
Вопрос 41
Построение реалистических изображений: вычисление векторов нормалей, модели закраски (однотонная, Гуро и Фонга), реализация закрашивания в OpenGL .
Существует три основных способа закраски многоугольников: однотонная закраска, закраска с интерполяцией интенсивности и закраска с интерполяцией векторов нормали.
При однотонной закраске предполагается, что и источник света и наблюдатель находятся в бесконечности, поэтому произведения L·N и R·V постоянны. На изображении могут быть хорошо заметны резкие перепады интенсивности между различно закрашенными многоугольниками. Если многоугольники представляют собой результат аппроксимации криволинейной поверхности, то изображение недостаточно реалистично.
В методе закраски с интерполяцией интенсивности (метод Гуро) нормали в вершинах многоугольников вычисляются как результат усреднения нормалей ко всем граням, которым принадлежит данная вершина. Используя значения нормалей, вычисляют интенсивности в вершинах по той или иной модели освещения. Эти значения затем используются для билинейной интерполяции: для данной строки сканирования вначале находят значения интенсивностей на ребрах, а затем линейно интерполируют между ними при закраске вдоль строки.
Недостатки метода Гуро:
с помощью метода Гуро можно изображать только матовые поверхности, не имеющие зеркальных бликов (т.к. блик будет размазываться по поверхности и скроется). Действительно, в случае, когда блик расположен внутри грани и не доходит до вершин, зеркальная составляющая в вершинах равна нулю и, следовательно, блик не появится при интерполяции.
возникает классический оптический эффект (Mach banding): на границах четырехугольников человеческий глаз усиливает переходы и границы.
В методе закраски с интерполяцией нормали (метод Фонга) значение нормали вдоль строки интерполируется между значениями нормалей на ребрах для данной строки. Значения нормалей на ребрах получается как результат интерполирования между вершинами. Значения же нормалей в вершинах являются результатом усреднения, как и выше рассмотренном методе. Значение нормали для каждого из пикселей строки используется для вычислений по той или иной модели освещения.
Изображения, полученные методом Фонга, получаются более реалистичными, но этот метод требует гораздо большего объема вычислений: во-первых, интерполируются три векторные компоненты, а во-вторых, высчитывается интенсивность в каждой точке.
Недостатки метода Фонга:
работая в плоскости экрана, мы проводим интерполяцию с одинаковыми приращениями, хотя правильнее было бы учитывать перспективное представление граней и использовать разные приращения;
возникают проблемы при анимации. Дело в том, что, в определенный момент времени при повороте грани нормаль в одной и той же точке P начинает интерполироваться по нормалям другой тройки вершин, что, естественно, иногда бывает очень заметно.
Вопрос 42
Построение реалистических изображений: прозрачность, тени, текстурирование, Mip-mapping.
Прозрачность При использовании построчных алгоритмов если передний многоугольник оказывается прозрачным, то определяется ближайший из оставшихся, внутри которых находится строка сканирования. Суммарная закраска определяется следующим образом: ,
где 0 k 1 - характеризует прозрачность ближнего многоугольника. Если k = 1, то он непрозрачен. Если же k = 0, то ближний многоугольник полностью прозрачен; Iб - интенсивность для пикселя ближнего многоугольника, Iд - дальнего.
тень состоит из двух частей: Полная тень - это центральная, темная, резко очерченная часть, а полутень - окружающая ее более светлая часть. Из-за больших вычислительных затрат, как правило, рассматривается только полная тень, образуемая точечным источником света.
Те объекты, которые невидимы из источника освещения, но видимы из точки зрения находятся в тени. На первом шаге в алгоритме с учетом тени определяются все многоугольники, видимые из точки освещения. Затем выполняется удаление поверхностей невидимых из точки зрения. При выполнении закраски многоугольника проверяется не закрыт ли он многоугольником, видимым из источника освещения. Если да, то в модели освещения учитываются (если надо) все три компоненты - диффузное и зеркальное отражения и рассеянный свет. Если же перекрытия нет, то закрашиваемый многоугольник находится в тени и надо учитывать только рассеянный свет.
Фактура (текстурирование) В машинной графике фактурой называется детализация строения поверхности. Обычно рассматриваются два вида детализации:
первый состоит в том, чтобы на гладкую поверхность нанести заранее заданный узор. После этого поверхность все равно остается гладкой. Наложение узора на гладкую поверхность выполняется с помощью функции отображения;
второй тип детализации заключается в создании неровностей на поверхности. Такие шероховатые поверхности реализуются путем внесения возмущений в параметры, задающие поверхность.
Для нанесения рисунка на поверхность необходимо отображение объектного пространства в пространство изображения, а также рассмотренное выше преобразование из фактурного пространства в объектное. Может быть применено также любое видовое преобразование.