Выбирая видеокарту приходится знакомиться с ее техническими характеристиками и технологиями, которые описываются специальной терминологией. Знать принципы построения современных видеоадаптеров, смысл их технических характеристик и технологий применяемых в современной 3D-графике. Обычно абстрактные трехмерные объекты включают три составляющих:
1. Вершины. Задают местоположение объекта в трехмерном пространстве; само их положение задается координатами X, Y и Z.
2. Примитивы. Это простые геометрические объекты, с помощью которых конструируются более сложные объекты. Их положение задается расположением определяющих точек (обычно вершин). Для конструирования изображений трехмерных объектов при построении примитивов учитывается также эффект перспективы.
3. Текстуры. Это двухмерные изображения, или поверхности, налагаемые на примитивы. Точки текстуры называются текселами.
Эти абстрактные математические описания трехмерных изображений должны быть визуализированы, т.е. преобразованы в видимую форму. Процедура визуализации основывается на жестко стандартизированных функциях видеоакселератора, обеспечивающих составление выводимого на экран целостного изображения из отдельных абстракций. Определяются размеры, ориентация и расположение примитивов в пространстве и расчет влияния источников света (геометризация), и преобразуются примитивы в пиксели на экране с нанесением нужных затенений и текстур (растеризация).
Трехмерное изображение, отображаемое на экране монитора, представляет собой набор отдельных групп элементов: группы трехмерных объектов, группы источников освещения, группы применяемых текстурных карт, группы (или одной) камер. На экране монитора трехмерный объект задается координатами его вершин в пространстве сцены; локальными координатами в пространстве текстурной карты; алгоритмом поведения - масштабированием, углом поворота, смещением и прочими изменениями в течение времени в соответствии с замыслом разработчиков. Производным от первых двух свойств является грань - плоскость объекта, имеющая три вершины, с наложенными на нее текстурами.
Источник освещения может обладать координатами в пространстве сцены, ориентацией (направленностью), типом (фоновым, точечным и т. п.), цветом и алгоритмом изменения светового излучения.
Камера представляет собой точку, откуда наблюдатель смотрит на трехмерную сцену. Плоскость, в которой расположена камера, называется плоскостью проецирования, или картинной плоскостью. Камера обладает свойствами координат в пространстве сцены, целевой точкой, углом зрения, углом поворота. Линия, соединяющая камеру и целевую точку, называется линией визирования. Угол поворота рассчитывается относительно оси линии визирования.
Текстурой (или текстурной картой) называют двух- или трехмерное изображение, имитирующее зрительное восприятие человеком свойств различных поверхностей. Специализированные текстуры (например, карты окружающей среды) сами не отображаются, а используются для генерации комбинированных текстур, накладываемых на полигон.
Большинство массовых приложений трехмерной графики, в том числе игр, при построении объемных сцен следуют устоявшейся технологии, которую можно разбить на относительно обособленные этапы. Описываемая ниже общепринятая последовательность не является жестко заданной. При конкретной реализации на программном и аппаратном уровнях могут появляться существенные отличия, однако смысловое содержание блоков практически не меняется. Процесс визуализации трехмерной сцены на экране компьютера происходит следующим образом. В первую очередь определяется состояние объектов, принимающих участие в сцене, которую необходимо отобразить (активен или нет). На следующем этапе каждому объекту в сцене сопоставляется соответствующая текущему моменту геометрическая модель. Затем модель разбивается на элементы – примитивы, которые называют полигонами (треугольник, многоугольник). Дальше предварительно накладывают текстуры и определяют параметры освещения. Затем рассчитывается положение камеры (наблюдателя) и линия визирования (взгляда). После этого отсекаются объекты невидимые наблюдателю и для каждого полигона данные о координатах вершин, присвоенной текстуре, параметрах освещенности и т. д., приводятся к виду, пригодному для обработки аппаратурой. И, наконец, выполняется закрашивание (рендеринг). Закрашивание происходит по точкам на основе данных о текстуре, степени прозрачности, параметрах тумана, освещении. Каждому пикселу, таким образом, присваивается определенный цвет, и он размещается в нужном месте буфера кадра. Далее может следовать этап наложения, какого либо эффекта на уже готовое изображение кадра.
Рендеринг (конвейер рендеринга). Рендеринг выполняется по многоступенчатому процессу, называемому конвейером рендеринга, который состоит из трех этапов обработки: тесселяции, геометрической обработки, растеризации. При аппаратном рендеринге 3D-акселератор берет на себя наиболее емкие вычислительные функции по растеризации треугольников. Для ускорения обработки текстур используют параллельную работу нескольких (2-3) конвейеров (блоков). Обычно для получения полноценного преобразования часто требуется три прохода конвейера блока рендеринга, но если в видеоакселераторе реализованы два конвейера, способные работать параллельно, то потребуется два прохода.
Геометрическая обработка. В наиболее совершенных 3D-акселераторах используются геометрические процессоры (например, FGX-1), которые ускоряют всю стадию геометрической обработки, в том числе трансформацию (если 3D-акселератор поддерживает операции с матрицами) и освещение. Программа хранит местоположение объектов изображения в мировых координатах, упрощая связи между различными объектами. Большинство вычислений происходит в процессоре.
Вычисление координат вершин. Процессор вычисляет позицию каждой вершины для каждого объекта в мировой системе координат.
Отсечение краев. Изображаемые объекты могут не вписываться в пределы видимой области. Выступающие части должны быть удалены, поэтому процессор отсекает края объекта по границам рисуемой области - по одному многоугольнику за один раз.
Отбрасывание скрытых поверхностей. Изображать невидимые поверхности излишне. Процессор должен распознавать видимые поверхности и отбрасывать невидимые.
Вычисление координат проекций. Дисплей работает всего лишь как двумерное устройство, наподобие куска стекла, через которое вы смотрите на трехмерную сцену. Чтобы промоделировать это в компьютере, нам нужно пересчитать координаты проекций вершин каждого многоугольника из системы координат в пространстве в систему координат на плоскости (поверхности экрана).
Производительность программ и аппаратуры для трехмерной графики измеряется, как правило, количеством пикселей текстуры и закрашенных многоугольников в секунду. Fillrate (основная мера скорости текстурирования измеряемая в пикселах в секунду), например, 90 млн. пикселов/с или 180 млн. пикселов/с. В различных видеоадаптерах применяются разные технологии визуализации - однопроходная, или мультипроходная технология визуализация. В настоящее время практически во всех видеоадаптерах фильтрация и основная визуализация выполняются за один проход, что позволяет увеличить частоту кадров, например, используется однопроходная трилинейная фильтрация.