Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KGG_LK.doc
Скачиваний:
60
Добавлен:
04.12.2018
Размер:
1.54 Mб
Скачать

Лекция 17 Формирование изображений средствами современных видеосистем. Графические интерфейсы и стандарты программирования графики Принципы формирования изображения на экране

Дисплей персонального компьютера включает в себя экран с электронно-лучевой трубкой (Cathode Rate Tube, CRT), а также комплекс оптических и электронных средств, обеспечивающих формирование изображения.

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

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

Электронный луч обегает экран слева направо и сверху вниз с определенной скоростью, последовательно формируя множество пикселов, которые, сливаясь друг с другом, воспринимаются глазом как единое целое. Происходит это так быстро, что люминофор в первой зажженной точке не успевает "забыть" свой цвет даже к тому моменту, когда луч находится уже в самом дальнем от точки углу монитора. Физически луч начинает свое движение с левого верхнего угла экрана, прорисовывает самую верхнюю строку пикселов, затем переходит ко второй строке и т.д. Заканчивается маршрут в правом нижнем углу. Длительность прорисовки всего экрана определяется настройками видеоадаптера, точнее, частотой обновления экрана. При частоте обновления 120 Гц длительность прорисовки кадра равна 1/120 с.

Вертикальная развертка и двойная буферизация

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

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

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

Любая современная библиотека (например, DirectX для Windows) позволяет переназначать указатель видеопамяти на любой виртуальный экран, и указанный экран становится основным. Тогда никакого копирования вообще не происходит и механизм работает очень быстро. В этом случае, если требуется внести изменения в изображение (например, передвинуть объект), нет необходимости стирать что-то и рисовать в новой позиции, новый кадр рисуется с нуля и копируется поверх предыдущего на основной экран.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]