Из Википедии, бесплатной энциклопедии
  (Перенаправлено из растеризации )
Перейти к навигации Перейти к поиску
растровое графическое изображение

Растеризация (или растеризация ) - это задача взять изображение, описанное в формате векторной графики (формы), и преобразовать его в растровое изображение (серию пикселей , точек или линий, которые при совместном отображении создают изображение, которое было представлено через формы). [1] [2] Растеризованное изображение может затем отображаться на дисплее компьютера , видеодисплея или принтере или сохраняться в формате файла растрового изображения . Растеризация может относиться к технике рисования 3D-моделей или преобразованию примитивов 2D- рендеринга, таких какполигоны , линейные сегменты в растровый формат.

Растеризация 3D изображений [ править ]

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

Процесс растеризации 3D-моделей на 2D-плоскость для отображения на экране компьютераэкранное пространство ») часто выполняется аппаратными средствами с фиксированными функциями (непрограммируемыми) в графическом конвейере . Это связано с тем, что нет мотивации для изменения методов растеризации, используемых во время рендеринга [ требуется пояснение ], а специальная система обеспечивает высокую эффективность.

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

растеризация треугольников с помощью правила левого верхнего угла

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

  1. не оставляет отверстий (нерастрированных пикселей) между треугольниками, так что растеризованная область полностью заполняется (как и поверхность соседних треугольников). И
  2. ни один пиксель не растрируется более одного раза, т. е. растеризованные треугольники не перекрываются. Это гарантирует, что результат не зависит от порядка растрирования треугольников. Перерисовка пикселей также может означать трату вычислительной мощности на пиксели, которые будут перезаписаны.

Это приводит к установлению правил растеризации, чтобы гарантировать вышеуказанные условия. Один набор таких правил называется правилом верхнего левого угла , в котором говорится, что пиксель растеризуется тогда и только тогда, когда

  1. его центр полностью лежит внутри треугольника. Или же
  2. его центр лежит точно на краю треугольника (или нескольких краях в случае углов), который является (или, в случае углов, все они) либо верхним, либо левым краем.

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

Это правило реализовано, например, Direct3D [3] и многими реализациями OpenGL (даже если спецификация не определяет его, а требует только согласованного правила [4] ).

Качество [ править ]

Точность пикселей (слева) и субпикселей (справа)

Качество растеризации можно улучшить с помощью антиалиасинга , который создает «гладкие» края. Субпиксельная точность - это метод, который учитывает позиции в более мелком масштабе, чем пиксельная сетка, и может давать разные результаты, даже если конечные точки примитива попадают в одинаковые пиксельные координаты, обеспечивая более плавную анимацию движения. Простое или старое оборудование, такое как PlayStation 1 , не имело субпиксельной точности при трехмерной растеризации. [5]

См. Также [ править ]

  • Растеризация шрифтов
  • Субпиксельное разрешение
  • Трассировка изображений
  • Определение скрытой поверхности
  • Линейный алгоритм Брезенхема для типичного метода растеризации
  • Рендеринг строк сканирования для построчной растеризации
  • Рендеринг (компьютерная графика) для получения более общей информации
  • Графический конвейер для растеризации в стандартном графическом оборудовании
  • Процессор растровых изображений для двухмерной растеризации в системах печати
  • Векторная графика для исходного арта
  • Растровая графика для результата
  • Растр в вектор для преобразования в обратном направлении
  • Триангулированная нерегулярная сеть , векторный источник данных топографии, часто растеризованная как (растровая) цифровая модель рельефа .
  • Список отображения

Ссылки [ править ]

  1. ^ Michael F. Worboys (30 октября 1995). ГИС: перспектива компьютерных наук . CRC Press. С. 232–. ISBN 978-0-7484-0065-2.
  2. Канг-Цунг Чанг (27 августа 2007 г.). Программирование ArcObjects с VBA: ориентированный на задачу подход, второе издание . CRC Press. С. 91–. ISBN 978-1-4200-0918-7.
  3. ^ «Правила растеризации (Direct3D 9)» . Документы Microsoft . Проверено 19 апреля 2020 .
  4. ^ OpenGL 4.6 (PDF) . п. 478.
  5. ^ «Проблемы с растеризацией PlayStation» . Либретро . Проверено 19 апреля 2020 .

Внешние ссылки [ править ]

  • Статьи Майкла Абраша о компьютерной графике
  • Microsoft DirectX API
  • OpenGL API
  • Матрицы (включая матрицы преобразований) из MathWorld
  • Растеризация, практическая реализация