Механизм работы 3D-акселератора (Видеокарты)
Что представляет собой современный 3D-акселератор? Для того чтобы ответить на этот вопрос, нужно прежде всего понять, как работает 3D-механизм этого устройства. Все трехмерные объекты определяются с помощью математической модели - именно она является "отправной точкой" в последовательности получения изображения на экране, называемой 3D-конвеером (3D Pipeline). 3D-конвеер может быть реализован полностью или частично на аппаратном уровне и включает три этапа: этап построения каркасной модели объекта, этап геометрических преобразований и этап рендеринга. На первом этапе, исходя из математической модели объекта, генерируется его каркасная модель, состоящая из множества треугольников. Этот процесс также называется триангуляцией.
На этапе геометрических преобразований каркасная модель объекта трансформируется с учетом таких понятий, как положение в пространстве точки наблюдения трехмерной сцены, изменение положения объекта относительно ее (перемещение, вращение, изменение размеров, при этом учитываются искажения, вызванные протяженностью объекта в пространстве, - перспективные искажения) и расположение источников света.
На этапе рендеринга формируется окончательный внешний вид объекта. Главная задача, выполняемая на этом этапе, - к каркасной модели объекта добавляются характеристики поверхностей: каждый треугольник закрашивается необходимым растровым изображением (текстурой). На этом этапе вступает в действие третья, пространственная координата - Z (глубина, расстояние от точки просмотра до объекта). 3D-акселераторы содержат блок памяти, называемый Z-буфером, в котором хранятся координаты глубины всех точек, попадающих в область просмотра. На основании пространственных данных происходит определение видимых и невидимых объектов и частей сцены.
Основные функции
Рассмотрим основные функции, которые выполняют современные 3D-акселераторы. Texture mapping. Операция наложения на каждый из треугольников, составляющих каркасную модель объекта, текстуры - обыкновенной растровой битовой карты. Отдельные пикселы в текстуре, наложенной на треугольник, называются текселами (texel, textured pixel). Применяется также texture mapping с коррекцией перспективы: алгоритм преобразует карту текстуры таким образом, чтобы при наложении на объект создавалась иллюзия перспективы. Bump mapping. Алгоритм позволяет наносить на поверхность треугольников рельефные текстуры. Lighting effects, Depth cueing. Алгоритм преобразования вида текстурированных треугольников в соответствии с информацией об источниках освещения, имеющихся на 3D-сцене. С помощью Depth cueing изменяется цвет и яркость объектов, удаляющихся от точки просмотра или источников освещения. Point-sampled, Bilinear, Trilinear, Anisotropic filtering. Методы устранения искажений при перемещении или повороте текстурированных объектов посредством интерполяции некоторых пикселов. Искажения представляют собой "перескакивание" или "пляску" пикселов. Point-sampled filtering - это самый простой алгоритм, с его помощью просто тиражируется цвет соседних пикселов, и при этом происходит значительная потеря качества. Bilinear filtering, интерполируя тексел, вычисляет среднее значение цвета четырех ближайших текселов, что сразу улучшает качество получаемого изображения, однако при этом повышает ресурсоемкость. Trilinear filtering позволяет получить еще более качественную картинку. При вычислении тексела алгоритм усредняет значения двух операций bilinear filtering, примененных к соседним уровням MIP битовой карты текстуры. Недостаток этих методов в том, что все они могут быть использованы только с плоскими текстурированными поверхностями. Новый алгоритм Anisotropic filtering позволяет производить вышеописанную операцию с текстурированными объектами, повернутыми под определенным углом относительно точки просмотра (к примеру, если объект продолговатый). Фильтрация в данном случае осуществляется по различным направлениям с учетом поворота текстуры.
Antialiasing. Алгоритм легкого "размывания" диагональных линий для получения эффекта плавности наклона за счет изменения яркости прилегающих пикселов. Применяется также для получения более четких очертаний объектов и на границах разных текстур. Алгоритм задействует большие вычислительные ресурсы, особенно при использовании в связке с subpixel positioning - методом разбиения пикселов на подпикселы при определении, через какие из них будет проходить наклонная прямая.
Dithering. Способ придания реалистичности цветовым переходам при использовании 16-битовых буферов. При определении промежуточного цвета, сглаживающего переход, берутся значения соседних цветов. MIP mapping. Метод создает серию копий одной и той же текстуры с различным графическим разрешением, и при удалении или приближении объекта применяется та из них, которая наиболее удачно "вписывается" в объект. Если объект приближается, используется текстура с более высоким разрешением, если удаляется - с более низким. С его помощью устраняется необходимость пересчитывать значения текселов каждый раз, как только объект изменяет положение в пространстве. MIP расшифровывается как "multum in parvum", что в переводе с латинского означает "много в одном". Для эффективного распределения памяти при работе MIP mapping применяются различные способы упаковки однотипных карт текстур. Используются также алгоритмы Bilinear MIP mapping (комбинация Bilinear filtering и MIP mapping) и Trilinear MIP mapping.
Alpha blending. Способ задания прозрачных и полупрозрачных объектов. В алгоритме вводится еще один параметр - альфа-значение, или коэффициент прозрачности. Если перед одним объектом расположен другой с ненулевым значением коэффициента прозрачности, то яркость пикселов первого объекта уменьшается или их цвет меняется в соответствии с цветом закрывающего объекта.
Fogging. Эффект fogging создает иллюзию дымки (тумана) различной насыщенности над 3D-сценой. Flat shading, Gouraud shading. Алгоритмы предназначены для получения эффектов затенения объектов. С их помощью изображения трехмерных объектов становятся более реалистичными за счет эффектов света и тени. Первый метод проще в реализации, однако не дает требуемого качества, в отличие от Gouraud shading. Specular Highlights. Алгоритм позволяет рассчитывать информацию об отраженном от объектов свете и вносить соответствующие коррективы в 3D-сцену.
Скорость работы акселератора
Существует два основных количественных показателя скорости работы акселератора. Первый - это Fill Rate (скорость заполнения элементов трехмерной сцены пикселами с определенной текстурой), который измеряется в текселах (млн. текселов) в секунду, второй - это Triangle Rate, показывающий максимальную пропускную способность акселератора по выводу на экран треугольников (измеряется, соответственно, в треугольниках в секунду). Игроки любят также оперировать параметром fps - frames per second, который показывает, сколько раз в секунду аппарат рендеринга обновляет 3D-сцену на экране. Чем выше этот показатель, тем более естественной выглядит анимация и движения объектов. Принято считать, что 30 fps - приемлемый показатель для игр. Повышение fps до 60 влечет существенное усиление реальности отображаемой 3D-графики. При значениях свыше 75 fps уже невозможно различить улучшение качества - достигается предел, обусловленный особенностями человеческого зрения.
К объему видеопамяти, установленной в 3D-акселераторе, неприменима стандартная формула расчета, поскольку ее часть в подобных устройствах используется для других целей, к примеру, под Z-буфер и т. д. Поэтому если в видеокарте установлено 8МВ памяти, то в Windows на ней можно установить разрешение 1600 х 1200 х 16 млн. цветов, однако поиграть в 3D-игры при таком разрешении не удастся. Существует такое понятие, как максимальное 3D-разрешение для данной видеокарты.
В заключение хотелось бы отметить: если вы приобрели один из новых 3D-акселераторов, почаще заглядывайте на Web-сайт его производителя, чтобы не пропустить последние версии драйверов. На этапе "обкатки" карт драйверы будут часто обновляться, и их свежие версии могут обеспечить существенный прирост производительности.
|