Главная » Статьи » Мои статьи

Путешествие в мир видеокарт

Путешествие в мир видеокарт

Что представляет наибольшую трудность для человека, готовящегося к покупке компьютера? Ответ очевиден - выбор видеокарты.

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

Видеокарта v это не очень просто.

Задача видеокарты (или видеоадаптера) v обеспечить связь компьютера с монитором. Для этого видеокарта (к внешнему разъему которой подключается монитор) должна сформировать сигнал, отображающий на экране определенную область памяти, в которой хранятся данные об изображении, а также сигналы синхронизации для горизонтальной (строчной) и вертикальной (кадровой) разверток. Если первые простейшие видеоадаптеры предназначались для компьютеров, использовавших в качестве монитора обычный телевизор (вспомним, например, широко распространенный в прошлом компьютер "Синклер"), то современные видеокарты сами являются мощными вычислительными устройствами, превосходящими по своим возможностям даже компьютеры.

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

Оперативная память служит для хранения информации о выводимом на экран изображении. Контроллер (специализированный процессор) отвечает за вывод изображения из видеопамяти, регенерацию ее содержимого, формирование управляющих сигналов для монитора и взаимодействие с центральным процессором. Работа современных видеоконтроллеров основана на создании и объединении нескольких потоков графической информации v формируемого центральным процессором основного изображения, изображения курсора мыши и отдельного изображения в прямоугольном окне. Видеоконтроллер с аппаратной поддержкой некоторых функций называется акселератором, или ускорителем, и служит для разгрузки центрального процессора от части типовых операций. Потребность в подобном аппарате (ускорителе двумерной графики) впервые возникла с появлением многооконной операционной системы Windows. Поскольку современные мониторы используют аналоговый видеосигнал, для преобразования хранящихся в видеопамяти цифровых данных в подаваемые на монитор уровни интенсивности цвета служит цифроаналоговый преобразователь (ЦАП или RAMDAC). ПЗУ v постоянное запоминающее устройство, в которое записана информация, используемая только центральным процессором и только для первоначального запуска видеоадаптера или работы в режиме MS DOS.

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

Количество воспроизводимых цветов (глубина цвета) зависит от того, какое количество двоичных разрядов выделяется для представления каждой точки изображения. Первые более или менее серьезные видеоадаптеры (для их обозначения использовалась аббревиатура EGA) отводили на цвет 4 бита и позволяли иметь одновременно 24=16 различных цветов. В появившемся позднее адаптере VGA количество бит было доведено до 8 v доступными стали 256 цветов (подобный режим используется и ныне для представления простейших картинок). В режиме High Color 16 бит позволяют получить уже 65536 цветов, а в режиме True Color (более 16 млн цветов) используется 24 бита. При этом человеческий глаз различает примерно в 10 раз меньше цветов, чем представлено в режиме True Color.

Однако при 24-разрядном представлении цвета каждая точка описывается тремя байтами, а арифметические операции с цифрой "три" менее производительны, чем со степенью "двойки". Поэтому, при наличии достаточного объема видеопамяти в последнее время используется 32-разрядное представление цвета, в котором младшие три байта описывают цвет точки, а старший байт либо несет информацию о каких-либо дополнительных параметрах, либо не используется.

Под разрешающей способностью принято понимать количество выводимых на экран отдельных точек изображения v пикселов по горизонтали и вертикали, например, в режиме VGA v 640x480. Современные видеоадаптеры обеспечивают разрешающую способность 600х800, 1024х768, 1280х1024 и более.

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

 

Разрешение VGA (8 бит) High Color (16 бит) True Color (24 бита)
800х600 1 Mb 1 Mb 2 Mb
1024х768 1 Mb 2 Mb 4 Mb
1280х1024 2 Mb 4 Mb 4 Mb
1600х1200 2 Mb 4 Mb 8 Mb

Нетрудно видеть, что для работы с текстом и с обычными двумерными изображениями вполне достаточно иметь видеокарту с объемом памяти 4Mb (при наличии монитора 15") или 8Mb (для монитора 17").

Еще один важнейший для пользователя параметр v частота смены кадров, называемая также частотой вертикальной синхронизации (развертки). Это значение, измеряемое в герцах (Гц), показывает, как часто обновляется изображение на экране монитора. Так, частота 75Гц означает, что изображение обновляется 75 раз в секунду.

Значение частоты вертикальной развертки, определяется производительностью цифро-аналогового преобразователя. В настоящее время частота преобразования RAMDAC не должна быть меньше 135МГц, хотя лучше иметь ее по крайней мере 170МГц. Для профессиональной работы с графикой необходимо выбирать видеоадаптер с RAMDAC, работающим на частоте не менее 220МГц. Такая частота вполне достаточна, чтобы обеспечить отображение режимов 1280х1024 при частоте смены кадров 85Гц и 1600х1200 при 75Гц. Однако для поддержания режима 1600х1200 при 85Гц требуется уже RAMDAC 250МГц.

Заметим, что если частота обновления экрана слишком низкая, то пользователю будет заметно мерцание изображения, что весьма утомительно и, кроме того, может испортить зрение. Частота обновления экрана 75Гц уже достаточна, чтобы глаз человека не заметил мерцание, но по европейским стандартам во всех разрешениях должна поддерживаться частота не менее 85Гц. Поэтому при выборе видеокарты целесообразно сосредоточить внимание не на скорости работы RAMDAC, а на значениях частоты вертикальной развертки.

Работа видеокарты связана с непрерывной передачей значительных объемов цифровых данных от центрального процессора в видеоконтроллер, затем в видеопамять и далее v в RAMDAC.

Скорость обмена данными между центральным процессором и видеоконтроллером определяется частотой шины, через которую передаются данные. До недавнего времени для подключения видеоадаптеров использовалась шина PCI. Однако на определенном этапе

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

Самое существенное влияние на производительность любой видеокарты оказывает обмен данными с видеопамятью, которая одновременно обслуживает два наиболее загруженных работой устройства видеоадаптера v контроллер и RAMDAC. Чтобы повысить эффективность обмена с видеопамятью, применяют различные технические решения. Например, увеличивают разрядность и частоту внутренней шины данных, по которой видеоконтроллер или RAMDAC обмениваются информацией с видеопамятью (для этого применяются 32-разрядная, 64-разрядная, 128-разрядная, а теперь уже и 256-разрядная шины).

Другой путь v совершенствование используемой в видеокартах оперативной памяти.

В простейших видеоадаптерах до сих пор широко применяется память EDO DRAM, аналогичная той, которая до недавнего времени использовалась в качестве оперативной памяти системных плат. Определенного повышения быстродействия удалось добиться за счет перехода к более совершенной синхронной памяти SDRAM и, в особенности, к ее специальной графической модификации SGRAM. Еще более повысить быстродействие памяти позволяет ее организация по двухпортовому принципу, когда контроллер производит запись в видеопамять через один порт, а RAMDAC осуществляет чтение данных, используя второй независимый порт. Такой тип памяти носит название VRAM (при однотипных портах) или WRAM (когда порты различны). Последний вид памяти, применяемый, например, компанией Matrox, имеет лучшую организацию, благодаря чему работает быстрее. К недостаткам видеопамяти VRAM и WRAM следует отнести их высокую стоимость. Среди типов оперативной видеопамяти можно отметить также MDRAM, организованный в виде множества отдельных бланков объемом по 32Kb каждый, способных работать независимо друг от друга.

Экскурсия в трехмерные миры.

Если появление трехмерной (или 3D) графики явилось следствием естественного желания разработчиков разместить на экране монитора максимальный объем информации, то бурное развитие техники и технологии в этой области связано с компьютерными играми. Именно игры требуют наращивания вычислительных ресурсов компьютеров для создания виртуальной копии окружающего мира, все более и более напоминающей реальность.

Построение компьютерных трехмерных изображений, называемое в литературе конвейером, отчасти напоминает процесс рисования на бумаге объемного изображения домика. Рисуя домик, мы вначале определяем положение его узловых точек, после чего, соединяя их прямыми линиями, изображаем каркас, состоящий из элементарных плоских фигур v треугольников и четырехугольников. Затем из рисунка убираем те грани каркаса, которые не видны наблюдателю. Только после этого можно дорисовать окна и двери, раскрасить стены и крышу, добавить дым над трубой, а при некоторых художественных навыках v оживить рисунок игрой света и тени. Очевидно, что при изменении положения наблюдателя весь процесс должен повториться вновь.

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

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

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

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

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

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

Очевидно, что высококачественное моделирование объемных сцен возможно только при достаточно большой разрядности Z-буфера.

В противном случае будет трудно различить близко расположенные по глубине точки изображения, что может привести к их наложению друг на друга. Поэтому в приличных видеокартах Z-буфер должен иметь от 16 до 32 разрядов. Нетрудно подсчитать, что для хранения информации о глубине всех точек изображения также необходим значительный объем оперативной памяти.

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

Для устранения резких переходов между разными текстурами, а также эффекта мерцания пикселов при движении картинки применяется операция сглаживания (фильтрации). Не вдаваясь в достаточно сложные подробности, отметим, что при так называемой билинейной фильтрации для определения цвета пиксела производится взвешенное усреднение по четырем смежным пикселам вдоль каждой из координат X и Y. Дальнейшее улучшение качества изображения достигается при трилинейной фильтрации, производящей дополнительное усреднение результатов билинейной фильтрации. Еще более эффективным методом является анизотропная фильтрация, при которой усреднение производится сразу по двум координатам. Однако этот вид фильтрации требует и существенно больших вычислительных затрат.

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

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

Кроме перечисленных приемов обработки существуют дополнительные способы повышения достоверности формируемых изображений. Это, например, процедура затуманивания (fogging), позволяющая получить эффекты тумана, облака пыли, скрывающей удаленные объекты дымки. Можно отметить также способ, получивший название alpha-blending и предназначенный для создания эффекта прозрачности объектов. Подобный результат получается за счет одновременного учета при формировании пиксела цветов объектов, находящихся на переднем и заднем планах.

А теперь попробуем вместе со всем этим взлететь.

Нетрудно предположить, что управление столь многообразными возможностями является далеко не тривиальной задачей и должно осуществляться с использованием специализированного программного обеспечения. Таким программным обеспечением, способным управлять 3D-конвейером на программном уровне, являются так называемые 3D API (API v Application Program Interface v интерфейс прикладных программ).

В настоящее время при разработке игровых программ обычно используются три основных API v Glide, Microsoft Direct 3D и OpenGL. Если Glide разработан и лицензирован фирмой 3DFX и поэтому используется только с оборудованием на микросхемах этой фирмы, то OpenGL поддерживается большинством, а Microsoft Direct 3D v практически всеми видеокартами.

Однако даже самое эффективное программное обеспечение не позволяло центральному процессору в одиночку справиться с огромным объемом вычислений, требуемых при формировании трехмерных изображений, и с гигантскими массивами передаваемых данных. Выход из создавшегося положения был очевиден v появился аппаратный 3D-ускоритель. Первоначально подобные ускорители существовали как самостоятельные устройства, которые устанавливались между видеокартой и монитором. В настоящее же время 3D-ускоритель, наряду с ускорителем двумерной графики, входит в состав подавляющего большинства видеокарт. При этом существующие API позволяют в значительной мере использовать преимущества аппаратного ускорения, хотя некоторые разработчики компьютерных игр с целью достижения предельных параметров ускорителя создают собственные интерфейсы (игровые двигатели), рассчитанные на функционирование в отдельных конкретных играх.

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

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

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

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

Нетрудно видеть, что для эффективной работы 3D-ускорителя требуются огромные объемы оперативной памяти. Поэтому современные непрофессиональные видеокарты, ориентированные на трехмерную графику, имеют видеопамять объемом от 16Mb до 32Mb. В самой ближайшей перспективе эта цифра возрастет до 64Mb. Кроме того, ускоренный графический порт AGP позволяет видеокарте, минуя

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

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

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

Впервые подобные геометрические сопроцессоры были установлены на профессиональных видеоадаптерах, получивших распространение исключительно в специализированных графических станциях, прежде всего из-за очень высоких цен. Следующим шагом развития 3D-ускорителей станет уже заявленное появление геометрического сопроцессора в видеокартах широкого применения на кристаллах Savage 2000 фирмы S3 и GeForce 256 фирмы nVIDIA. В указанные кристаллы Savage 2000 и GeForce 256 встроена аппаратная поддержка по преобразованию координат, установке освещения и сортировке полигонов, что позволяет повысить реалистичность и скорость вывода формируемых изображений.

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

В магазин за видеокартой.

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

Категория: Мои статьи | Добавил: mrsyryn (16.03.2016)
Просмотров: 179 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar