Введение

Библиотека API высокого уровня

В вычислительной технике D3DX (Direct3D Extension) — это библиотека API высокого уровня, разработанная для расширения возможностей графического API Direct3D от Microsoft. Библиотека D3DX была представлена в Direct3D 7 и впоследствии улучшена в Direct3D 9. Она предоставляет классы для выполнения общих вычислений с векторами, матрицами и цветами, вычисления матриц вида и проекции, сплайн-интерполяции, а также для решения более сложных задач, таких как компиляция или сборка шейдеров, используемых в 3D-графическом программировании, сжатое хранение скелетной анимации и работа со стеками матриц. В библиотеку входят функции для выполнения сложных операций с 3D-сетками, такие как вычисление тангентного пространства, упрощение сетки, предварительно вычисленный перенос излучения, оптимизация для кэша вершин и переупорядочивание полос, а также генераторы 3D-текстовых сеток. 2D-функции включают классы для рисования линий в экранном пространстве, текста и частиц на основе спрайтов. Пространственные функции включают различные алгоритмы пересечения, преобразование в/из барицентрических координат и генераторы ограничивающих прямоугольников и сфер. Библиотека D3DX содержит готовые подпрограммы для выполнения задач, общих для большинства 2D/3D-приложений, таких как игры. Поскольку API Direct3D является относительно низкоуровневым, использование библиотеки D3DX обычно намного проще. В 2012 году Microsoft объявила о прекращении поддержки D3DX 9, D3DX 10 и D3DX 11 в SDK для Windows 8, а также других фреймворков разработки, таких как XNA. Эффекты шейдеров, управление текстурами, оптимизация геометрии и модели сетки доступны в виде отдельных источников, опубликованных на GitHub. Математические структуры D3DX, такие как векторы и матрицы, будут объединены с XNAMath в DirectXMath, а математика сферических гармоник предоставляется в виде отдельного исходного кода. Также доступны DirectX Tool Kit, DirectXTex, DirectXMesh и UVAtlas. Кроме того, существуют версии DXUT с открытым исходным кодом и среда выполнения эффектов (FX11).

Direct3D12

Нет DLL-библиотеки D3DX12. Однако существует заголовочный файл утилит D3DX12 (весь код представлен встроенным C++) с базовыми вспомогательными функциями для Direct3D 12, описанными в документации Microsoft и опубликованными на GitHub. Он не содержит функциональности, такой как математические вычисления, спрайты, отрисовка шрифтов, трехмерные фигуры, сетки или загрузка текстур. Для Direct3D 12 существует DirectX Tool Kit, который предоставляет недостающую функциональность.