Видеокарта

Автор: Пользователь скрыл имя, 18 Января 2011 в 06:19, реферат

Описание работы

Видеока́рта (известна также как видеоада́птер графи́ческая пла́та, графи́ческая ка́рта, графи́ческий ускори́тель) (англ. videocard) — устройство, преобразующее изображение, находящееся в памяти компьютера, в видеосигнал для монитора.

Содержание

1 Введение
2 История развития
3 Устройство
3 Характеристики
4 Поколения 3D-ускорителей
5 Интерфейс
6 Шейдер
7 Заключение
8 Литература

Работа содержит 1 файл

Реферат.doc

— 482.00 Кб (Скачать)

Первой  видеокартой с поддержкой шейдеров стала GeForce 3. Вместе с ней компания NVIDIA представила стандарт Shader Model 1.0 (SM 1.0), описывающий структуру шейдерных команд. Microsoft поддержала инициативу NVIDIA и обеспечила поддержку SM 1.0 в API DirectX 8. Правда, изначально язык программирования шейдеров был очень сложен и мало чем отличался от низкоуровневого Assembler. Писать программы на этом языке — настоящая пытка, так что SM 1.0 разработчики игр использовали очень осторожно. К тому же максимальная длина шейдеров первой версии была очень мала, равно как и набор доступных команд. Однако при всех неудобствах шейдеры стали действительно революционным явлением.

Вот он, прорыв в современной 3D-графике. Лет  пять назад

о таком качестве картинки даже не мечтали.  

    В Shader Model 1.0 шейдеры были разделены на два типа: вершинные (или вертексные) и пиксельные (или фрагментарные). Первые отвечают за трансформацию и освещение вершин и могут выступать в качестве замены блоку Transforming&Lightning. Но если T&L в состоянии выполнять лишь фиксированный набор команд, то возможности шейдеров куда богаче и разнообразнее. Итоговые результаты здесь во многом зависят от фантазии программистов, а не только от архитектуры видеоадаптера. Использование вершинных шейдеров помогает существенно снизить нагрузку на центральный процессор, переложив ее на плечи видеокарты.

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

    Выход следующей версии шейдеров — Shader Model 2.0 — существенно облегчил жизнь программистам. Во-первых, на свет наконец появился высокоуровневый язык программирования шейдеров — HLSL. По структуре команд и синтаксису он очень похож на Си. С помощью компилятора команды автоматически преобразовываются в низкоуровневый код, доступный для восприятия видеоадаптером. Итоговый результат варьируется в зависимости от того, какая видеокарта установлена в системе. Также в SM 2.0 увеличилась максимальная длина программ, появилась возможность использования условных переходов и циклов для вершинных шейдеров, а их пиксельные собратья научились оперировать числами с плавающей запятой.

С выходом DirectX 9.0c появилась и Shader Model 3.0, ставшая  эволюцией предыдущей модели. У программистов  теперь практически не было ограничений  на длину и сложность шейдеров. SM 3.0 существует вот уже несколько лет, однако отказываться от нее пока что не планируется — ее поддерживают даже самые технологичные из современных игр.

А вот Shader Model 4.0, появившаяся вместе с DirectX 10,помимо очередных количественных улучшений, принесла с собой еще и новый тип шейдеров. Отвечают они за обработку целых массивов вершин и зовутся геометрическими. Важных свойств у этих шейдеров два. Во-первых, с их помощью геометрические объекты создаются непосредственно в графическом конвейере, без участия центрального процессора. Например, из одной-единственной вершины можно сделать куб или пирамиду. Другое важное свойство — возможность использования потокового вывода. Благодаря этому уже обработанные геометрические массивы могут отправляться в буфер вершин и повторно использоваться в графическом конвейере. Все это снижает нагрузку на процессор и увеличивает число возможных эффектов. Однако грамотно использовать возможности Shader Model 4.0 программисты, похоже, еще не научились.

                                                                                

Depth of field, вообще-то, ухудшает                 Огонь, взрывы и искажения пространства —

картинку, зато увеличивает реализм.               результат работы шейдеров.  

    Сегодня практически в любой игре мы наблюдаем эффекты попиксельного освещения, реализованные посредством пиксельных шейдеров. С помощью этих программ удается имитировать неровности на абсолютно плоских поверхностях. При этом неровности будут корректно менять вид при изменении свойств источников света. Переоценить значимость попиксельного освещения трудно, ведь без этой технологии даже для отображения реалистичного асфальта требовались бы колоссальные вычислительные ресурсы. Попиксельное освещение объектов реализуется посредством алгоритмов bump mapping, normal mapping и parallax mapping.

    Bump mapping — это самая простая технология симуляции неровностей. Работает она по следующему принципу: в память графического ускорителя помимо вершин плоскости и видимой текстуры загружается также карта высот. По сути, это черно-белая текстура, в которой интенсивность цвета текселя показывает, насколько должна быть изменена высота этой точки относительно плоскости объекта, на который накладывается карта высот. Сама карта высот не отображается на экране, но информация, содержащаяся в ней, используется пиксельными шейдерами для определения конечной яркости той или иной точки дисплея. При этом учитывается угол падения лучей, так что bump mapping прекрасно работает с динамическими источниками освещения. Как правило, этот метод используется для создания «псевдо-шершавых» поверхностей.

    

        Дорожное покрытие на самом деле плоское, а иллюзия

        неровностей создается с помощью normal mapping.

 

   Технология normal mapping чуть более совершенна. Она предусматривает применение карт нормалей — цветных текстур, в которых каждая из трех составляющих цвета (красная, синяя и зеленая) показывает пространственные координаты нормалей (перпендикуляров к плоскости). Оперируя этими данными, можно сымитировать не только асфальт или кожу, но и гораздо более сложные вещи. Взять, к примеру, Doom 3. По контуру монстров видно, что им катастрофически не хватает полигонов. Однако сами по себе они выглядят более чем реалистично. Так вот это и есть работа normal mapping. Все мельчайшие детали внешности врагов в игре имитируются пиксельными шейдерами, а в реальной геометрической модели они отсутствуют.

Parallax mapping — это эволюционное развитие предыдущей технологии. В нем также используются карты нормалей, однако этот метод вносит отличия в сам процесс нанесения текстуры: ее координаты изменяются в зависимости от точки зрения наблюдателя. Алгоритмы эти достаточно сложны, но и результат себя оправдывает. Например, в F.E.A.R. дырки от пуль в стенах реализованы с помощью parallax mapping. Каменная кладка стен из Oblivion также создана с применением этой технологии.

Очень активно пиксельные шейдеры используются для реализации эффектов постобработки, коих великое множество. Они применяются в самом конце графического конвейера, когда кадр уже фактически готов к выводу на экран. В качестве примера постобработки приведем размытие в движении (motion blur), которое используется в каждом втором боевике или симуляторе. Другой пример — изменение глубины резкости (depth of field), при котором объекты, находящиеся вне фокуса зрения, намеренно размываются. Подобные явления мы часто наблюдаем при прицеливании и в роликах на движке игры. Ну и, конечно же, различные изменения цветовой гаммы с целью стилизации, скажем, под выцветшую картинку тоже относятся к эффектам постобработки.

 
В новейшей графической демонстрации от NVIDIA активно    применяются геометрические шейдеры.
 

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

Благодаря displacement mapping водная гладь оживает.  

Вершинные шейдеры вносят не менее серьезный  вклад в повышение реализма трехмерной сцены. Однако эти улучшения, как  правило, связаны с различной  анимацией, будь то продвинутая лицевая мимика персонажей, развевающаяся на ветру ткань или труп злодея, падающий на землю в соответствии с особенностями человеческой анатомии. Впрочем, одной лишь анимацией все не ограничивается. К примеру, есть один интересный эффект, завязанный на вершинных шейдерах. Называется он toon shading. С его помощью имитируется «мультяшность», то есть все объекты становятся плоскими и как бы рисованными. Нечто подобное можно наблюдать в игре Bad Day L.A.

Из разнообразных  инструментов, используемых программистами при работе с вершинными шейдерами, мы выделим displacement mapping. Сегодня эта технология часто используется при создании волн и имитации ткани. Метод очень похож на bump mapping — в память также подгружается карта высот, — однако в данном случае происходит реальное изменение геометрии. Плоскость, состоящая из пары треугольников, разбивается видеоадаптером на сотни полигонов, вершины которых меняют пространственные координаты в соответствие с картой высот. Сложность сцены увеличивается, однако нагрузка на центральный процессор и шину памяти при использовании displacement mapping остается минимальной.

Таковы  основные примеры использования  шейдеров. Теперь настал черед разобрать  по полочкам другую не менее интересную технологию.

Человеческий  глаз — потрясающее устройство, способное различать широкую гамму оттенков. Даже самые совершенные мониторы современности не в состоянии передать то обилие цветов, что воспринимает наше зрение в реальном мире. Приведем пару фактов. Максимальная яркость стандартных мониторов находится у отметки в 300 кд/м2, а минимальная составляет около 1-2 кд/м2. Исходя из этой цифры, мы можем высчитать, что динамический диапазон этих устройств, то есть отношение самой большой интенсивности свечения к самой малой, не превышает значения 300:1. Противопоставим этому человеческий глаз, способный различать цвета в диапазоне контрастности 800:1. Правда, здесь стоит сделать одну оговорку: то, какие именно значения будут попадать в эти рамки, зависит от окружения. В солнечный день глаз адаптируется под цвета с высокой яркостью, а в кромешной тьме будет лучше различать темные оттенки.

The Elder Scrolls IV: Oblivion ,skf jlyjq из первых игрб

 где эффекты HDR предстали во всей красе.  

     Для отображения картинки мониторы используют 24-битную RGB-палитру. Любой оттенок получается в результате смешения красного, зеленого и синего цветов, интенсивность каждого из которых задается 8-битным числом. Получающийся итоговый цвет обладает целочисленным значением яркости, находящемся в диапазоне от 0 до 255 условных единиц. Выходит следующая ситуация: в реальности мы видим картину с 800 градациями яркости, а монитор в состоянии отобразить лишь 256. Видеокарта по умолчанию также использует RGB-палитру, и при расчетах ей приходится оперировать все теми же 256 значениями яркости. Отсюда вывод: правильно рассчитать сцену, в которой одновременно находятся очень яркие и очень темные объекты, не представляется возможным. В любом случае будут наблюдаться серьезные искажения в цветопередаче.

Изменить  мониторы мы пока не в состоянии, но зато можем отказаться от классической RGB-модели при расчете цветов. Вместо этого яркость задается значениями, линейно пропорциональными реальным величинам. Именно эта идея легла в основу технологии High Dynamic Range Rendering(HDRR), позволяющей строить сцену с использованием расширенного динамического диапазона цветов — HDR. С ее помощью в недрах видеоадаптера создается кадр со значениями цветов, теоретически соответствующих тем, что мы воспринимаем своим зрением. Однако мониторы по-прежнему работают в 24-битном режиме RGB. По этой причине видеокарта вынуждена преобразовывать HDR-изображение в привычный для дисплеев вид. Процесс этот именуется tone mapping (тональная компрессия).

Без HDR это была бы совсем другая картина.  

   На выходе мы получаем кадр с низким цветовым диапазоном. Однако выглядеть он будет намного реалистичнее, чем его аналог, рассчитанный классическим способом. Использование HDR позволяет обойти при расчетах многие искусственные ограничения. Кроме того, некоторые алгоритмы тональной компрессии позволяют имитировать адаптацию человеческого зрения при резкой смене окружения. Например, в ряде игр при перемещении из темного помещения на яркий солнечный свет появляется эффект слепоты: все объекты кажутся очень яркими, но спустя несколько секунд нормальная цветовая картина восстанавливается.

В современных  играх при использовании HDR каждая цветовая составляющая кодируется 16-битным (FP16) или 32-битным (FP32) числом в формате  с плавающей запятой. FP32 пока практически  не используется, так как возможностей 16-битной кодировки хватает с лихвой. Переход к 32 битам на канал приводит к существенному падению производительности, но ощутимого улучшения картинки не происходит.

Информация о работе Видеокарта