Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Direct3D — это низкоуровневый API для рисования примитивов с конвейером отрисовки или для выполнения параллельных операций с шейдером вычислений.
Что такое Direct3D?
Direct3D — это низкоуровневый API, который можно использовать для рисования треугольников, линий или точек на кадр или для запуска операций с высокой параллелизменностью на GPU.
Direct3D:
- Скрывает различные реализации GPU за последовательной абстракцией. Но вам все равно нужно знать, как нарисовать трехмерную графику.
- Предназначен для работы с отдельным графическим процессором. Более новые графические процессоры имеют сотни или тысячи параллельных процессоров.
- Подчеркивает параллельную обработку. Вы настраиваете кучу состояния отрисовки или вычислений, а затем запускаете операцию. Вы не ждете немедленной обратной связи от операции. Вы не смешиваете операции ЦП и GPU.
Какие API Direct3D можно использовать?
Api Direct3D, которые вы выбираете, зависят от стиля приложения, которое требуется написать.
- Если вы хотите написать приложение UWP, используйте подмножество API Direct3D 11, DXGI и HLSL. Список этих API см. в API Win32 и COM для приложений UWP. Чтобы узнать, как создать приложение Магазина Windows с использованием Direct3D 11, см. статью Создание трехмерной графики с помощью DirectX.
- При написании настольного приложения вы можете использовать полный набор API Direct3D 11, DXGI и HLSL.
- Начиная с Windows 8, мы больше не поддерживаем платформу XNA для классических приложений. Но приложения Магазина Windows, UWP-приложения и десктопные приложения могут использовать полный набор API интерфейсов XAudio2 и DirectXMath. Настольные приложения могут использовать полный набор API XInput , а приложения Магазина Windows и UWP могут использовать большинство API XInput. Для получения дополнительной информации см. версии XInput.
Какая версия Direct3D?
Выбранная версия API Direct3D зависит от используемого уровня операционной системы и оборудования.
- Если вы хотите разработать программы для Windows 8 и более поздних версий, используйте интерфейсы API Direct3D 11.
- Используйте API Direct3D 9 с Windows XP и более поздними версиями. Все оборудование поддерживает API Direct3D 9, даже более новое оборудование Direct3D 11 уровня.
- Используйте API Direct3D 10 с Windows Vista и более поздних версий. Только оборудование с поддержкой Direct3D уровня 10 и более поздних версий поддерживает API Direct3D 10.
- Используйте API Direct3D 10.1 и Direct3D 11 с Windows 7 и более поздних версий. Вы также можете использовать API Direct3D 10.1 и Direct3D 11 с Windows Vista с пакетом обновления 2 (SP2).
Конвейер рендеринга Direct3D
В конвейере отрисовки Direct3D данные передаются из нескольких источников, таких как приток реки.
- Некоторые части потока программируются.
- Некоторые части имеют ручки и циферблаты.
- Источники данных — это последовательные потоки пакетов (вершин) или индексируемые массивы (ресурсы шейдера).
- Вершины и ресурсы шейдера поступают в примитивы, которые можно усилить.
- Примитивы и ресурсы шейдера поступают в пиксельные операции.
Вычислительный шейдер Direct3D
При использовании шейдера вычислений Direct3D все процессоры GPU выполняются параллельно. Так вычислительный шейдер ведет себя скорее как пруд, чем как река.