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


Обработка данных вершин (Direct3D 9)

Интерфейс IDirect3DDevice9 поддерживает обработку вершин как в программном, так и в аппаратном обеспечении. Как правило, возможности устройства для программной и аппаратной обработки вершин не идентичны. Возможности оборудования зависят от видеоадаптера и драйвера, а возможности программного обеспечения — фиксированные.

Следующие флаги управляют поведением обработки вершин для аппаратного уровня абстракции (HAL) и эталонных устройств.

  • D3DCREATE_SOFTWARE_VERTEXPROCESSING
  • D3DCREATE_HARDWARE_VERTEXPROCESSING
  • D3DCREATE_MIXED_VERTEXPROCESSING

Укажите один из флагов поведения обработки вершин при вызове IDirect3D9::CreateDevice. Флаг смешанного режима позволяет устройству выполнять как программную, так и аппаратную обработку вершин. Для устройства можно установить только один флаг обработки вершин в любой момент времени. Обратите внимание, что флаг D3DCREATE_HARDWARE_VERTEXPROCESSING должен быть установлен при создании чистого устройства (D3DCREATE_PUREDEVICE).

Чтобы избежать возможностей обработки двух вершин на одном устройстве, во время выполнения можно запрашивать только аппаратные возможности обработки вершин. Возможности обработки вершин программного обеспечения являются фиксированными и не могут запрашиваться во время выполнения.

Член VertexProcessingCaps структуры D3DCAPS9 определяет возможности аппаратной обработки вершин устройства.

Для программной обработки вершин поддерживаются следующие возможности.

Кроме того, в следующей таблице перечислены значения, заданные для элементов структуры D3DCAPS9 для устройства в режиме обработки вершин программного обеспечения.

Член Возможности программной обработки вершин
MaxActiveLights Неограниченно
MaxUserClipPlanes 6
MaxVertexBlendMatrices 4
MaxStreams 16
MaxVertexIndex 0xFFFFFFFF

 

Как правило, любое приложение, связанное с обработкой вершин, должно использовать устройство HAL. Программная обработка вершин обеспечивает гарантированный набор возможностей обработки вершин, включая неограниченное количество огней и полную поддержку программируемых шейдеров вершин. Вы можете переключаться между программной и аппаратной обработкой вершин в любое время при использовании устройства HAL (который является единственным типом устройства, поддерживающим аппаратную и программную обработку вершин). Единственным требованием является выделение буферов вершин, используемых для программной обработки вершин, в системной памяти.

Устройства Direct3D