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

Список отображения (или файл отображения ) - это серия графических команд, которые определяют выходное изображение. Изображение создается ( визуализируется ) путем выполнения команд для объединения различных примитивов . Эта деятельность чаще всего выполняется специализированным дисплеем или аппаратным обеспечением обработки, частично или полностью независимым от ЦП системы, с целью освобождения ЦП от накладных расходов на обслуживание дисплея и может обеспечивать функции вывода или скорость, превышающие возможности ЦП. [1] [2]

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

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

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

Семейство Amstrad PCWсодержит функцию списка отображения, называемую «Roller RAM». Это 512-байтовая область RAM, состоящая из 256 16-битных векторов в RAM, по одному на каждую строку дисплея 720 × 256 пикселей. Каждый вектор определяет расположение 90 байтов монохромных пикселей, которые содержат 720 состояний пикселей линии. 90 байтов из 8 состояний пикселей фактически разнесены с 8-байтовыми интервалами, поэтому между каждым байтом данных пикселей имеется 7 неиспользуемых байтов. Это соответствует тому, как ориентированный на текст PCW создает типичный экранный буфер в ОЗУ, где 8 строк первого символа хранятся в первых 8 байтах, строки второго символа - в следующих 8 байтах и ​​так далее. Роликовая RAM была реализована для ускорения прокрутки дисплея, поскольку для Z80 с частотой 3,4 МГц было бы неприемлемо медленно перемещать буфер дисплея размером 23 КБ «вручную», то есть программно.Начальная запись Roller RAM, используемая в начале обновления экрана, контролируется записываемым регистром ввода-вывода Z80. Следовательно, экран можно прокручивать, просто изменяя этот регистр ввода / вывода.

Еще одна система, использующая аппаратную функцию, подобную списку отображения, - это Amiga , которая, не случайно, также была разработана некоторыми из тех же людей, которые сделали 8-битное оборудование Atari на заказ. Аппаратное обеспечение дисплея Amiga было чрезвычайно сложным для своего времени, и, будучи однажды направленным на создание режима отображения, оно продолжало делать это автоматически для каждой следующей строки развертки. Компьютер также включал в себя специальный сопроцессор под названием « Медный».", который запускал простую программу или 'Copper List', предназначенную для изменения аппаратных регистров синхронно с дисплеем. Инструкции Copper List могут указывать Copper ждать, пока дисплей достигнет определенной позиции на экране, а затем изменять содержимое аппаратных регистров. По сути, это был процессор, предназначенный для обслуживания растровых прерываний.. Медь использовалась Workbench для смешивания нескольких режимов отображения (одновременное отображение нескольких разрешений и цветовых палитр на мониторе), а также в многочисленных программах для создания эффектов радуги и градиента на экране. Amiga Copper также была способна реконфигурировать среднюю часть кадра спрайтового движка с задержкой только в одну строку развертки. Это позволяло Amiga рисовать более 8 аппаратных спрайтов при условии, что дополнительные спрайты не разделяют строки развертки (или промежуток в одну строку развертки) с более чем 7 другими спрайтами. то есть, пока хотя бы один спрайт закончил рисовать, другой спрайт может быть добавлен под ним на экране. Кроме того, более поздний 32-битный набор микросхем AGA позволял рисовать спрайты большего размера (больше пикселей в строке), сохраняя при этом то же мультиплексирование. Обратите внимание, что у Amiga также было специальное оборудование для переключения блоков («блиттер»),который мог рисовать более крупные объекты в фреймбуфер. Это часто использовалось вместо спрайтов или в дополнение к ним.

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

Примеры результатов, возможных на этих старых машинах, требующих видео, управляемого ЦП, включают такие эффекты, как режим FLI в Commodore 64/128 или обработка радуги на ZX Spectrum.

Прекращение поддержки [ править ]

Списки отображения в значительной степени устарели в современных графических архитектурах, поскольку они представляют собой набор команд в графическом конвейере с фиксированными функциями . Современные архитектуры используют шейдеры и объекты буфера вершин , чтобы не связывать производительность графики с процессором . Однако низкоуровневые графические API, такие как Vulkan и DirectX 12, действительно предоставляют список отображения, как и функциональные возможности, в форме буферов команд и списков команд.

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

  1. ^ Руководство по программированию OpenGL: официальное руководство по изучению OpenGL, версия 1.1 (2-е изд.). Эддисон Уэсли. ISBN 978-0201461381.
  2. ^ «Глава 7 - Руководство по программированию OpenGL» . www.glprogramming.com . Аддисон-Везели . Проверено 18 ноября 2018 .

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