Введение

Преобразование векторного изображения в растровое изображение

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

Этимология

Термин "растеризация" происходит.

Линейные примитивы

Линейный алгоритм Брезенхэма — это пример алгоритма, применяемого для растрирования линий.

Круговые примитивы

Алгоритмы, такие как алгоритм построения окружности методом середины, используются для отрисовки окружностей на растровом изображении.

3D изображения

Растеризация — один из типичных методов рендеринга 3D-моделей. По сравнению с другими методами рендеринга, такими как трассировка лучей, растеризация чрезвычайно быстра и поэтому используется в большинстве 3D-движков реального времени. Однако растеризация — это просто процесс вычисления отображения геометрии сцены в пиксели и не определяет конкретный способ вычисления цвета этих пикселей. Конкретный цвет каждого пикселя назначается пиксельным шейдером (который в современных графических процессорах полностью программируем). Затенение может учитывать физические эффекты, такие как положение источников света, их приближения или исключительно художественные задумки. Процесс растеризации 3D-моделей на 2D-плоскость для отображения на экране компьютера ("экранное пространство") часто выполняется аппаратным обеспечением с фиксированной функциональностью (непрограммируемым) в графическом конвейере. Это обусловлено отсутствием необходимости изменять методы растеризации, используемые во время рендеринга, а специализированная система обеспечивает высокую эффективность.

Растеризация треугольника

Полигоны являются распространенным представлением цифровых 3D-моделей. Перед растризацией отдельные полигоны обычно разбиваются на треугольники; следовательно, типичная задача при 3D-растризации – это растризация треугольника. Алгоритмы растризации треугольников обычно должны обеспечивать, чтобы растризация двух смежных треугольников (то есть, имеющих общий ребро) не оставляла пробелов (нерастрированных пикселей) между треугольниками, так чтобы растрированная область была полностью заполнена (как и поверхность смежных треугольников). И чтобы ни один пиксель не растрировался более одного раза, то есть, растрированные треугольники не перекрывались. Это гарантирует, что результат не зависит от порядка, в котором треугольники растрируются. Перерисовка пикселей также может означать бесполезную трату вычислительных ресурсов на пиксели, которые будут перезаписаны. Это приводит к разработке правил растризации, гарантирующих вышеуказанные условия. Один из таких наборов правил называется правилом "верхний левый", которое гласит, что пиксель растрируется тогда и только тогда, когда его центр полностью находится внутри треугольника. Или его центр лежит точно на ребре треугольника (или нескольких ребрах в случае углов), которое является (или, в случае углов, все) либо верхним, либо левым ребром. Верхним ребром называется горизонтальное ребро, расположенное выше других ребер, а левым ребром – не горизонтальное ребро, находящееся слева от треугольника. Это правило реализовано, например, в Direct3D и многих реализациях OpenGL (хотя спецификация не определяет его и требует лишь согласованного правила).

Качество

Качество растрирования можно улучшить с помощью сглаживания, которое создает "гладкие" края. Субпиксельная точность — это метод, учитывающий позиции с более высокой точностью, чем пиксельная сетка, и способный выдавать различные результаты, даже если конечные точки примитива попадают в одни и те же пиксельные координаты, обеспечивая более плавную анимацию движения. Простое или устаревшее оборудование, такое как PlayStation 1, не поддерживало субпиксельную точность при 3D-растеризации.