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

Для такого отображения требуется проведение процессов (обычно называемых конвейером) с последующим преобразованием результата в двумерный вид. Первоначально объект представляется в виде набора точек (координат) в трехмерной системе координат, у которой есть горизонтальная, вертикальная оси и ось глубины (соответственно х, у и z).
Координаты определяют положение вершин, из которых состоит объект. После соединения вершин объекта линиями создается каркасная модель. Ее поверхности могут быть заполнены цветом, текстурами и освещаться лучами света.
Для использования возможностей ЗD-графики служит программируемый интерфейс приложений (API). Он состоит из функций, управляющих ЗD-конвейером на программном уровне. Для игровых приложений существуют следующие API: Microsoft Direct3D; Criterion Renderware; Argonaut BRender; Intel 3DR. Для профессиональных приложений используется интерфейс OpenGL. Некоторые компании разрабатывают свои API — например, Autodesk разработала Heidi, Intergraph — RenderGL, 3DFX – Glide.
Часть вычислительных операций для трехмерных изображений возложена на ЗD-ускоритель, который находится на графической карте. Для обеспечения реалистичности графических изображений применяется распространенный метод, называемый текстурированием. Все текстуры хранятся в памяти графической карты. Когда поверхности заполняются текстурами, то должны учитываться перспективы, а при наложении текстур присутствуют «швы» между двумя ближайшими участками. Для устранения «швов» текстур применяется два типа фильтрации:
- билинейная — взвешенное среднее четырех смежных текстурных пикселей;
- трилинейная — взвешенное среднее значение результатов двух уровней билинейной фильтрации.
Большинство управляющих графикой процессов создают последовательности предфильтрованных участков текстур с уменьшенным разрешением. Графическая программа автоматически определяет, какую текстуру использовать, учитывая детали выведенного на экран изображения.
Для получения более четких краев (границ) изображения (объекта) применяется процесс anti-aliasing. Цвет точки, лежащей на границе объектов, определяется как среднее цветов двух граничных точек. Побочным эффектом anti-aliasing является смазывание краев.
Для определения взаимного расположения графических объектов применяется z-буферизация. В так называемом z-буфере хранятся значения глубины всех пикселей (z-координаты). Когда рассчитывается новый пиксель, его глубина сравнивается со значениями, хранимыми в z-буфере. Если новый пиксель имеет значение глубины, превышающее какое-либо значение в z-буфере, новый пиксель не записывается в буфер для отображения, в противном случае — записывается.
Кроме этого, ЗD-карты поддерживают и другие эффекты:
- Затуманивание. Образуется за счет комбинирования смешанных компьютерных цветовых пикселей с цветом тумана под управлением функции, определяющей глубину затуманивания;
- Cпособ передачи информации о прозрачности полупрозрачных объектов. Создается объединением цветов исходного пикселя и пикселя из буфера. Цвет точки является комбинацией цветов переднего и заднего плана;
- Двойная буферизация. Для двойной буферизации требуется наличие двух областей, зарезервированных в буфере кадров графической платы.

