Обработка данных вершин (Direct3D 9)
Интерфейс IDirect3DDevice9 поддерживает обработку вершин как в программном, так и в аппаратном обеспечении. Как правило, возможности устройства для программной и аппаратной обработки вершин не идентичны. Возможности оборудования зависят от видеоадаптера и драйвера, а возможности программного обеспечения — фиксированные.
Следующие флаги управляют поведением обработки вершин для аппаратного уровня абстракции (HAL) и эталонных устройств.
- D3DCREATE_SOFTWARE_VERTEXPROCESSING
- D3DCREATE_HARDWARE_VERTEXPROCESSING
- D3DCREATE_MIXED_VERTEXPROCESSING
Укажите один из флагов поведения обработки вершин при вызове IDirect3D9::CreateDevice. Флаг смешанного режима позволяет устройству выполнять как программную, так и аппаратную обработку вершин. Для устройства можно установить только один флаг обработки вершин в любой момент времени. Обратите внимание, что флаг D3DCREATE_HARDWARE_VERTEXPROCESSING должен быть установлен при создании чистого устройства (D3DCREATE_PUREDEVICE).
Чтобы избежать возможностей обработки двух вершин на одном устройстве, во время выполнения можно запрашивать только аппаратные возможности обработки вершин. Возможности обработки вершин программного обеспечения являются фиксированными и не могут запрашиваться во время выполнения.
Член VertexProcessingCaps структуры D3DCAPS9 определяет возможности аппаратной обработки вершин устройства.
Для программной обработки вершин поддерживаются следующие возможности.
- член D3DVTXPCAPS_DIRECTIONALLIGHTS D3DVTXPCAPS
- член D3DVTXPCAPS_LOCALVIEWER D3DVTXPCAPS
- член D3DVTXPCAPS_MATERIALSOURCE7 D3DVTXPCAPS
- член D3DVTXPCAPS_POSITIONALLIGHTS D3DVTXPCAPS
- член D3DVTXPCAPS_TEXGEN D3DVTXPCAPS
- член D3DVTXPCAPS_TWEENING D3DVTXPCAPS
Кроме того, в следующей таблице перечислены значения, заданные для элементов структуры D3DCAPS9 для устройства в режиме обработки вершин программного обеспечения.
Член | Возможности программной обработки вершин |
---|---|
MaxActiveLights | Неограниченно |
MaxUserClipPlanes | 6 |
MaxVertexBlendMatrices | 4 |
MaxStreams | 16 |
MaxVertexIndex | 0xFFFFFFFF |
Как правило, любое приложение, связанное с обработкой вершин, должно использовать устройство HAL. Программная обработка вершин обеспечивает гарантированный набор возможностей обработки вершин, включая неограниченное количество огней и полную поддержку программируемых шейдеров вершин. Вы можете переключаться между программной и аппаратной обработкой вершин в любое время при использовании устройства HAL (который является единственным типом устройства, поддерживающим аппаратную и программную обработку вершин). Единственным требованием является выделение буферов вершин, используемых для программной обработки вершин, в системной памяти.
Связанные темы