Microsoft DirectX — это графический интерфейс прикладного программирования (Application Programming Interface, API). До появления API каждый производитель графических процессоров использовал собственный механизм общения с приложением, и разработчикам приложений приходилось писать отдельный код для каждого графического процессора, который они хотели поддержать. Поэтому для каждого приложения указывалось, какие именно видеокарты оно поддерживает. Чтобы решить проблему совместимости разных прикладных программ с видеокартами, был выполнена унификация интерфейсов - разработан специальный графический API.
Исторически существует два типа API: Microsoft DirectX и OpenGL.
Стандарт DirectX включает API для звука, музыки, устройств ввода и т.д. За 3D-графику в DirectX отвечает API Direct3D, и когда говорят о видеокартах, то имеют в виду именно его (поэтому понятия DirectX и Direct3D взаимозаменяемы).
Примеры функций в Direct3D: масштабирование, перемещение и вращение объектов, представленных матрицами; мировое преобразование (трансформации координат объектов, заданных в локальных системах, в мировую систему координрат); проецирование (перспективное и ортогональное); инициализация и очистка z-буфера; переход в систему координат камеры и др.
Стандарт DirectX постоянно обновляется. В настоящее время большинство игр поддерживает DirectX 7.0, DirectX 8.0 и DirectX 9.0. Последняя версия DirectX — это DirectX 9.0с, а с выходом операционной системы Windows Vista появится и DirectX 10.
Каждая версия DirectX поддерживает определенные версии шейдеров - программ обработки вершин (Vertex Shader) и пикселов (Pixel Shader). Эти версии шейдеров называются Shader Model. К примеру, DirectX 8 поддерживает Pixel Shader от 1.0 до 1.3 и Vertex Shader 1.0, а DirectX 8.1 — Pixel Shader 1.4 и Vertex Shader 1.1.
В DirectX 9 поддерживаются Pixel Shader 2.0 и Vertex Shader 2.0, а в DirectX 9.0c — Pixel Shader 3.0.
Как уже отмечалось, первый графический процессор с поддержкой API DirectX 10 — это NVIDIA GeForce 8800.
Список литературы
1. Семенов А.Б. Программирование графических процессоров с использованием Direct3D и HLSL. -http://www.intuit.ru/department/graphics/direct3dhlsl/6/1.html