Главная страница
Навигация по странице:

  • MDA { Monochrome Display Adapter ).

  • Hercules

  • EGA { Enhanced Graphic Adapter ).

  • MCGA { Multi - Color Graphic

  • Array ).

  • SuperVGA

  • Targa 24

  • AGP { Accelerated Graphics Port ).

  • Конспект лекций по компьютерной графике. Конспект лекций по дисциплине Компьютерная графика


    Скачать 16.3 Mb.
    НазваниеКонспект лекций по дисциплине Компьютерная графика
    АнкорКонспект лекций по компьютерной графике.doc
    Дата22.04.2017
    Размер16.3 Mb.
    Формат файлаdoc
    Имя файлаКонспект лекций по компьютерной графике.doc
    ТипКонспект лекций
    #5372
    страница41 из 46
    1   ...   38   39   40   41   42   43   44   45   46

    Глава 12. Технические средства КГ (оборудование КГ)


    Чаще всего, после того, как изображение возникло на мониторе, пользователь каким-либо образом должен взаимодействовать с ним: модифицировать, передвигать, управлять. Для этого существует ряд устройств, о которых будет рассказано в этой главе.

    12.1 Видеоадаптеры


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

    Первый компьютер IBM PC был оснащен видеоадаптером MDA {Monochrome Display Adapter). Видеосистема была предназначена для работы в текстовом режиме — отобража­лись 25 строк по 80 символов в каждой строке.

    Через год небольшая фирма Hercules выпустила видеоадаптер HerculesGraphicCard. Он поддерживал также и графический черно-белый режим 720x350.

    Следующим шагом был видеоадаптер CGA {Color Graphic Adapter). Это первая цветная модель для IBM PC. Адаптер CGA позволял работать в цветных текстовом или в графиче­ском режимах. Далее мы будем рассматривать только графические режимы видеоадаптеров. Графических режимов для CGA было два: черно-белый 640x200 и цветной 320x200. В цвет­ном режиме можно было отображать одновременно только четыре цвета (2 бита на пиксел).

    В 1984 году появился адаптер EGA {Enhanced Graphic Adapter). Это было значительное достижение для персональных компьютеров рассматриваемого типа. Появился графический 16-цветный видеорежим 640x350 пикселов. Цвета можно было выбирать из палитры 64 цветов. В это время начали распространяться компьютерные игры с более или менее каче­ственной графикой и графические программы для работы. Однако шестнадцати цветов явно мало для отображения фотографий, а разрешающая способность недостаточна для графиче­ских пакетов типа САПР. Кроме того, видеорежим 640x350 имеет еще один недостаток — разная разрешающая способность по горизонтали и вертикали — "неквадратные пикселы".

    В 1987 году появились видеоадаптеры MCGA {Multi-Color Graphic Array) и VGA {Video Graphic Array). Они обеспечивали уже 256-цветные видеорежимы.

    Более популярным стал видеоадаптер VGA. Адаптер VGA имел 256-цветный графиче­ский видеорежим с размерами растра 320x200. Цвета можно было выбирать из палитры в 256 тысяч цветов. Это дало возможность полностью удовлетворить потребности отображе­ния черно-белых (в 256 градациях серого) фотографий. Цветные фотографии отображались достаточно качественно, однако 256 цветов мало, поэтому в компьютерных играх и графи­ческих пакетах активно использовался дизеринг. Кроме того, режим 320x200 тоже имеет разную разрешающую способность по горизонтали и вертикали. Для мониторов, которые использовались в персональных компьютерах типа IBM PC, необходимо, чтобы количество пикселов по горизонтали и вертикали было в пропорции 4:3. То есть, не 320x200, а 320x240. Такого документированного видеорежима для VGA нет, однако в литературе приведен пример, как создать 256-цветный видеорежим 320x240 на видеосистеме VGA. Можно за­программировать видеоадаптер, записав в его регистры соответствующие значения, и полу­чить видеорежим "X" (не путать с XGA).

    Видеоадаптер VGA также имеет 16-цветовой видеорежим 640x480. Это соответствует "квадратным пикселам". Увеличение разрешающей способности в сравнении с EGA не очень большое, но ощутимое, что дало новый толчок для развития графических программ на персональных компьютерах.

    Дальнейшее развитие видеоадаптеров для компьютеров типа IBM PC связано с увели­чением разрешающей способности и количества цветов. Можно отметить видеосистему IBM 8514, которая была предназначена для работы с пакетами САПР. Начали появляться видеоадаптеры разных фирм, которые обеспечивали сначала видеорежимы 800x600, а по­том и 1024x768 при 16-ти цветах, а также видеорежимы 640x480, 800x600 и более — для 256 цветов. Эти видеоадаптеры стали называть SuperVGA, Чуть позже появился видеоадап­тер IBM XGA.

    Первой достигла глубины цвета в 24-6ит фирма Truevision с видеоадаптером Targa 24, что позволило получить на персональных компьютерах IBM PC видеорежим True Color. Такое достижение можно считать началом профессиональной графики на персональных компьюте­рах этого типа. Там, где раньше использовали графические рабочие станции или персональ­ные компьютеры Apple Macintosh, отныне постепенно переходили на более дешевые компью­теры IBM PC. Одной из таких областей было компьютерное "настольное" издательство.

    Сейчас на персональных компьютерах используется много типов видеоадаптеров. Все видеосистемы — растрового типа. Они позволяют устанавливать глубину цвета до 32 битов на пиксел при размерах растра 1600x1200 и больше. Существуют стандарты на видеорежи­мы, регламентированные VESA{Video Electronic Standards Association).

    Параметры отображения обуславливаются не только моделью видеоадаптера, но и объ­емом установленной видеопамяти. Видеопамять персонального компьютера {VRAM— Video RAM) сохраняет растровое изображение, которое демонстрируется на экране монитора. Изображение на мониторе полностью соответствует текущему содержимому видеопамяти. Видеопамять постоянно сканируется с частотой кадров монитора. Запись новых данных в видеопамять мгновенно изменяет изображение на мониторе. Необходимый объем видеопа­мяти рассчитывается как площадь растра экрана в пикселах, умноженная на количество би­тов (или байтов) на пиксел. Например, для 24-битного видеорежима 1024x768 нужно ви­деопамяти: 24x1024x768 = 18.874.368 битов = 2.25 Мбайт.

    В видеоадаптерах первых образцов количество видеопамяти исчислялось килобайтами, например, адаптер CGA имел 16 Кбайт. В современных видеоадаптерах счет идет на мегабайты. Обычно объем видеопамяти кратен степени двойки — 1, 2, 4, 8 Мбайт (в настоя­щее время — от 32 Мбайт и больше). Наблюдается тенденция увеличения объемов видеопа­мяти. Основным фактором здесь уже не является глубина цвета. Видеопамять сейчас исполь­зуется не только как кадровый буфер — она может сохранять текстуры, Z-буфер и т. п.

    Адреса, по которым процессор обращается к видеопамяти, находятся в общем адресном пространстве. Например, для многих видеорежимов VGA адрес первого байта видеопамяти равняется А0000. Для некоторых видеорежимов старых образцов используется другой ад­рес, например, В8000 для CGA 320x200. Современные видеоадаптеры обычно поддержи­вают видеорежимы, которые использовались ранее. Это делается для обеспечения возмож­ности функционирование старых программ. Каждый видеорежим имеет собственный номер (код) согласно со стандартом VESA.

    Кроме физической организации памяти компьютера — в виде одномерного вектора бай­тов в общем адресном пространстве, необходимо учитывать логическую организацию







    Рис.12.1. Один байт на пиксел для VGA 320x200

    ви­деопамяти. Следует отметить, что названия "физическая" и "логическая" организация могут означать совсем разные вещи для разных уровней рассмотрения. Например, если говорить о физической организации памяти, то она в микросхемах выглядит совсем не как одномерный вектор байтов, а как матрица битов. Логическая организация видеопамяти зависит от видеорежима. В качестве примера на рис. 1.52 приведена логическая организация для видео­режима VGA256 цветов 320x200 (его код 13h).


    Намного сложнее логическая организация видеопамяти для видеорежима
    Рис. 12.2. Четыре битовых плоскости для видеорежима 16 цветов 40x480
    VGA16 цве­тов 640x480 (код 12h), которая показана на рис. 12.2.

    Каждая битовая плоскость имеет 80 байтов в одном строке. Плоскости имеют одинаковый адрес в памяти, для доступа к отдельной плоскости необходимо уста­навливать индекс плоскости в соответствующем регистре видеоадаптера. Подобный способ организации видеопамяти используется во многих других видеорежимах, он позволяет, на­пример, быстро копировать массивы пикселов.

    В этом видеорежиме используются четыре массива байтов памяти. Каждый массив на­зван битовой плоскостью, для любого пиксела используются одинаковые биты данных раз­ных плоскостей. Для хранения нескольких кадров изображения в некоторых видеорежимах предусматри­ваются отдельные страницы видеопамяти с одинаковой логической организацией. Тогда можно изменять стартовый адрес видеопамяти — это приводит к сдвигу изображения на экране. Во всех графических видеорежимах стартовый адрес видеопамяти соответствует левому верхнему пикселу на экране. Поэтому координатная система с центром координат (0, 0) в левом верхнем углу растра часто используется в качестве основной (или устанавли­вается по умолчанию) во многих графических интерфейсах программирования, например, в GDI API Windows.

    Обмен данными по системной шине для видеосистемы обеспечивают процессор, видео­адаптер и контроллер локальной шины. До недавнего времени для подключения видеоадапте­ров использовалась локальная шина PCI{Peripheral Component Interconnect local bus). Шина PCI предназначена не только для графики, она является стандартом присоединения разнооб­разнейших устройств, например, модемов, сетевых контроллеров, контроллеров интерфейсов. Эта шина — 32-битная, работает на частоте 33 Мгц, скорость обмена до 132 Мбайт/с.

    В настоящее время видеоадаптеры подключаются через локальную шину AGP {Accelerated Graphics Port). Разрядность — 64 бит. На частоте 66 Мгц обеспечивала ско­рость обмена 528 Мбайт/с. Сейчас работает и на более высоких скоростях. Шина AGP была разработана для повышения скорости обмена данными между видеоадаптером и оператив­ной памятью по сравнению с возможностями шины PCI. Это позволяет достичь большей частоты кадров при работе ЗD-акселераторов. Наличие AGP-порта также приводит к росту быстродействия компьютера в целом благодаря уменьшению нагрузки на шину PCI, что да­ет возможность более эффективно использовать последнюю для работы с другими внешни­ми устройствами.

    Современные видеоадаптеры представляют собой сложные графические устройства. На плате видеоадаптера (сейчас его часто называют видеокартой) располагается мощный спе­циализированный графический процессор (GPUGraphicProcessorUnit), который по сложности приближается к центральному процессору. Кроме визуализации кадрового бу­фера графический процессор видеоадаптера выполняет как относительно простые растро­вые операции (копирование массивов пикселов, манипуляции с цветами пикселов), так и более сложные. Там, где раньше использовался исключительно центральный процессор, те­перь все чаще применяется графический процессор видеоадаптера, например, для выполне­ния операций графического вывода линий, полигонов. Первые графические процессоры ви­деоадаптеров выполняли преимущественно операции рисования плоских элементов. Со­временные графические процессоры выполняют уже много базовых операций ЗD-графики, например, поддержку Z-буфера, наложение текстур и т. п. Видеоадаптер выполняет эти операции аппаратно, что позволяет намного ускорить их в сравнении с программной реали­зацией данных операций центральным процессором. Так появился термин графические ак­селераторы. Быстродействие таких видеоадаптеров часто измеряется количеством графи­ческих элементов, которые рисуются за одну секунду. Современные графические акселера­торы способны рисовать миллионы треугольников за секунду. Этим "интеллектуальность" видеоадаптеров не ограничивается. Недавно появились модели, которые, кроме относи­тельно простых неизменных базовых операций, способны сами выполнять небольшие про­граммы, которые могут составлять пользователи. Эти программы называются "шейдерами" (shaders). Такие возможности графических акселераторов сейчас активно используются ра­зработчиками компьютерных игр.

    На рис.12.3 представим общую структуру современного видеоадаптера.



    Рис. 12.3. Общая структура видеоадаптера

    Номенклатура видеоадаптеров для персональных компьютеров широка. Несколько при­меров: видеоадаптеры Matrox (качественная двумерная графика), ATI Radeon, NVidia (про­фессиональные и игровые ЗD-акселераторы).

    Использование программистами графических возможностей видеосистемы может осу­ществляться по-разному. Во-первых, простейшие операции, такие, как определение графи­ческого видеорежима, вывод пиксела на экран и некоторые другие, поддерживаются BIOS. Во-вторых, можно использовать функции операционной системы. Разные операционные системы могут предоставлять разные возможности. Например, в MS-DOS графических функций почти не было, однако программисту был разрешен свободный доступ ко всем ап­паратным ресурсам компьютера. В быстродействующих графических программах часто ис­пользовался непосредственный доступ к видеопамяти. В отличие от этого, операционная система Windows запрещает прикладным программам непосредственный доступ к аппарат­ным ресурсам, однако можно применять несколько сотен графических функций операцион­ной системы — интерфейс GDI API. В-третьих, можно использовать специализированные графические интерфейсы, которые поддерживают аппаратные возможности современных графических процессоров.

    Один из известнейших графических интерфейсов — OpenGL. Этот интерфейс в виде библиотеки графических функций был разработан Silicon Graphics и поддерживается мно­гими операционными системами (в том числе Windows) и производителями графических акселераторов. Интерфейс OpenGL для графического отображения использует взаимодей­ствие типа клиент-сервер.

    Другим известным графическим интерфейсом является DirectX. Этот интерфейс разра­ботан Microsoft и предназначен только для ОС Windows.

    1   ...   38   39   40   41   42   43   44   45   46


    написать администратору сайта