Шаг 49.
Основы компьютерной графики. Базовые растровые алгоритмы. Стиль заполнения. Кисть. Текстура (продолжение)

    На этом шаге мы рассмотрим заполнение растровыми изображениями.

    Зачастую при использовании кистей и текстур используется копирование небольших растровых изображений. Такой алгоритм заполнения можно описать вышеупомянутой общей схемой, если строку С = f(x, у) заменить двумя другими строками:

  .   .   .   .
  Координаты пикселя заполнения (х, у) преобразуем в 
    растровые координаты образца кисти (хт, ут)
  По координатам (хт, ут) определяем цвет (С) пикселя в образце кисти 
  Вывод пикселя заполнения цвета С с координатами (х, у) 
  .   .   .   .

    Преобразование координат пикселя заполнения (х, у) в координаты внути образца кисти можно выполнить таким образом:

  xт = x mod m,
  yт = y mod n,
где m, n - размеры растра кисти соответственно по горизонтали и вертикали. При этом координаты т, ут) будут в диапазоне хт = 0...m - 1, ут = 0...n - при любых значениях х и у. Таким образом, обеспечивается циклическое копирование фрагментов кисти внутри области заполнения фигуры (рисунок 1).


Рис.1. Копирование растра кисти

    Удобно, когда размеры кисти равны степени двойки. В этом случае вместо операций взятия остатка (mod) можно использовать более быстродействующие для цифровых компьютеров поразрядные двоичные операции. Приведен пример вычисления остатка от деления на 16.

    Здесь можно использовать поразрядную операцию & (И).

    Еще один пример. Если необходимо вычислить X mod 256, а значение X записано в регистре АХ микропроцессора (совместимого с 80x86), то в качестве результата достаточно взять содержимое младшей байтовой части этого регистра - AL.

    Для пикселей текстур часто употребляется название тексель.

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг