Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.doc
Скачиваний:
16
Добавлен:
12.09.2019
Размер:
17.06 Mб
Скачать

Классификация областей Итог и примеры

Алгоритмы закраски 8-мисвязных областей ПРИМЕНИМЫ к 4-хсвязным областям. НО НЕ НАОБОРОТ!

У 4-хсвязной области ГРАНИЦА 8-мисвязная. СПРАВЕДЛИВО И ОБРАТНОЕ.

Простейший рекурсивный алгоритм заливки

Закраска пикселов области начинается обычно с указания пользователем некоторого внутреннего пиксела в области. Сам алгоритм строится либо по итеративному, либо по рекурсивному принципу.

Вот пример простого рекурсивного алгоритма для внутренне-оределенной 4хсвязной области:

Для самостоятельной работы попробуйте разобрать, что получится, если этот алгоритм применить к показанным ниже областям?

ИТОГИ

  1. Растровая форма представления изображения имеет дело с заполнением площадей, поэтому базовые операции носят ТЕОРЕТИКО-МНОЖЕСТВЕННЫЙ ХАРАКТЕР.

  2. Основной характеристикой пиксела является его ЦВЕТ, поэтому он является параметром всех базовых растровых процедур.

  3. Базовые растровые процедуры (отрисовка отрезков и заполнение областей) вызываются очень часто.

  4. Поэтому для производительности их программная реализация должна быть целочисленной.

  5. Еще более предпочтительна их АППАРАТНАЯ РЕАЛИЗАЦИЯ в видеоконтроллерах.

  6. Рекурсивная заливка области требует значительного расхода оперативной памяти.

  7. Поэтому желательна их модификация в итеративную форму, что, впрочем, является логически более сложным алгоритмом.

14 ТЕКСТУРИРОВАНИЕ

ПЛАН РАЗДЕЛА

  1. Суть текстурирования.

  2. Задание текстуры.

  3. Текстурные координаты вершин объекта.

  4. Наложение текстуры на грань.

  1. Быстрый текстурный рендеринг по Фонгу.

Приближенное построение отражений с помощью текстур.

СУТЬ ТЕКСТУРИРОВАНИЯ

В трехмерном моделировании разработано множество технологий текстурирования.

Но мы ограничиваем здесь наше рассмотрение только так называемыми ПЛОСКИМИ ПРОЕКТИВНЫМИ ТЕКСТУРАМИ, под которыми понимается программная технология нанесения ПЛОСКИХ ИЗОБРАЖЕНИЙ на грани трехмерных объектов.

КАК ЗАДАТЬ ТЕКСТУРУ

Текстура – это растровое изображение с вещественными координатами пикселов, заданными в диапазоне от 0,0… до 0,999… (единичный квадрат). Видно, что координаты текстурных пикселов («текселов») – дробные числа с нулевой целой частью.

Текстурные координаты вершин объекта

Каждая вершина имеет ПРОСТРАНСТВЕННЫЕ КООРДИНАТЫ x,y,z.

Для нанесения на грани текстуры каждой вершине присваивают ДОПОЛНИТЕЛЬНО еще и ПАРУ ТЕКСТУРНЫХ КООРДИНАТ. Алгоритмов нанесения текстурных координат может существовать бесконечно много (ограничений практически никаких), от этого зависит вид и масштаб нанесенной на объект текстуры.

Текстурные координаты (другой пример)

Здесь пример показывает один из возможных частных случаев: «накручивание» плоской картинки на боковую поверхность цилиндра. Справа – текстура, слева – результат текстурирования.

ВЫЧИСЛЕНИЕ ЦВЕТА ТЕКСЕЛА

Берется проекция грани на плоскость проекции. В каждой вершине грани определены две текстурных координаты. Для произвольной внутренней точки грани интерполяцией вычисляется пара текстурных координат. Отбрасывая целые части каждой, получают пару координат тексела на текстуре. Его цветом закрашивается рассматриваемая точка на грани. Перебрав все пикселы изображения грани, получаем ее текстурированное изображение. Конечно, перебор пикселов довольно длительный процесс, но само их закрашивание практически не отнимает времени (одно присваивание).