
- •Задачи компьютерной графики и ее место среди других методов обработки информации
- •Основные направления компьютерной графики. Основные структурные элементы системы машинной графики
- •Виды данных, представленных в форме изображений
- •Класс 1: тоновые и цветные изображения
- •Класс 2: двухуровневые или представляемые в нескольких «цветах» изображения
- •Класс 3: непрерывные кривые и линии
- •Класс 4: точки или многоугольники
- •Виды данных, представленных в форме изображений Понятие изображения
- •Понятие о структуре изображения. Основные графические элементы (примитивы)
- •Графические элементы (примитивы).
- •Видимые и невидимые поверхности. Ограничения на сложность изображения
- •Ограничения на сложность изображения
- •Тесты глубины Тест 1.
- •Тест 2.
- •Тест 3. Проверка сканирующей прямой
- •Алгоритмы удаления невидимых поверхностей
- •Алгоритм сканирующей прямой Уоткинса
- •Алгоритм Робертса
- •Растровое представление геометрических объектов. Растровая развертка отрезка
- •Растровая развертка отрезка.
- •Растровая развертка сплошных областей. Закраска многоугольников
- •Закраска многоугольников.
- •Растровая развертка сплошных областей. Закраска ограниченной области
- •Алгоритмы отсечения отрезков Отсечение отрезков
- •Алгоритм Сазерленда-Коэна
- •Алгоритм средней точки
- •Алгоритм Кируса-Бека
- •Метод Гуро
- •Метод Фонга
- •Модели расчета освещенности граней трехмерных объектов
- •Методы трассировки лучей. Метод прямой трассировки лучей
- •Классический метод обратной трассировки лучей
- •Методы повышения качества изображения при обратной трассировке лучей Текстурные карты и свойства материалов. Работа с растровыми картами (bmp, png, jpeg)
- •Отображение шероховатости (bump-mapping)
- •Сглаживание (antialiasing)
- •Кубические сплайны
Методы повышения качества изображения при обратной трассировке лучей Текстурные карты и свойства материалов. Работа с растровыми картами (bmp, png, jpeg)
Однако простых числовых данных часто бывает недостаточно. Для моделирования сложных объектов часто приходится использовать текстуры. Рассмотрим несколько типов текстур, реализованных в демонстрационной программе:
Текстурная карта (Bitmap). Обычный растровый рисунок, загружаемый из файла.
Шахматная доска. Процедурная текстура, состоящая из двух цветов, расположенных в шахматном порядке.
Шум Перлина (сглаженный разночастотный шум). Позволяет эффективно имитировать материалы природы (облака, дерево, мрамор и т.д.). За дополнительной информацией обращайтесь к разделу ссылки.
Отображение шероховатости (bump-mapping)
Данная техника позволяет без геометрического изменения поверхности и, как следствие, не сильно замедляя трассировку, получить эффект шероховатости. У материала появляется еще одна карта – карта высоты (bump map). В зависимости от яркости точки, условно "поднимаются" точки на поверхности. Особенность заключается в том, что сама поверхность не изменяется, а меняется только нормаль в точке. К нормали прибавляются небольшие вектора: чем больше разность высот между точками, тем больше нужен прибавляемый вектор. Из-за этого, с помощью такой техники невозможно получить тени от возвышенностей, но для имитации мелких деталей она подходит идеально.
Сглаживание (antialiasing)
В задачах компьютерной графики зачастую приходится решать проблему сглаживания острых краев линий (aliasing). Дело в том, что большинство существующих алгоритмов рассматривает пиксель на экране не как область, обладающую площадью, а как математическую точку. В частности, лучи в обычной трассировке не имеют объема и, поэтому не могут передать плавный переход на границе полигонов. У решения этой проблемы существуют по крайней мере два пути решения: экстенсивный и интенсивный:).
Первый, увеличение числа трассируемых лучей через точку на экране, с дальнейшим нахождением среднего, или среднего с весами (семплинг – sampling, supersampling). Например, вместо одного луча, пять, девять, или даже двадцать пять. Минус метода - замедление работы в соответственное число раз. Чтобы от этого избавится можно трассировать дополнительные лучи только в тех точках, цвет которых сильно отличается от четырех соседних. Получится так называемый адаптивный мультисемплинг (adaptive sampling, multisampling). Обычно замедление не превышает двух раз.
Второй способ – замена лучей на объемные. Теоретически, позволяет без замедления работы значительно улучшить качество сглаживания. Плюс, позволяет добавить целый класс новых эффектов. Основной минус – непонятно как их вообще реализовывать.
Кубические сплайны
Для описания сложных поверхностей часто используют сплайны. Сплайн – это специальная функция для аппроксимации отдельных фрагментов поверхности. Несколько сплайнов образуют модель сложной поверхности. Иными словами, сплайн – это тоже поверхность, но такая, для которой можно достаточно просто вычислять координаты ее точек. В трехмерной графике обычно используют кубические сплайны по двум основным причинам:
– третья степень – наименьшая из степеней, позволяющих описывать любую форму;
– при стыковке сплайнов можно обеспечить непрерывную первую производную – такая поверхность будет без изломов в местах стыка.
Сплайны, как правило, задают параметрически.
Рассмотрим одну из разновидностей сплайнов – сплайн Безье. В обобщенной форме (степени m*n):
где Pij – опорные точки-ориентиры, 0 s 1, 0 t 1, Cmi и Cnj – коэффициенты бинома Ньютона, которые рассчитываются по формуле
Кубический сплайн Безье соответствует значениям m=3, n=3. Для его определения необходимо 16 точек-ориентиров Pij; коэффициенты Cmi и Cnj равны 1, 3, 3, 1 при i, j = 0, 1, 2, 3.