Смекни!
smekni.com

Реализация трехмерной графики (стр. 2 из 10)

Как видно из вышеприведенных выкладок, частотные параметры видеосисте­мы определяются, исходя из желаемой частоты кадров, разрешения экрана и ре­жима развертки. Заботясь о зрении пользователя, частоту кадров стремятся повы­шать. При низкой частоте экран начинает мерцать, что особо заметно на больших белых полях изображения (в полном смысле слова яркий тому пример — белый фон в приложениях Windows). Разрешение экрана стремятся увеличить — чем оно выше, тем больше информации можно уместить на экране. Поскольку размер эк­рана постоянно увеличивается — монитор на 19" является уже нормой для многих видов деятельности, — потребность в разрешении, скажем, 1600 х 1200 вполне реальна. Но по нашим выкладкам для этого уже требуется полоса 120 МГц (а кадровая частота 50 Гц — это отнюдь не идеал). Применение чересстрочной развертки годится лишь как вынужденная мера, поскольку имеет свои специфи­ческие неприятные «видеоэфекты»: если выводится тонкая (в одну строку то­чек) горизонтальная линия, она будет заметно мерцать. Это и понятно, ведь про­рисовывается она только в одном из полукадров, следовательно, с половинной кадровой частотой. Если изображение потолще (один и тот же элемент имеет точки в соседних строках), его мерцание будет почти незаметным. Итак, вожде­ленные цели ясны: частота кадров — выше, разрешение (по вертикали и гори­зонтали) — больше, развертка — не чересстрочная (Non Interlaced). Забегая немного вперед, заметим, что чем выше частота развертки, тем ниже производи­тельность графической системы при построении изображений. С точки зрения пользователя, привлекательность чересстрочного режима развертки заключает­ся в цене устройств — поскольку для прогрессивной развертки требуется более высокое качество компонентов всего видеотракта, построчная развертка с высо­кой частотой кадров при режимах высокого разрешения — дорогое удовольствие. Но для профессиональной работы с текстом, графического дизайна и других ви­дов деятельности ухудшение зрения обойдется дороже. Чересстрочная разверт­ка широко применяется в телевидении, где видеосигнал приходится «пропихи­вать» через радиоканал, с шириной полосы которого всегда имеются проблемы. Современные мониторы и графические адаптеры, применяемые в PC, использу­ют оба режима развертки с различными значениями частоты кадров. Естествен­но, что работать они должны в согласованных режимах.

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

Существуют два основных режима вывода информации — графический и сим­вольный (текстовый). Хотя исторически первые видеосистемы работали в сим­вольном режиме, начать объяснение работы удобнее с графического.

2. Графический режим

В графическом режиме имеется возможность индивидуального управления све­чением каждой точки экрана монитора независимо от состояния остальных. Этот режим обозначают как Gr (Graphics) или АРА (All Points Addressable — все точ­ки адресуемы). В графическом режиме каждой точке экрана — пикселу — соот­ветствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Точнее было бы сказать наоборот — фи­зически движение луча вторично, так как монитор можно и не подключать, а графический адаптер все равно будет сканировать память, но логически вся конструкция строится, исходя именно из поведения монитора. Эта постоянно циклически сканируемая (с кадровой частотой) память называется видеопамя­тью (Video Memory), или VRAM (Video RAM). Последнее сокращение можно спутать с названием специализированных микросхем динамической памяти, оптимизированной именно под данное применение. Процесс постоянного сканиро­вания видеопамяти называется регенерацией изображения, и, к счастью, этого же сканирования оказывается достаточно для регенерации информации микросхе­мам динамической памяти, применяемой в этом узле. Для программно-управля­емого построения изображений к видеопамяти также должен обеспечиваться до­ступ со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, опреде­ляет возможное число состояний пиксела — цветов, градаций яркости или иных атрибутов (например, мерцание). Так, при одном бите на пиксел возможны лишь два состояния — светится или не светится. Два бита на пиксел доставляли нема­ло удовольствия любителям цветных игрушек даже на адаптерах CGA — можно было иметь одновременно четыре цвета на экране. Четыре бита на пиксел (16 цве­тов), обеспечиваемые адаптером EGA, были достаточны для многих графичес­ких приложений (например, графики в САПРах). Пределом мечтаний в свое вре­мя было 256 цветов (8 бит на пиксел) адаптера VGA — цветная фотография розы из комплекта графического редактора Paintbrush на экране монитора казалась великолепной. Сейчас остановились на режимах High Color (16 бит; 65 536 цветов), и True Color — «истинный цвет» — (24 бит; 16,7 миллиона цветов), реализуемых современными адап­терами и мониторами SVGA. 24 бита распределяются между базисными цве­тами R:G:B поровну (5:5:5 и 8:8:8), 16 бит — с учетом особенностей цветовосприятия неравномерно (5:6:5 или 6:6:4). Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел.

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

В адаптере EGA количество бит на пиксел увеличили до четырех и видеопа­мять разбили на четыре области-слоя, называемых также и цветовыми плоско­стями (рис. 8.3). В каждом слое используется линейная организация, где каж­дый байт содержит по одному биту восьми соседних пикселов. Слои сканируют­ся (считываются в сдвиговые регистры) одновременно, в результате параллель­но формируются по четыре бита на каждый пиксел. Такое решение позволяет снизить частоту считывания ячеек памяти — одна операция чтения производит­ся за время прохода лучом восьми пикселов. Забота о снижении частоты считы­вания понятна — быстродействие памяти ограничено, а ведь в эту память нужно информацию когда-то и записывать. Ячейки слоев, отвечающие за одни и те же пикселы, имеют совпадающий адрес. Это позволяет производить параллельную запись информации сразу в несколько цветовых плоскостей (запись для каждо­го слоя разрешается индивидуально), что также экономит время. Считывание со стороны магистрали, конечно, возможно только послойное.