Отображение строки сканирования

редактировать
Визуализация компьютерной графики 3D метод Пример алгоритма строки развертки

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

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

Этот вид алгоритма может быть легко интегрирован со многими другими графическими методами, такими как модель отражения Фонга или алгоритм Z-buffer.

Содержание
  • 1 Алгоритм
  • 2 Варианты
  • 3 История
  • 4 Использование при рендеринге в реальном времени
  • 5 Подобные методы
  • 6 Сравнение с алгоритмом Z-буфера
  • 7 См. Также
  • 8 Ссылки
  • 9 Внешние ссылки
Алгоритм

Обычный метод начинается с ребер спроецированных полигонов, вставленных в сегменты, по одному на строку сканирования; растеризатор поддерживает активную таблицу границ (AET). Записи содержат ссылки сортировки, координаты X, градиенты и ссылки на полигоны, которые они связывают. Чтобы растрировать следующую строку сканирования, края, которые больше не актуальны, удаляются; добавляются новые ребра из Y-сегмента текущей развертки, вставляются отсортированные по координате X. Активные записи таблицы границ имеют увеличенный X и другую информацию о параметрах. Активные записи таблицы краев поддерживаются в списке с сортировкой по X с помощью пузырьковой сортировки, изменяя при этом 2 края. После обновления ребер, активная таблица ребер проходит в X-порядке, чтобы выделять только видимые пролеты, поддерживая Z-сортированную активную таблицу интервалов, вставляя и удаляя поверхности при пересечении ребер.

Варианты

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

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

История

Первая публикация техники рендеринга растровой строки была, вероятно, Вайли, Ромни, Эвансом и Эрдалом в 1967 году.

Другими ранними разработками метода рендеринга растровой линии были Букнайтом в 1969 году и Ньюэлл, Ньюэлл и Санча в 1972 году. Большая часть ранней работы над этими методами была проведена в графической группе Айвена Сазерленда в Университете Юты, и в компании Evans Sutherland в Солт-Лейк-Сити.

Использование в рендеринге в реальном времени

Ранняя линия генераторов изображений Evans Sutherland ESIG использовала эту технику аппаратно «на лету», чтобы генерировать изображения по одной растровой строке за раз без буфера кадра, что позволяет сэкономить на дорогостоящей памяти. Более поздние варианты использовали гибридный подход.

Nintendo DS - это новейшее оборудование для рендеринга 3D-сцен таким образом с возможностью кэширования растеризованных изображений во VRAM.

аппаратное обеспечение спрайтов, распространенное в игровых машинах 1980-х годов, можно рассматривать как простую двухмерную форму рендеринга строк развертки.

Этот метод использовался в первом движке Quake для программного рендеринга сред (но движущиеся объекты были Z-буферизированы поверх). В статических декорациях для приоритета использовалась сортировка, производная BSP. Он показал себя лучше, чем алгоритмы типа Z-buffer / художника типа при обработке сцен высокой глубины сложности с дорогостоящими пиксельными операциями (то есть с коррекцией перспективы наложением текстуры без аппаратной помощи). Это использование предшествовало широкому распространению графических процессоров на основе Z-буфера, которые теперь распространены на ПК.

Sony экспериментировала с программными модулями рендеринга строк на втором процессоре Cell во время разработки PlayStation 3, прежде чем остановиться на традиционном расположении ЦП / ГП.

Аналогичные методы

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

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

Сравнение с алгоритмом Z-буфера

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

В современных системах Z-буфера аналогичные преимущества могут быть получены за счет грубой сортировки спереди назад (приближение к «алгоритму обратного рисования»), раннего Z-отклонения (в сочетании с иерархическим Z) и т. Д. общие методы отложенного рендеринга возможны на программируемых графических процессорах.

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

Метод не считается хорошо масштабируемым, так как количество примитивов увеличивается. Это связано с размером промежуточных структур данных, необходимых во время рендеринга, который может превышать размер Z-буфера для сложной сцены.

Следовательно, в современных интерактивных графических приложениях Z-буфер стал повсеместным. Z-буфер позволяет обрабатывать большие объемы примитивов линейно, параллельно, и это удобно для современного оборудования. Преобразованные координаты, градиенты атрибутов и т. Д. Никогда не должны покидать графический чип; сохраняются только видимые пиксели и значения глубины.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-07 04:36:08
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте