Jump to content

Развертка рендеринга

Пример алгоритма сканирования строк

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

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

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

Алгоритм

[ редактировать ]

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

Варианты

[ редактировать ]

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

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

Первую публикацию техники рендеринга развертки, вероятно, сделали Уайли, Ромни, Эванс и Эрдал в 1967 году. [1]

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

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

[ редактировать ]

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

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

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

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

Sony экспериментировала с программными средствами рендеринга строк сканирования на втором процессоре Cell во время разработки PlayStation 3 , прежде чем остановилась на традиционной схеме CPU/GPU.

Подобные методы

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

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

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

См. также

[ редактировать ]
  1. ^ Уайли, К., Ромни, Г.В., Эванс, округ Колумбия, и Эрдал, А., «Чертежи в полутоновой перспективе с помощью компьютера», Proc. AFIPS FJCC 1967, Vol. 31, 49
  2. ^ Bouknight WJ, « Улучшенная процедура создания полутонового представления компьютерной графики », UI, Координированная научная лаборатория, сентябрь 1969 г.
  3. ^ Ньюэлл, М.Э., Ньюэлл Р.Г. и Санча, Т.Л., «Новый подход к проблеме затененного изображения», Proc ACM National Conf. 1972 год
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1503556aaa57e5e7d6e120ac211cc595__1702851240
URL1:https://arc.ask3.ru/arc/aa/15/95/1503556aaa57e5e7d6e120ac211cc595.html
Заголовок, (Title) документа по адресу, URL1:
Scanline rendering - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)