|
|
|
|
Первоначально областью применения подобных устройств было трехмерное моделирование и САПР, поэтому они выпускались небольшими тиражами, стоили очень дорого (от 1 до 15 тыс. долларов) и были практически недоступны массовому пользователю. Но недавно, когда в роли двигателя прогресса выступили компьютерные игры эволюция видеокарт пошла по пути наделения их все более мощными средствами ускорения трехмерной машинной графики. Видеоадаптеры, способные ускорять операции трехмерной графики, получили название 3D-ускорителей или 3D-акселераторов.
Построение трехмерной сцены происходит следующим образом - в компьютере трехмерные объекты представляются с помощью геометрических моделей, состоящих из сотен и тысяч элементарных геометрических фигур, обычно треугольников. Задаются также пространственное положение источников света, отражательные свойства материала поверхности объекта, степень его прозрачности и т. п. При этом некоторые объекты могут частично загораживать друг друга, между ними может переотражаться свет; пространство может быть не абсолютно прозрачным, а затянутым туманом или дымкой. Для большего реализма необходимо учесть и эффект перспективы. Чтобы поверхность смоделированного объекта не выглядела искусственной, на нее наносится текстура - двухмерная картинка небольшого размера, передающая цвет и фактуру поверхности. Все перечисленные трехмерные объекты с учетом примененных к ним эффектов должны в конечном итоге быть преобразованы в плоское изображение. Эта операция называется рендерингом.
При наличии 3D-ускорителя из всего перечисленного центральный процессор обычно занимается только расчетом координат вершин треугольников при перемещении объектов на сцене (трансформацией), все остальное делает акселератор. Однако в том случае, если 3D-акселератор не может выполнить то или иное действие, оно также выполняется центральным процессором, что, как правило, приводит к сильной потери скорости.
Охарактеризуем болеее подробно наиболее распространенные операции, которые 3D-ускоритель выполняет на аппаратном уровне:
Для поддержки функций 3D-ускорителя в играх и других программах существует несколько интерфейсов прикладного программирования, или API (Application Program Interface), позволяющих приложению стандартным образом использовать возможности 3D-ускорителя. (Это свонго стандартизированый рода язык управления 3D акселератором). На сегодняшний день существует множество таких интерфейсов, среди которых наиболее известны Direct3D (Microsoft), OpenGL (Silicon Graphics) и Glide (3Dfx).
Интерфейс Direct3D компании Microsoft стал фактическим стандартом для большинства компьютерных игр; и большинство 3D-ускорителей укомплектованы Direct3D-драйверами. Однако стоит иметь в виду, что Direct3D поддерживается только в среде Windows 95/98, а уже в Windows NT большинство плат не поддерживает аппаратных функций ускорения.
Разработанный компанией Silicon Graphics для своих графических станций Iris GL интерфейс прикладного программирования OpenGL стал общепринятым стандартом для программ трехмерного моделирования и САПР. Используемый в профессиональных 3D-ускорителях, он позволяет очень точно описывать параметры сцены. OpenGL в настоящее время является открытым стандартом, контролируемым ассоциацией OpenGL Architecture Review Board, в которую помимо Silicon Graphics входят Digital, IBM, Intel, Intergraph, Microsoft и др. Несмотря на это, существует множество диалектов OpenGL. По распространенности в области компьютерных игр OpenGL уступает Direct3D.
Драйвер 3D-ускорителя может поддерживать OpenGL в двух режимах: усеченном MCD (Mini Client Driver) и полном ICD (Installable Client Driver). Драйвер MCD реализует только базовый набор операций, ICD- высокооптимизированный драйвер, который обеспечивает максимальное быстродействие.
Интерфейс Glide разработан компанией 3Dfx Interactive для производимых ею ускорителей Voodoo. Glide снискал широкое распространение среди производителей компьютерных игр, хотя, в отличие от OpenGL, Glide не является универсальным 3D API и поддерживает только возможности Voodoo.
В настоящее время наиболее известны следующие 3D-ускорители: ATI 3D Rage Pro, 3D Rage 128 и Rage Fury, Matrox G400; S3 Savage3D; Riva128 и RivaTNT; GeForce256 и GeForce2; 3Dfx Voodoo-Voodoo5. На базе этих чипсетов производятся собственно видеокарты, причем не только перечисленными компаниями, а и компаниями, не выпускающими собственные графические процесоры, например ASUSTek , Creative Labs или Diamond Multimedia.