Стандартная видеокарта VGA персонального компьютера по сути представляет собой набор жесткой логики и видеопамяти. Все, что записывается центральным процессором в видеопамять, по строго определенным алгоритмам преобразуется в аналоговый видеосигнал, который подается на монитор. То есть, центральный процессор должен сам рассчитать параметры всех точек, которые должны быть в данный момент отражены на экране, и загрузить все данные в видеопамять. Любое изменение на экране, даже если это след мыши, это результат работы центрального процессора. Соответственно, чем больше используемое разрешение и количество цветов, тем больше процессор должен затрачивать времени на расчет всех точек формируемого растра.
Так как ПК с течением времени стал неразрывно связываться с графическим интерфейсом Windows и различными двух- и трехмерными играми, то разработчики “железа” предприняли ряд шагов по совершенствованию стандартной видеокарты, чтобы избавить ЦП от лишней работы по прорисовке элементарных изображений. Подобные устройства получили название ускорителей, или акселераторов. Вначале использовались аппаратные ускорители на отдельных платах. По мере совершенствования полупроводниковой технологии удалось разместить все элементы аппаратных ускорителей на самой плате видеокарты. Ныне чип на видеокарте самостоятельно рассчитывает новые параметры точек на экране по командам ЦП. Например, переместить окно Windows в другое место на экране, нарисовать и закрасить круг или прямоугольников.
2D Graphics – это двумерная графика, которая позволяет рисовать в одной плоскости. Например, пользовательский интерфейс операционной системы Windows является ярким примером двумерной графики;
3D Graphics – это трехмерная графика, которая позволяет создавать визуальное отображение трехмерного объекта на плоскости экрана. При этом видеопроцессор создает (математически рассчитывает) в видеопамяти трехмерный объект.
Требование повышения качества изображения привело к тому, что постепенно простенький контроллер на видеокарте превратился в мощный специализированный процессор со своей особой системой команд. Кроме того, поскольку расчет трехмерных изображений – это множество математических расчетов с плавающей запятой, то наиболее совершенные видеопроцессоры обзавелись и математическим сопроцессором. То есть, сейчас на современной видеокарте устанавливается процессор, мало уступающий по производительности современному Pentium. Графический видеопроцессор умеет моделировать не только двух- и трехмерные изображения, но и, например, выполнять декомпрессию сжатых видеоданных при воспроизведении видеофильмов.
Большинство приложений трехмерной графики, в том числе игр, при построении объемных сцен придерживаются определенной последовательности действий, в совокупности составляющей ЗD-конвейер. Итогом работы ЗD-конвейераявляется отрисовка результирующего изображения на дисплее компьютера. Группу операции, выполняющих обособленные промежуточные действия, принято называть этапом, или стадией ЗD-конвейера. Итак, в процессе синтеза трехмерного объекта существуют несколько основных этапов (их количество зависит от типа видеокарты, используемого видеопроцессора):
· построение геометрической модели – задаются координаты опорных точек и уравнения связывающих их линий, что приводит к созданию каркасной модели объекта;
· деление поверхности объекта на плоские элементарные элементы – работать со сложным объектом очень трудно, поэтому криволинейные поверхности превращают в набор прямоугольников или треугольников, создавая граненый объект;
· трансформация – простые объекты чаще всего необходимо определенным образом изменить или трансформировать, чтобы получился более естественный объект, или имитировать его перемещение в пространстве;
· расчет освещенности и затенения – для того чтобы объект был виден на экране, надо рассчитать освещенность и затенение каждого элементарного прямоугольника или треугольника, причем необходимо имитировать реальное распределение освещенности, т.е. требуется скрыть изменения освещенности между прямоугольниками или треугольниками;
· проецирование— трехмерный объект преобразуется в двумерный, но запоминаются расстояния вершин граней до поверхности экрана (координата z, z-буфер), на который проецируется объект;
· обработка координат;
· наложение текстур;
· создание эффектов прозрачности и полупрозрачности – на этом этапе проводится коррекция цвета пикселов (альфа-смешение, затуманивание) с учетом прозрачности смоделированных объектов, учитываются свойства окружающей объекты среды.