Поделиться через


Архитектура 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 предоставляет независимый от устройства интерфейс приложению. Приложения Direct3D могут существовать вместе с приложениями GDI и иметь доступ к графическому оборудованию компьютера через драйвер устройства для графической карты. В отличие от GDI, Direct3D может воспользоваться аппаратными функциями, создав hal устройство.

Устройство hal обеспечивает аппаратное ускорение функций графического конвейера на основе набора функций, поддерживаемых графической картой. Методы Direct3D предоставляются для получения возможностей отображения устройства во время выполнения. (См. IDirect3Device9::GetDeviceCaps.) Если возможность не предоставляется оборудованием, он не сообщает об этом в качестве аппаратной возможности.

Дополнительные сведения о халь и эталонных устройствах, поддерживаемых Direct3D, см. в типах устройств (Direct3D 9).

начало работы