Архитектура Direct3D (Direct3D 9)
В этом разделе представлены два высокоуровневых представления архитектуры Direct3D:
- Графический конвейер Direct3D — представление внутренней архитектуры обработки системы отрисовки Direct3D.
- Интеграция системы Direct3D — представление о том, как Direct3D посредников между приложением и графическим оборудованием.
Графический конвейер Direct3D
Графический конвейер обеспечивает мощность для эффективной обработки и отрисовки сцен Direct3D на дисплее, используя преимущества доступного оборудования. На следующей схеме показаны стандартные блоки конвейера:
Компонент конвейера | Описание | См. также |
---|---|---|
Данные вершин | Нетрансформированные вершины модели хранятся в буферах памяти вершин. | Буферы вершин (Direct3D 9),IDirect3DVertexBuffer9 |
Примитивные данные | Геометрические примитивы, включая точки, линии, треугольники и многоугольник, ссылаются в данных вершин с помощью буферов индексов. | Буферы индексов (Direct3D 9),IDirect3DIndexBuffer9, примитивы, примитивы более высокого порядка (Direct3D 9) |
Тесселяция | Блок тесселатора преобразует примитивы более высокого порядка, карты смещения и исправления сетки в расположения вершин и сохраняет эти расположения в буферах вершин. | Тесселяции (Direct3D 9) |
Обработка вершин | Преобразования Direct3D применяются к вершинам, хранящимся в буфере вершин. | Конвейер вершин (Direct3D 9) |
Обработка геометрии | К преобразованным вершинам применяются обрезка, отбраковка лиц, оценка атрибутов и растеризация. | Конвейер пикселей (Direct3D 9) |
Текстурированная поверхность | Координаты текстур для поверхностей 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 предоставляются для получения возможностей отображения устройства во время выполнения. (См. раздел IDirect3DDevice9::GetDeviceCaps.) Если возможность не предоставляется оборудованием, hal не сообщает о ней в качестве аппаратной возможности.
Дополнительные сведения о hal и эталонных устройствах, поддерживаемых Direct3D, см. в разделе Типы устройств (Direct3D 9).