Автор: Пользователь скрыл имя, 18 Января 2011 в 06:19, реферат
Видеока́рта (известна также как видеоада́птер графи́ческая пла́та, графи́ческая ка́рта, графи́ческий ускори́тель) (англ. videocard) — устройство, преобразующее изображение, находящееся в памяти компьютера, в видеосигнал для монитора.
1 Введение
2 История развития
3 Устройство
3 Характеристики
4 Поколения 3D-ускорителей
5 Интерфейс
6 Шейдер
7 Заключение
8 Литература
- частоты ядра и памяти — измеряются в мегагерцах, чем больше, тем быстрее видеокарта будет обрабатывать информацию.
- текстурная и пиксельная скорость заполнения, измеряется в млн. пикселов в секунду, показывает количество выводимой информации в единицу времени.
- выводы карты — видеоадаптеры MDA, Hercules, CGA и EGA оснащались 9-контактным разьемом типа D-Sub. Изредка также присутствовал коаксиальный разьем Composite Video, позволяющий вывести черно-белое изображение на телевизионный приемник или монитор, оснащенный НЧ-видеовходом. Видеоадаптеры VGA и более поздние обычно имели всего один разъём VGA (15-контактный D-Sub). Изредка ранние версии VGA-адаптеров имели также разьем предыдущего поколения (9-контактный) для совместимости со старыми мониторами. Выбор рабочего выхода задавался переключателями на плате видеоадаптера. В настоящее время платы оснащают разъёмами DVI или HDMI, либо Display Port в количестве от одного до трех. Некоторые видеокарты ATi последнего поколения оснащаются шестью видеовыходами. Порты DVI и HDMI являются эволюционными стадиями развития стандарта передачи видеосигнала, поэтому для соединения устройств с этими типами портов возможно использование переходников. Порт DVI бывает двух разновидностей. DVI-I также включает аналоговые сигналы, позволяющие подключить монитор через переходник на разьем D-SUB. DVI-D не позволяет этого сделать. Dispay Port позволяет подключать до четырёх устройств, в том числе акустические системы, USB-концентраторы и иные устройства ввода-вывода. На видеокарте также возможно размещение композитных и S-Video видеовыходов и видеовходов (обозначаются, как ViVo)
9-контактный
разъём TV-Out, DVI и D-Sub.
Поколения 3D-ускорителей
Самые первые ускорители использовали Glide — API для трёхмерной графики, разработанный 3dfx Interactive для видеокарт на основе собственных графических процессоров Voodoo Graphics.
Затем
поколения ускорителей в
DirectX 7 — карта не поддерживает шейдеры, все картинки рисуются наложением текстур;
DirectX 8 — поддержка пиксельных шейдеров версий 1.0, 1.1 и 1.2, в DX 8.1 ещё и версию 1.4, поддержка вершинных шейдеров версии 1.0;
DirectX 9 — поддержка пиксельных шейдеров версий 2.0, 2.0a и 2.0b, 3.0;
DirectX 10 — поддержка унифицированных шейдеров версии 4.0;
DirectX 10.1 — поддержка унифицированных шейдеров версии 4.1;
DirectX 11 — поддержка унифицированных шейдеров версии 5.0.
Итак, по какому принципу работает видеокарта при построении кадра трехмерного приложения? В большинстве случаев любой трехмерный объект в компьютерном моделировании представляет собой совокупность множества треугольников — граней, или «полигонов». Виртуальные деревья, автомобили, зомби и автоматы Калашникова — все это лишь грамотно связанные друг с другом грани с натянутыми на них текстурами. Таким образом, при построении изображения центральный процессор загружает в память видеокарты координаты вершин отображаемого объекта, а также текстуры, которыми нужно будет покрыть каркас получившейся трехмерной модели. Далее в дело вступает непосредственно видеоадаптер.
Трехмерная модель — всего лишь множество соединенных
друг с другом граней, закрашенных однородным цветом.
Весь процесс преобразования вершин и текстур в итоговый кадр именуется графическим конвейером. Обратите внимание, что элементы графического чипа работают в потоковом режиме, то есть если какие-то блоки видеокарты простаивают, то она может приступить к обработке следующего кадра, не дожидаясь, пока предыдущий будет выведен на экран.
Первым делом вершины попадают в вершинный процессор, который занимается их трансформацией и освещением (Transforming & Lighting). В данном случае трансформация — это преобразование координат вершин (вращение, перенос и масштабирование объектов), а освещение — это определение цвета каждой вершины с учетом всех источников света конкретной сцены. Затем следует проецирование — преобразование координат искомого 3D мира в двумерную систему координат экрана. С появлением аппаратной поддержки T&L увеличилась скорость отображения игровой графики, а также возросло ее качество.
Следом наступает стадия растеризации — серии операций, которые проводятся непосредственно с пикселями изображения. Этапы: удаление скрытых поверхностей, к примеру, обратных сторон объектов; Z-буферизация (запись значений глубины) — для каждой точки изображения определяется, насколько далеко она отстоит от плоскости экрана; и, разумеется, текстурирование (закраска).
Процесс закраски происходит следующим образом: видеокарта выбирает для каждого пикселя определенные тексели из текстуры. После усреднения цветов нескольких текселей на выходе получается итоговый цвет пикселя, который записывается в буфер кадра (видеопамять). Именно на этой ступени происходит фильтрация текстур, а также проводятся операции сглаживания. Напомним, что процессы текстурирования, фильтрации и сглаживания были подробно разобраны нами в статье «Ближе к идеалу» из мартовского номера «Лучших компьютерных игр» за 2008 год.
Полигональная модель до и после нанесения текстур. |
После
того, как в буфер кадра будет записан
цвет каждого пикселя итогового изображения,
оно отправляется на монитор. Вот, собственно,
и все! Однако это лишь общие принципы
работы графического конвейера. В реальной
жизни алгоритм, как правило, содержит
дополнительные стадии. Нередко результат
работы, полученный на определенном этапе,
может быть возвращен на несколько стадий
назад — подобный прием используется,
к примеру, при прорисовке отражающих
поверхностей. Также на различных этапах
построения изображения в процесс могут
вмешиваться блоки арифметических операций,
ответственные за исполнение шейдеров.
Интерфейс
Первое препятствие к повышению быстродействия видеосистемы — это интерфейс передачи данных, к которому подключён видеоадаптер. Как бы ни был быстр процессор видеоадаптера, большая часть его возможностей останется незадействованной, если не будут обеспечены соответствующие каналы обмена информацией между ним, центральным процессором, оперативной памятью компьютера и дополнительными видеоустройствами. Основным каналом передачи данных является, конечно, интерфейсная шина материнской платы, через которую обеспечивается обмен данными с центральным процессором и оперативной памятью. Самой первой шиной использовавшейся в IBM PC была XT-Bus, она имела разрядность 8 бит данных и 20 бит адреса и работала на частоте 4,77 МГц. Далее появилась шина ISA (Industry Standart Architecture — архитектура промышленного стандарта), соответственно она имела разрядность 16/24 бит и работала на частоте 8 МГц. Пиковая пропускная способность составляла чуть больше 5,5 МиБ/с. Этого более чем хватало для отображения текстовой информации и игр с шестнадцатицветной графикой. Дальнейшим рывком явилось появление шины MCA (Micro Channel Architecture) в новой серии компьютеров PS/2 фирмы IBM. Она уже имела разрядность 32/32 бит и пиковую пропускную способность 40 МиБ/с. Но то обстоятельство, что архитектура MCI являлась закрытой (собственностью IBM), побудило остальных производителей искать иные пути увеличения пропускной способности основного канала доступа к видеоадаптеру. И вот, с появлением процессоров серии 486, было предложено использовать для подключения периферийных устройств локальную шину самого процессора, в результате родилась VLB (VESA Local Bus — локальная шина стандарта VESA). Работая на внешней тактовой частоте процессора, которая составляла от 25 МГц до 50 МГц, и имея разрядность 32 бит, шина VLB обеспечивала пиковую пропускную способность около 130 МиБ/с. Этого уже было более чем достаточно для всех существовавших приложений, помимо этого возможность использования её не только для видеоадаптеров, наличие трёх слотов подключения и обеспечение обратной совместимости с ISA (VLB представляет собой просто ещё один 116 контактный разъём за слотом ISA) гарантировали ей достаточно долгую жизнь и поддержку многими производителями чипсетов для материнских плат, и периферийных устройств, даже несмотря на то, что при частотах 40 МГц и 50 МГц обеспечить работу даже двух устройств подключенных к ней представлялось проблематичным из-за чрезмерно высокой нагрузки на каскады центрального процессора (ведь большинство управляющих цепей шло с VLB на процессор напрямую, безо всякой буферизации). И всё-таки, с учётом того, что не только видеоадаптер стал требовать высокую скорость обмена информацией, и явной невозможности подключения к VLB всех устройств (и необходимостью наличия межплатформенного решения, не ограничивающегося только PC), была разработана шина PCI (Periferal Component Interconnect — объединение внешних компонентов) появившаяся, в первую очередь, на материнских платах для процессоров Pentium. С точки зрения производительности на платформе PC всё осталось по-прежнему — при тактовой частоте шины 33 МГц и разрядности 32/32 бит она обеспечивала пиковую пропускную способность 133 МиБ/с — столько же, сколько и VLB. Однако она была удобнее и в конце-концов вытеснила шину VLB и на материнских платах для процессоров класса 486.
С появлением
процессоров Intel Pentium II, и серьёзной
заявкой PC на принадлежность к рынку
высокопроизводительных рабочих станций,
а также с появлением 3D-игр со сложной
графикой, стало ясно, что пропускной способности
PCI в том виде, в каком она существовала
на платформе PC (обычно частота 33 МГц и
разрядность 32 бит), скоро не хватит на
удовлетворение запросов системы. Поэтому
фирма Intel решила сделать отдельную шину
для графической подсистемы, несколько
модернизировала шину PCI, обеспечила новой
получившейся шине отдельный доступ к
памяти с поддержкой некоторых специфических
запросов видеоадаптеров, и назвала это AGP (Accelerated Graphics Port — ускоренный
графический порт). Разрядность шины AGP
составляет 32 бит, рабочая частота 66 МГц.
Первая версия разьема поддерживала режимы
передачи данных 1x и 2x, вторая — 4x, третья —
8x. В этих режимах за один такт передаются
соответственно одно, два, четыре или восемь
32-разрядных слов. Версии AGP не всегда были
совместимы между собой в связи с использованием
различных напряжений питания в разных
версиях. Для предотвращения повреждения
оборудования использовался ключ в разьеме.
Пиковая пропускная способность в режиме
1x — 266 МиБ/с. Выпуск видеоадаптеров на
базе шинах PCI и AGP на настоящий момент
ничтожно мал, так как шина AGP перестала
удовлетворять современным требованиям
для мощности новых ПК, и, кроме того, не
может обеспечить необходимую мощность
питания. Для решения этих проблем создано
расширение шины PCI — E — PCI
Express версий
1.0, 1.1 и 2.0, это последовательный, в отличие
от AGP, интерфейс, его пропускная способность
может достигать нескольких десятков
ГБ/с. На данный момент произошёл практически
полный отказ от шины AGP в пользу PCI Express.
Однако стоит отметить, что некоторые
производители до сих предлагают достаточно
современные по своей конструкции видеоплаты
с интерфейсами PCI и AGP — во многих случаях
это достаточно простой путь резко повысить
производительность морально устаревшего
ПК в некоторых графических задачах.
Шейдер
Итак, что же скрывается за термином «шейдер»? Говоря простым языком, это такая программа, которая загружается в графический чип и настраивает его, внося определенные изменения в работу конвейера. Видеокарты, лишенные поддержки шейдеров, могли выполнять лишь заранее запрограммированные действия, алгоритмы которых фиксировались на аппаратном уровне. Шейдеры же позволяют обойти эти ограничения: из стандартных инструкций теперь составляются достаточно сложные эффекты.