Архитектура Direct3D (Direct3D 9)
В этом разделе представлены два высокоуровневых представления архитектуры Direct3D:
- конвейер графики Direct3D — представление внутренней архитектуры обработки системы отрисовки Direct3D.
- интеграции с системой Direct3D — представление о том, как Direct3D медиатирует между приложением и графическим оборудованием.
Конвейер графики Direct3D
Графический конвейер позволяет эффективно обрабатывать и отображать сцены Direct3D на дисплее, используя доступное оборудование. На следующей схеме показаны стандартные блоки конвейера:
графического конвейера direct3d
Компонент конвейера | Описание | Связанные разделы |
---|---|---|
Данные вершин | Вершины нетрансформированных моделей хранятся в буферах памяти вершин. | буферов вершин(Direct3D 9), IDirect3DVertexBuffer9 |
Примитивные данные | Геометрические примитивы, включая точки, линии, треугольники и многоугольники, ссылаются на данные вершин с буферами индексов. | буферов индексов(Direct3D 9), IDirect3DIndexBuffer9, Примитивы, Higher-Order примитивов (Direct3D 9) |
Тесселяции | Модуль tesselator преобразует примитивы более высокого порядка, карты смещения и исправления сетки в расположения вершин и сохраняет эти расположения в буферах вершин. | Tessellation (Direct3D 9) |
Обработка вершин | Преобразования Direct3D применяются к вершинам, хранящимся в буфере вершин. | конвейера вершин (Direct3D 9) |
Обработка геометрии | Вырезка, вырезание лиц, оценка атрибутов и растеризация применяются к преобразованным вершинам. | конвейер пикселей (Direct3D 9) |
Текстурированный surface | Координаты текстур для поверхностей Direct3D предоставляются Direct3D через интерфейс IDirect3DTexture9. | Текстуры Direct3D (Direct3D 9), IDirect3DTexture9 |
Пример текстуры | Фильтрация на уровне текстуры применяется к входным значениям текстуры. | Текстуры Direct3D (Direct3D 9) |
Обработка пикселей | Операции шейдера пикселей используют геометрические данные для изменения входных вершин и данных текстуры, что дает выходные значения цвета пикселей. | конвейер пикселей (Direct3D 9) |
Отрисовка пикселей | Окончательные процессы отрисовки изменяют значения цвета пикселей с помощью альфа-, глубины или тестирования наборов элементов или путем применения альфа-смешивания или тумана. Все полученные значения пикселей отображаются в выводе. | конвейер пикселей (Direct3D 9) |
Интеграция системы Direct3D
На следующей схеме показаны связи между приложением Window, Direct3D,GDI и оборудованием:
Direct3D предоставляет независимый от устройства интерфейс приложению. Приложения Direct3D могут существовать вместе с приложениями GDI и иметь доступ к графическому оборудованию компьютера через драйвер устройства для графической карты. В отличие от GDI, Direct3D может воспользоваться аппаратными функциями, создав hal устройство.
Устройство hal обеспечивает аппаратное ускорение функций графического конвейера на основе набора функций, поддерживаемых графической картой. Методы Direct3D предоставляются для получения возможностей отображения устройства во время выполнения. (См. IDirect3Device9::GetDeviceCaps.) Если возможность не предоставляется оборудованием, он не сообщает об этом в качестве аппаратной возможности.
Дополнительные сведения о халь и эталонных устройствах, поддерживаемых Direct3D, см. в типах устройств (Direct3D 9).