Архитектура видеоадаптера Hercules 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Архитектура видеоадаптера Hercules



Архитектура видеоадаптера Hercules

Имеет разрешающую способность экрана 720 х 348 точек и две страницы видеопамяти по 32 Кбайта (218 бит) каждая. Пикселю экрана соответствует один бит видеопамяти, что позволяет получать только черно-белые изображения. Каждая страница имеет 4 сегмента со следующими шестнадцатеричными адресами:

страница 0 - $B000 страница 1 - $B800

$B200 $BA00

$B400 $BC00

$B600 $BE00

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

- сегмент B000 содержит строки с номерами 0, 4, 8,..., 344;

- сегмент B200 содержит строки с номерами 1, 5, 9,..., 345;

- сегмент B400 содержит строки с номерами 2, 6,10,..., 346;

- сегмент B600 содержит строки с номерами 3, 7,11,..., 347.

Другая страница организована аналогично. Как видно из сказанного, сегменты содержат последовательно строки кадра, взятые через четыре строки.

Каждая строка экрана занимает 90 байт (90 х 8 = 720), а каждый байт видеопамяти соответствует 8 пикселям экрана (рис. 4.3).

байт 0 байт 1... байт 89 строка 0

байт 90 байт 91... байт 179 строка 1

Рис. 4.3

На экране байты отображаются как обычно старшими разрядами вперед, а номера пикселей (координата X) растут слева направо. Соответствие номеров пикселей в пределах одного байта и номеров бит показано на рис. 4.4, а структура координат X и Y пикселя - на рис. 4.5

 


D7 D6 D5 D4 D3 D2 D1 D0

 

Точка № 0 1 2 3 4 5 6 7

Рис. 4.4

Например, для нулевого байта первой строки пиксели экрана соответствуют следующим разрядам:

пиксель с координатами (0,0) - 7 разряду нулевого байта,

……………………………………………………………………..

пиксель с координатами (0,7) - 0 разряду нулевого байта.

По такой схеме можно определить местоположение любого пикселя в видеопамяти.

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

 

Архитектура видеоадаптера CGA

CGA (англ. Color Graphics Adapter) — видеокарта, выпущенная IBM в 1981 году, и первый стандарт цветных мониторов для IBM PC.

Является первой видеокартой IBM, поддерживающей цветное изображение.

Стандартная видеокарта CGA имеет 16 килобайт видеопамяти и может подключаться либо к NTSC-совместимому монитору или телевизору, либо к RGBI монитору.

Основанная на видеоконтроллере Motorola MC6845, видеокарта CGA поддерживает несколько графических и текстовых видеорежимов. Максимальное поддерживаемое разрешение — 640×200, наибольшая цветовая глубина — 4 бита (16 цветов).

Максимальная цветовая глубина CGA — четыре бита, что позволяет использовать палитру из 16 цветов.

Младшие три бита соответствуют красному, зелёному и синему цветам и электронным лучам монитора.

Чёрный цвет означает, что все лучи практически выключены.

Сине-зелёный цвет достигается смешением синего и зелёного лучей, пурпурный — синего и красного и оранжево-коричневый — зелёного и красного. Белый (светло-серый) достигается смешением всех трёх лучей.

Оставшиеся восемь цветов достигаются установкой четвёртого бита — бита интенсивности — что даёт более яркую версию каждого из цветов, хотя на многих мониторах тёмно-серый нельзя было отличить от чёрного. Цветовая модель CGA «RGB плюс бит интенсивности» также называется RGBI.

Исключением является цвет № 6: если строго следовать модели RGBI, цвет № 6 будет отображаться как оливковый(#AAAA00). Однако IBM решила включить дополнительную схему в цветной монитор, ослабляющую зелёный компонент цвета № 6. В результате получается коричневый цвет (#AA5500).

Сигнал

Тип Цифровой, ТТЛ
Разрешение 640×200, 320×200
Горизонтальная частота 15,75 кГц
Вертикальная частота 60 Гц[8]
Количество цветов  

Текстовые и графические режимы адаптера CGA

EGA

Текстовые режимы

В текстовых режимах используется два типа шрифтов. Стандартный шрифт EGA формируется матрицей 7×9 в ячейке 8×14 пикселов. Для совместимости с CGA используется шрифт с матрицей 7×7 в ячейке 8×8 пикселов.

EGA — первый видеоадаптер IBM, позволяющий программно менять шрифты текстовых режимов.

Доступны следующие режимы:

· 80×25 символов (ячейка 8×14 пикселов; разрешение 640×350 пикселов).

· 40×25 символов (ячейка 8×8 пикселов; разрешение 320×200 пикселов).

· 80x43 символов (ячейка 8×8 пикселов; разрешение 640×350 пикселов). Данный режим не является стандартным. Для его использования необходимо сначала установить режим 80×25, а затем загрузить шрифт 8×8 с помощью команды BIOS.

Графические режимы

· 320×200 пикселов;

· 640×200 пикселов;

· 640×350 пикселов.

VGA

В VGA BIOS хранятся следующие виды шрифтов и функции для их загрузки и активации:

· 8×16 пикселов (стандартный шрифт VGA),

· 8×14 (для совместимости с EGA),

· 8×8 (для совместимости с CGA).

Доступны следующие стандартные режимы:

· 40×25 символов, 16 цветов, разрешение 360×400 пикселов.

· 80×25 символов, 16 цветов, разрешение 720×400 пикселов.

· 80×25 символов, монохромный, разрешение 720×400 пикселов.

Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк. Включение шрифта 8×8 увеличивает количество строк до 50 (аналогично режиму EGA 80×43).

Графические режимы

В отличие от своих предшественников (CGA и EGA) видеоадаптер VGA имел видеорежим с квадратными пикселами (то есть, на экране с соотношением сторон 4:3 соотношение горизонтального и вертикального разрешений было также 4:3). У адаптеров CGA и EGA пикселы были вытянуты по вертикали.

Режим «Чтение 1»

В этом режиме вначале также выполняется пересылка байтов из битовых плоскостей в регистры-защелки. Затем все восемь пикселов в регистрах-защелках сравниваются со значением, записанным в регистре “Сравнение цветов” (СЦ). Результат сравнения в виде одного байта пересылается в регистр процессора. Этот байт формируется так, что при совпадении цветов пиксела и регистра СЦ устанавливается 1, при несовпадении - 0 (рис. 13). На результат сравнения влияет содержимое младших разрядов (0 - 3) регистра “Цвет безразличен” (ЦБ). Если какой-либо бит установлен в 0, то соответствующий регистр-защелка исключаются из сравнения. В примере, показанном на рис. 13 четыре младших разряда регистра ЦБ имеют значение ‘1111’, поэтому в сравнении содержимого регистров-защелок и регистра СЦ участвуют все битовые плоскости. Если изменить содержимое регистра ЦБ на значение ‘1011’, то результат обработки, записанный в регистр процессора, будет иметь значение ‘11110000’.

Режим "Запись 0" (при РУС=0000)

Данный режим самый сложный и самый богатый по предоставляемым возможностям. Он используется в тех случаях, когда необходимо изменить какой-либо один из восьми пикселей, записанных в регистрах-защелках. В формировании значения пикселя принимают участие регистры “Разрешение установки-сброса” (РУС), “Установка-сброс” (УС), “Битовая маска” (БМ), “Циклический сдвиг данных” (ЦСД), а также байт данных процессора.

Существует широкий набор вариантов работы в этом режиме, определяемый содержимым регистра РУС. Из всего множества способов записи можно выделить два, при которых значение РУС равно 0000B и 1111B. В первом случае все четыре байта в регистрах-защелках перед записью в битовые плоскости комбинируются с байтом данных из регистра процессора (побайтовая комбинация).

Во втором случае значение каждого пикселя комбинируется с четырехбитовым значением в регистре “Установка-сброс” (попиксельная комбинация).

Регистр БМ формирует значение каждого пикселя в регистрах-защелках. Если какой-либо бит регистра установлен в 0, то соответствующий пиксель без изменения пересылается из регистров-защелок в видеопамять. При установке бита в 1 значение пикселя перед пересылкой в видеопамять комбинируется либо с байтом данных процессора, либо со значением в регистре “Установка-сброс”.

Способ комбинирования задается регистром ЦСД, который выполняет две функции - указывает логическую операцию и величину циклического сдвига. В битах 3 и 4 этого регистра указывается поразрядная логическая операция в соответствии с таблицей 4.8.

Разряды Функция
Четвертый Третий  
    Замещение
    AND
    OR
    XOR

Эти операции выполняются над байтом данных и содержимым регистров-защелок (при РУС = 0) или над значением регистра УС и содержимым регистров-защелок (при РУС = 1111B).

Биты 0 - 2 регистра ЦСД определяют величину циклического сдвига вправо байта данных из регистра процессора перед комбинированием его с содержимым регистров-защелок.

Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B (рис. 4.15). В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять.

 

При этом содержимое регистра процессора не имеет значения. В том случае, когда надо изменить только один пиксель, в регистре БМ соответствующий бит устанавливается в 1, а остальные - в 0, и выполняется операция записи в видеопамять. Если в регистре БМ все разряды устанавливаются в 1, то за одну операцию записи в видеопамять будут изменены все восемь пикселей, т.е. прочерчена горизонтальная линия длиной восемь пикселей.

При значении регистра РУС = 0 циклический сдвиг и логическая операция выполняются над содержимым регистра процессора.

В соответствии с содержимым регистра ЦСД над байтом регистра процессора выполняется циклический сдвиг, в результате которого получается значение 11000101B. Так как регистр БМ имеет значение 00001111B, то старшая половина байта каждого регистра-защелки пропускается в видеопамять без изменения, а вторая половина получается в результате выполнения логической операции AND над младшими четырьмя разрядами регистра процессора после сдвига и регистров-защелок. Результат заносится в видеопамять (битовые плоскости). При нулевых значениях 3 и 4 разрядов регистра ЦСД была бы выполнена операция замещения, и в младшие четыре разряда всех битовых плоскостей было бы занесено значение 0101B. В случае нулевого значения и разрядов 0 - 2 регистра ЦСД в младшие разряды всех битовых плоскостей было бы записано значение 0111B.

Режим "Запись 0" (при РУС=1111)

Он используется в тех случаях, когда необходимо изменить какой-либо один из восьми пикселей, зашлюзованных (записанных) в регистрах-защелках. В формировании значения пикселя принимают участие регистры “Разрешение установки-сброса” (РУС), “Установка-сброс” (УС), “Битовая маска” (БМ), “Циклический сдвиг данных” (ЦСД), а также байт данных процессора. Существует широкий набор вариантов работы в этом режиме, определяемый содержимым регистра РУС. Из всего множества способов записи можно выделить два, при которых значение РУС равно 0000B и 1111B. В первом случае все четыре байта в регистрах-защелках перед записью в битовые плоскости комбинируются с байтом данных из регистра процессора (побайтовая комбинация). Во втором случае значение каждого пикселя комбинируется с четырехбитовым значением в регистре “Установка-сброс” (попиксельная комбинация). Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B. В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять. Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B (рис. 4.15). В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять.

Режим "Запись 2"

Этот режим похож на режим “Запись 0” при значении РУС = 1111B. В отличие от указанного режима роль регистра УС выполняют четыре младших разряда регистра процессора, а регистр РУС не влияет на результат. В остальном все операции выполняются так же: битовые плоскости изменяются за счет комбинации значений пикселей в регистрах-защелках со значением регистра процессора (попиксельная комбинация) и выполняется логическая операция, установленная в регистре ЦСД, а регистр БМ определяет, какие пиксели изменяются, а какие - нет (рис. 4.18).

Режим "Запись 3"

Данный режим поддерживается только видеоадаптером VGA и фактически представляет собой режим “Запись 0” при значении РУС = 1111B с одним отличием - байт данных для регистра процессора циклически сдвигается вправо на число разрядов, заданных в регистре ЦСД, и комбинируется логической операцией AND значением в регистре БМ. В результате получается битовая маска, которая играет роль регистра БМ (рис. 4.19).

Стандарт VESA

Video Electronics Standards Association (VESA) — ассоциация стандартизации видеоэлектроники, основанная в 1989 году компанией NEC Home Electronics и восемью другими производителями видеоадаптеров. Первоначальной задачей ставилось создание стандарта SVGA (800x600 пикселей) для видеодисплеев. После этого, VESA продолжила создавать стандарты, в основном относящиеся к функционированию видео периферии в IBM-совместимых компьютерах.

Растровая развертка круга

Растровую развертку круга можно построить с помощью алгоритма Брезенхема для первого октанта. При этом использование симметричности точек окружности позволяет организовать заполнение четырех интервалов со следующими координатами:

- первый интервал - (-y,x) - (y,x);

- второй интервал - (-x,y) - (x,y);

- третий интервал - (-x,-y) - (x,-y);

- четвертый интервал - (-y,-x) - (y,-x).

Следует выделить граничные ситуации, когда

(x,y) = (R,0) и (x,y) =(, ).

В первом случае вместо четырех интервалов получают один интервал, совпадающий с горизонтальным диаметром - (0,R) -(0,-R), и две точки - (R,0) и

(-R,0). Во втором случае получается только два интервала:

первый - (- , ) - (, );

второй - (- ,- ) - (,- ).

Кроме того, при реализации алгоритма необходимо учитывать выбор узла растра при движении “а" и движении “b", так как в первом случае меняется только координата y, а координата x остается неизменной. Во втором случае меняются обе координаты. Это приводит к тому, что интервалы, расположенные во 2, 3, 6 и 7 октантах - ((-y,x) - (y,x)) и ((-y,-x) - (-y,x)), при движении “а" совпадают с предыдущими интервалами по координате x, а по координате y больше на два пикселя - по одной точке с каждого конца интервала. Это приводит к тому, что приходится повторно заполнять интервал, а при выводе линии в инверсных режимах (стили XOR или NOT) ранее заполненный интервал будет стерт

 

Трехмерное отсечение.

Алгоритмы трехмерного отсечения нетривиально расположенных отрезков могут быть получены естественным обобщением двумерных алгоритмов. Например, алгоритм Сазерленда-Коэна отсечения отрезка ортогональным окном можно реализовать последовательно на двух проекциях сцены на соответствующие плоскости. При этом точка пересечения отрезка с плоскостью заменяется точкой пересечения отрезка с гранью ортогонального окна. Аналогичное применение алгоритма Кируса-Бека отсечения отрезка выпуклым многоугольником в трехмерном случае приводит к решению плоской задачи на проекциях. При этом рассматривается задача отсечения отрезка не многоугольником, а ортогональным окном для случая отсекающего объема в виде параллелепипеда. Однако можно применять и любые выпуклые объемы. Можно найти несложные обобщения для трехмерного случая и для других операций, рассматриваемых при решении плоской задачи. Например, вычисление нормали к граням объема можно получить вычислением векторного произведения двух векторов V1 и V2, лежащих в плоскости. Такими векторами могут быть вектора двух ребер, рассматриваемой грани объема. Если угол между векторами меньше 1800, то вектор произведения будет совпадать с направление оси Z, в противном случае – будет направлен в противоположном направлении.

Алгоритм Варнока

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

. В алгоритме Варнока каждое окно разбивалось на четыре одинаковых подокна.

На рис. 7.5. показан результат простейшей реализации алгоритма Варнока. Здесь окно, содержимое которого слишком сложно изображать, разбито на четыре одинаковых подокна. Окно, в котором что-то есть, подразбивается далее то тех пор, пока не будет достигнут предел разрешения экрана. На рис. 7.5, a показана сцена, состоящая из двух простых многоугольников. На рис. 7.5,b показан результат после удаления невидимых линий. Заметим, что горизонтальный прямоугольник частично экранирован вертикальным. На рис. 7.5., c и d показан процесс разбиения окон на экране с разрешением 256х256. Поскольку 256 = 2^8, требуется не более восьми шагов разбиения для достижения предела разрешения экрана. Пусть подокна рассматриваются в следующем порядке: нижнее левое, нижнее правое, верхнее левое, верхнее правое. Будем обозначать подокна цифрой и буквой,' цифра – это номер шага разбиения, а буква – номер квадранта. Тогда для окна 1а подокна 2а, 4а, 4с, 5а, 5b оказываются пустыми и изображаются с фоновой интенсивностью в процессе разбиения. Первым подокном, содержимое которого не пусто на уровне пикселей, оказывается 8а. Теперь необходимо решить вопрос о том, какой алгоритм желательно применить: удаления невидимых линий или удаления невидимых поверхностей. Если желательно применить алгоритм удаления невидимых линий, то пиксель, соответствующий подокну 8а, активируется, поскольку через него проходят видимые ребра. В результате получается изображение видимых ребер многоугольников в виде последовательности точек размером с пиксель каждая (рис. 7.5., е).

Следующее рассмотрение окна, помеченного как 8d на рис. 7.5., d, лучше всего проиллюстрирует различие между реализациями алгоритмов удаления невидимых линий и поверхностей. В случае удаления невидимых линий окно 8d размером с пиксель не содержит ребер ни одного многоугольника сцены. Следовательно, оно объявляется пустым и изображается с фоновой интенсивностью или цветом. Для алгоритма удаления невидимых поверхностей проверяется охват этого окна каждым многоугольником сцены. Если такой охват обнаружен, то среди охватывающих пиксель многоугольников выбирается ближайший к точке наблюдения на направлении наблюдения, проходящем через данный пиксель. Проверка проводится относительно центра пикселя. Затем этот пиксель изображается с интенсивностью или цветом ближайшего многоугольника. Если охватывающие многоугольники не найдены, то окно размером с пиксель пусто. Поэтому оно изображается с фоновым цветом или интенсивностью. Окно 8d охвачено вертикальным прямоугольником. Поэтому оно изображается с цветом или интенсивностью этого многоугольника. Соответствующий результат показан на рис. 7.5., f.

Возвратившись к рассмотрению окна 8а на рис. 7.5., d, покажем, как включить в алгоритм удаления невидимых поверхностей устранение лестничного эффекта. Разбиение этого окна дает четыре подокна с размерами, меньшими, чем размеры пикселя. Только одно из этих подокон – правое верхнее – охвачено многоугольником. Три других пусты. Усреднение результатов для этих четырех подпикселей показывает, что окно 8а размером с пиксель нужно изображать с интенсивностью, равной одной четверти интенсивности прямоугольника. Аналогично пиксель 8Ь следует высвечивать с интенсивностью, равной половине интенсивности прямоугольника. Конечно, окна размером с пиксель можно разбивать более одного раза, чтобы произвести взвешенное усреднение характеристик.

Алгоритм Z-буфера

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

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

Этот алгоритм наиболее простой из всех алгоритмов удаления невидимых поверхностей, но требует большого объема памяти. Данные о глубине для реалистичности изображения обычно достаточно иметь с разрядностью порядка 20 бит. В этом случае при изображении нормального телевизионного размера в 768×576 пикселов для хранения Z-координат необходим объем памяти порядка 1 Мбайта. Суммарный объем памяти при 3 байтах для значений RGB составит более 2.3 Мбайта.

Время работы алгоритма не зависит от сложности сцены. Многоугольники, составляющие сцену, могут обрабатываться в произвольном порядке. Для сокращения затрат времени нелицевые многоугольники могут быть удалены. По сути дела алгоритм с Z-буфером - некоторая модификация уже рассмотренного алгоритма заливки многоугольника. Если используется построчный алгоритм заливки, то легко сделать пошаговое вычисление Z-координаты очередного пиксела, дополнительно храня Z-координаты его вершин и вычисляя приращение dz Z-координаты при перемещении вдоль X на dx, равное 1. Если известно уравнение плоскости, в которой лежит обрабатываемый многоугольник, то можно обойтись без хранения Z-координат вершин. Пусть уравнение плоскости имеет вид:

A·x+B·y+C·z+D= 0.

 

Тогда при C не равном нулю

z = -(A·x + B·y+D)/C

 

Найдем приращение Z-координаты пиксела при шаге по X на dx, помня, что Y очередной обрабатываемой строки - константа.

dz = -(A·(x+dx) + D)/C + (A·x + D)/C = -A·dx/C

 

но dx = 1, поэтому

dz = -A/C.

 

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

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

Общая схема алгоритма с Z-буфером:

 Инициализировать кадровый и Z-буфера. Кадровый буфер закрашивается фоном. Z-буфер закрашивается минимальным значением Z.

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

 Выполнить, если это было предусмотрено, усреднение изображения с понижением разрешения.

Простая модель освещенности

При расчете освещенности надо учитывать характеристику освещения, источника и объекта.

Модели освещения учитывают диффузное и зеркальное освещение. При диффузном учитывается компонента рассеянного освещения.

Диффузное освещение. При освещении объектов отраженный свет рассчитывается по модели Ламберта (закон косинусов):

Kg – коэффициент диффузного отражения:

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

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

(d – расстояние от источника до объекта)

(К – коэффициент, выбирается экспериментально)

Q
Q
a
Расчет отраженного света выполняется для каждой компоненты света.

Зеркальное отражение. Степень n отображает эмпирически качество материала

 

w(i, ^) – заменяется на kS (коэффициент зеркального отражения)

 

Архитектура видеоадаптера Hercules

Имеет разрешающую способность экрана 720 х 348 точек и две страницы видеопамяти по 32 Кбайта (218 бит) каждая. Пикселю экрана соответствует один бит видеопамяти, что позволяет получать только черно-белые изображения. Каждая страница имеет 4 сегмента со следующими шестнадцатеричными адресами:

страница 0 - $B000 страница 1 - $B800

$B200 $BA00

$B400 $BC00

$B600 $BE00

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

- сегмент B000 содержит строки с номерами 0, 4, 8,..., 344;

- сегмент B200 содержит строки с номерами 1, 5, 9,..., 345;

- сегмент B400 содержит строки с номерами 2, 6,10,..., 346;

- сегмент B600 содержит строки с номерами 3, 7,11,..., 347.

Другая страница организована аналогично. Как видно из сказанного, сегменты содержат последовательно строки кадра, взятые через четыре строки.

Каждая строка экрана занимает 90 байт (90 х 8 = 720), а каждый байт видеопамяти соответствует 8 пикселям экрана (рис. 4.3).

байт 0 байт 1... байт 89 строка 0

байт 90 байт 91... байт 179 строка 1

Рис. 4.3

На экране байты отображаются как обычно старшими разрядами вперед, а номера пикселей (координата X) растут слева направо. Соответствие номеров пикселей в пределах одного байта и номеров бит показано на рис. 4.4, а структура координат X и Y пикселя - на рис. 4.5

 


D7 D6 D5 D4 D3 D2 D1 D0

 

Точка № 0 1 2 3 4 5 6 7

Рис. 4.4

Например, для нулевого байта первой строки пиксели экрана соответствуют следующим разрядам:

пиксель с координатами (0,0) - 7 разряду нулевого байта,

……………………………………………………………………..

пиксель с координатами (0,7) - 0 разряду нулевого байта.

По такой схеме можно определить местоположение любого пикселя в видеопамяти.

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 223; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.152.99 (0.096 с.)