- •2. Цвет в кг. Аддитивные и субтрактивные цвета. Системы rgb, cmyk.
- •8. Печатающие устройства. Разрешение устройств. Классификация и принцип действия принтеров. Матричный принтер. Струйный принтер. Лазерный принтер.
- •9. Графопостроители. Классификация. Планшетные графопостроители. Графопостроители с переметающимся носителем. Электростатические графопостроители.
- •Кнопки (Buttons)
- •Световое перо (Lightpen)
- •Планшеты (Tabletts)
- •2. Алгоритмы компьютерной графики (теоретический вопрос)
- •1. Генерация векторов. Целочисленный алгоритм Брезенхема.
- •2. Генерация окружностей. Алгоритм Брезенхема.
- •3. Методы устранения ступенчатости. Причини возникновения искажения изображения. Устранение ступенчатости полутонами.
- •4. Заполнение многоугольника. Алгоритм заполнения с затравкой.
- •0.5.1 Простой алгоритм заливки
- •0.5.2 Построчный алгоритм заливки с затравкой
- •0.7.1 Алгоритм Сазерленда-Ходгмана
- •0.7.2 Простой алгоритм отсечения многоугольника
- •0.7.3 Алгоритм отсечения многоугольника Вейлера-Азертона
- •0.2.1 Устройство глаза
- •14. Построение реалистических изображений. Простая модель освещения. Диффузное отражение.
- •15. Построение реалистических изображений. Простая модель освещения. Зеркальное отражение.
- •16. Построение реалистических изображений. Определение нормали к поверхности.
- •17. Построение реалистических изображений. Определение вектора отражения.
- •18. Построение реалистических изображений. Закраска методом Гуро.
- •19. Построение реалистических изображений. Закраска методом Фонга.
- •20. Построение реалистических трехмерных изображений. Удаление невидимых линий и поверхностей.
- •4. Современное программирование трехмерной графики в OpenGl (теоретический вопрос).
- •1. Инициализация пакета OpenGl:
- •2. Описание вершин: определение координат и цвета вершин, вывод точек (настройка режимов вывода).
16. Построение реалистических изображений. Определение нормали к поверхности.
17. Построение реалистических изображений. Определение вектора отражения.
18. Построение реалистических изображений. Закраска методом Гуро.
Метод закраски, который основан на интерполяции интенсивности и известен как метод Гуро (по имени его разработчика), позволяет устранить дискретность изменения интенсивности. Процесс закраски по методу Гуро осуществляется в четыре этапа.
Вычисляются нормали ко всем полигонам;
Определяются нормали в вершинах путем усреднения нормалей по всем полигональным граням, которым принадлежит вершина (Рис 5.3).
Используя нормали в вершинах и применяя произвольный метод закраски, вычисляются значения интенсивности в вершинах.
Каждый многоугольник закрашивается путем линейной интерполяции значений интенсивностей в вершинах сначала вдоль каждого ребра, а затем и между ребрами вдоль каждой сканирующей строки (Рис. 6.4).
Интерполяция вдоль ребер легко объединяется с алгоритмом удаления скрытых поверхностей, построенным на принципе построчного сканирования. Для всех ребер запоминается начальная интенсивность, а также изменение интенсивности при каждом единичном шаге по координате y, Заполнение видимого интервала на сканирующей строке производится путем интерполяции между значениями интенсивности на двух ребрах, ограничивающих интервал (Рис 6.4.).
Ia
= I1
+
I2
Ib
= I1
+
I3
Ip
= Ia
+
Ib
Для цветных объектов отдельно интерполируется каждая из компонент цвета.
19. Построение реалистических изображений. Закраска методом Фонга.
В методе закраски,
разработанном Фонгом, используется
интерполяция вектора нормали
к поверхности вдоль видимого интервала
на сканирующей строке внутри
многоугольника, а не интерполяция
интенсивности. Интерполяция выполняется
между начальной и конечной нормалями,
которые сами тоже являются результатами
интерполяции вдоль ребер многоугольника
между нормалями в вершинах. Нормали в
вершинах в свою очередь вычисляются
так же, как в методе закраски, построенном
на основе интерполяции интенсивности.
Как и выше, интерполяцию вдоль ребер
можно выполнить поэтапно, вычисляя все
три компоненты вектора нормали при
переходе от каждой сканирующей Рис.
22.
В каждом пикселе вдоль сканирующей строки новое значение интенсивности вычисляется с помощью любой модели закраски. Заметные улучшения по сравнению с интерполяцией интенсивности наблюдаются в случае использования модели с учетом зеркального отражения, так как при этом более точно воспроизводятся световые блики. Однако даже если зеркальное отражение не используется, интерполяция векторов нормали приводит к более качественным результатам, чем интерполяция интенсивности, поскольку аппроксимация нормали в этом случае осуществляется в каждой точке. При этом значительно возрастают вычислительные затраты.
Чтобы закрасить куски бикубической поверхности, для каждого пиксела, исходя из уравнений поверхности, вычисляется нормаль к поверхности. Этот процесс тоже достаточно дорогой. Затем с помощью любой модели закраски определяется значение интенсивности. Однако прежде чем применить метод закраски к плоским или бикубическим поверхностям, необходимо иметь информацию о том, какие источники света (если они имеются) в действительности освещают точку. Поэтому мы должны рассматривать также и тени.
