Что такое DirectX SDK

Обновлено: 06.07.2024

У меня есть старый игровой движок (вроде) на основе DirectX 10, который я планировал перевести на DX 11. Я также только что установил Windows 8 и VS 2013 и, пытаясь запустить этот старый проект, узнал, что DirectX SDK устарел и теперь заменен Windows 8 SDK. В этом случае мне интересно, имеет ли смысл обновляться до DX 11 или мне следует попытаться заставить мой движок использовать новый Windows 8 SDK. Есть несколько вещей, которые я хотел бы знать, прежде чем принять решение:

1) Нужно ли изучать Windows 8 SDK сейчас или DX 11 все еще актуален? Например, если вы хотите изучить C++, вы должны изучить C++11, поэтому, если вы хотите изучить Direct3D сейчас, вам следует изучить Windows 8 SDK?

2) Существует множество отличных ресурсов для изучения DirectX SDK: множество руководств, собственные образцы Microsoft, образцы NVidia Graphics SDK, образцы AMD Radeon SDK и т. д. Существуют ли материалы аналогичного качества для Direct3D в Windows 8 или просто msdn? в данный момент?

3) Будет ли мой движок на основе Windows 8 SDK работать только в Windows 8?

4) Есть ли личный опыт/сравнения между ними?

2 ответа 2

1) Стоит ли изучать Windows 8 SDK сейчас или DX 11 по-прежнему актуален?

Что именно произошло: они объявили устаревшими некоторые вещи из отдельного DirectX SDK, немного разделили их и объединили с Windows SDK. Также переименованы некоторые заголовки. Это все. Нечему учиться.

На самом деле вы должны разучиться (т.е. забыть) некоторые вещи. В частности, D3DX, инфраструктура эффектов и т. д. Поскольку они удалены из нового SDK, вам необходимо найти альтернативные библиотеки для их замены (например, доступен исходный код Effect11; для загрузки растровых изображений используйте DirectXTK или FreeImage; для мешей используйте Assimp; найдите или разверните свои собственные механизмы спрайтов и шрифтов и т. д.).

Хорошо, нужно сказать, что они добавили DirectX 11.1 (Win8) и 11.2 (Win8.1). Но их особенности слишком незначительны и очень специфичны, чтобы сказать, что вы должны их изучить.

2) Существует множество отличных ресурсов для изучения DirectX SDK [. ] Есть ли на данный момент материалы аналогичного качества для Direct3D в Windows 8 или только для msdn?

В MSDN есть новый набор примеров, например. Примеры приложений Магазина Windows. Все они перепутаны с другими (не DirectX) образцами Windows SDK, поэтому используйте поиск. Поскольку сам API остается неизменным, для настольных приложений нет ничего нового. Вы можете легко адаптировать старые примеры для сборки без отдельного DirectX SDK, заменив устаревшие компоненты.

3) Будет ли мой движок на основе Windows 8 SDK работать только в Windows 8?

Нет, с помощью этого SDK вы можете ориентироваться на что угодно, начиная с Windows XP. Но если вы портируете API DirectX 11, это означает, что вашим приложениям потребуется как минимум Vista SP2. Вы можете сохранить свой код DirectX 10 для Vista без целей SP. А для запуска под Win XP вам понадобится путь кода DirectX 9. Или OpenGL во всех случаях конечно ;)

4) Есть ли личный опыт/сравнения между ними?

Ну, стиль Microsoft, основанный на устаревании и перемещении вещей без какой-либо выгоды, иногда вызывает разочарование. Но мы привыкли.

Перенос с DirectX 10 на DirectX 11 API очень прост. Но перенос таких расширений, как D3DX, доставляет массу неудобств: посмотрите мой ответ здесь, там есть несколько полезных ссылок.

Я стараюсь везде использовать только основные API-интерфейсы Microsoft и универсальные, переносимые сторонние библиотеки для всего остального: это уменьшает связанность и зависимость от чьих-либо решений и дает больше свободы. Поэтому, если одна библиотека сломана, мне не нужно переписывать их все.

Начиная с Windows 8 SDK DirectX входит в состав Windows SDK.

Изначально мы создали DirectX SDK как высокопроизводительную платформу для разработки игр поверх Windows. По мере развития технологий DirectX они стали применимы к более широкому кругу приложений. Сегодня доступность аппаратного обеспечения Direct3D на компьютерах заставляет даже традиционные настольные приложения использовать аппаратное ускорение графики. Параллельно технологии DirectX более интегрированы с Windows. DirectX теперь является фундаментальной частью Windows.

Поскольку Windows SDK является основным SDK разработчика для Windows, DirectX теперь включен в него. Теперь вы можете использовать Windows SDK для создания отличных игр для Windows. Чтобы загрузить Windows 8.x SDK или Windows 10 SDK, см. Windows SDK и архив эмулятора.

Следующие технологии и инструменты, ранее входившие в состав DirectX SDK, теперь входят в состав Windows SDK.

[!Note]
Устаревшие служебные библиотеки D3DX9/D3DX10/D3DX11 доступны через NuGet, но есть также ряд альтернатив с открытым исходным кодом. Библиотека утилит D3DCSX DirectCompute и распространяемая библиотека DLL доступны в Windows SDK. D3DX12 доступен на GitHub.

Устаревший SDK DirectX доступен для загрузки из Центра загрузки Microsoft, если это необходимо, но не рекомендуется использовать для новых проектов.

Не удается установить DirectX SDK, если у вас уже установлена ​​определенная версия распространяемого пакета Visual C++ 2010. Дополнительные сведения об этой проблеме и способах ее устранения см. в статье Ошибка "S1023" при установке DirectX SDK (июнь 2010 г.).

Использование проектов DirectX SDK с Visual Studio

Примеры из пакета SDK DirectX за июнь 2010 г. поддерживаются с премиальными SKU Visual Studio (Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012, Microsoft Visual Studio Professional 2013 или Microsoft Visual Studio Ultimate 2013) в Windows 7 и Windows 8 и более поздние выпуски. Из-за переноса заголовков и библиотек DirectX в Windows SDK необходимо внести изменения в параметры проекта, чтобы правильно построить эти примеры с учетом того, как Windows 8 SDK и более поздние версии упакованы с премиальными SKU Visual Studio.

Эти шаги также применимы к вашим собственным проектам, зависящим от DirectX SDK.

Не удается установить DirectX SDK, если у вас уже установлена ​​определенная версия распространяемого пакета Visual C++ 2010. Дополнительные сведения об этой проблеме и способах ее устранения см. в статье Ошибка "S1023" при установке DirectX SDK (июнь 2010 г.).

Убедитесь, что вы используете один из премиальных SKU Visual Studio. Microsoft Visual Studio Express 2012 для Windows 8 или Microsoft Visual Studio Express 2013 для Windows не будут создавать настольные приложения для Windows 8 и более поздних версий, такие как образцы DirectX SDK. Чтобы установить один из премиальных SKU Visual Studio, перейдите по ссылке: Загрузка Visual Studio и следуйте инструкциям.

Используйте обозреватель примеров DirectX SDK, чтобы установить файлы проекта для нужного примера. Откройте образец файла решения, совместимого с Microsoft Visual Studio 2010 (с расширением _2010).

Если вы открываете пример в системе, в которой установлена ​​только Microsoft Visual Studio 2012 или Microsoft Visual Studio 2013, вы получаете следующее сообщение: "Это решение содержит один или несколько проектов, использующих более раннюю версию компилятора и библиотек VC++. Каждый проект можно обновить для использования компилятора и библиотек VC++ (v110)». Выберите параметр «Обновить» в этом диалоговом окне, чтобы выполнить обновление перед открытием проекта.

В противном случае вы можете выполнить обновление до компилятора и библиотек Visual Studio 2012 или Visual Studio 2013 C++ 11 после их загрузки, щелкнув решение правой кнопкой мыши и выбрав Обновить проекты VC++.

D3DX не считается каноническим API для использования Direct3D в Windows 8 и более поздних версиях и поэтому не включен в соответствующий Windows SDK. Изучите альтернативные решения для работы с Direct3D API. Для устаревших проектов, таких как образцы DirectX SDK для Windows 7 (и более ранних версий), необходимо выполнить следующие шаги для создания приложений с D3DX с помощью DirectX SDK:

Измените каталоги проекта VC++ следующим образом, чтобы использовать правильный порядок заголовков и библиотек SDK.

  • Исполняемые каталоги: (в раскрывающемся списке справа)
  • Включить каталоги: $(IncludePath);$(DXSDK_DIR)Включить
  • Включить каталоги библиотек: $(LibraryPath);$(DXSDK_DIR)Lib\x86

IV. Нажмите Применить.
в. Выберите платформу x64.
ви. Задайте каталог библиотеки следующим образом:

  • Каталоги библиотек: $(LibraryPath);$(DXSDK_DIR)Lib\x64

Везде, где в ваш проект включены "d3dx9.h", "d3dx10.h" или "d3dx11.h", обязательно явно укажите "d3d9.h", "d3d10.h" и "dxgi.h". , или сначала "d3d11.h" и "dxgi.h", чтобы убедиться, что вы используете более новую версию. При необходимости вы можете отключить предупреждение C4005; однако это предупреждение указывает на то, что вы используете старую версию этих заголовков.

Удалите все ссылки на DXGIType.h в своем проекте. Этого заголовка нет в Windows SDK, а версия DirectX SDK конфликтует с новым файлом winerror.h.

Все библиотеки DLL D3DX устанавливаются на компьютер для разработки при установке DirectX SDK. Убедитесь, что необходимые зависимости D3DX перераспределяются с любым образцом или с вашим приложением, если оно перемещено на другой компьютер.

Учтите, что технологии замены для текущего использования D3DX11 включают DirectXTex, DirectXTK, DirectXMesh и UVAtlas. D3DXMath заменен на DirectXMath.

Убедитесь, что вы используете новую версию компилятора шейдеров HLSL, соблюдая следующие условия:

Изменение каталога исполняемого файла в соответствии с шагом 5 приведет к тому, что сборки проекта будут использовать FXC из установки Windows SDK. Имейте в виду, что файлы HLSL теперь официально распознаются Visual Studio. Вы можете добавить их как файлы проекта и установить параметры компилятора через систему проектов.

При вызове компиляции во время выполнения через устаревшую библиотеку D3DX будет использоваться неправильная старая версия компилятора HLSL.Замените все ссылки на API D3DXCompile*, D3DX10Compile* и D3DX11Compile* в коде на функцию D3DCompile в D3DCOMPILER_46.DLL или D3DCOMPILER_47.DLL.

Для любого проекта, в котором используется компиляция шейдеров во время выполнения, файл D3DCOMPILER_xx.DLL должен быть скопирован в локальный путь к исполняемому файлу проекта. Эта DLL доступна в этом подкаталоге установки Windows SDK в папке %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\ или %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\, где x86 и x64.

D3DCOMPILER_46.DLL или D3DCOMPILER_47.DLL из Windows SDK не являются системным компонентом и не должны копироваться в системный каталог Windows. Вы можете распространять эту DLL на другие компьютеры вместе с вашим приложением как параллельную DLL.

Все проекты, использующие XInput API и предназначенные для работы в Windows 7 или более ранних версиях Windows, должны использовать либо устаревшую версию (9.1.0), либо должны явно включать заголовки и библиотеки для этого компонента из SDK DirectX. Заголовок XInput и XINPUT.LIB, включенные в Windows SDK, предназначены только для версии (1.4), поставляемой как часть Windows 8 и более поздних версий. Тот же заголовок можно использовать с XINPUT9_1_0.LIB для использования устаревшей версии, которая включена в более ранние версии Windows. Устаревшая версия XInput не обнаруживает все возможности и не поддерживает звук, интегрированный в контроллер, поэтому, если требуется поддержка этих функций, необходимо использовать версию DirectX SDK (1.3).

<р>. а в параметрах компоновщика для дополнительных зависимостей укажите прямую ссылку на библиотеку DirectX SDK XInput:

Двоичный файл XINPUT1_3.DLL устанавливается в системные каталоги Windows при установке DirectX SDK на вашем компьютере для разработки. Вам нужно будет распространять этот двоичный файл вместе с вашим приложением, используя установку DirectX Setup из DirectX SDK.

Все проекты, использующие XAudio2 API и предназначенные для работы в Windows 7 или более ранних версиях Windows, должны использовать либо старую версию (9.1.0), либо явно включать заголовки и библиотеки для этого компонента из DirectX SDK. Заголовки и библиотеки XAudio2, входящие в состав Windows SDK, предназначены только для версии (2.8), входящей в состав Windows 8.

<р>. а в параметрах компоновщика для дополнительных зависимостей укажите прямую ссылку на библиотеку DirectX SDK XAudio2:

Двоичный файл XAUDIO2_7.DLL устанавливается в системные каталоги Windows при установке DirectX SDK на вашем компьютере для разработки. Вам необходимо распространять эти библиотеки вместе с вашим приложением, используя установку DirectX из DirectX SDK.

узел, содержащий записи пути, такие как и для возврата к стандартным значениям по умолчанию. Если вы не видите ссылок на DXSDK_DIR в этих файлах, никаких изменений не требуется.

Если полученное приложение поддерживает Windows Vista с пакетом обновления 2 (SP2), а также Windows 7 и Windows 8 и более поздние версии, задайте для определения препроцессора с именем _WIN32_WINNT значение 0x600. Если он поддерживает только Windows 7 и Windows 8 и более поздние версии, установите для него значение 0x601.

Загрузите полный DirectX SDK (DirectX Software Development Kit), который содержит среду выполнения DirectX и все программное обеспечение DirectX, необходимое для создания приложений, совместимых с DirectX. Этот выпуск DirectX SDK содержит обновления инструментов, служебных программ, примеров, документации и файлов отладки среды выполнения для платформ x64 и x86.

Microsoft изначально создавала DirectX SDK как высокопроизводительную платформу для разработки игр поверх Windows. По мере развития технологий DirectX они стали применимы к более широкому кругу приложений. Сегодня доступность аппаратного обеспечения Direct3D на компьютерах заставляет даже традиционные настольные приложения использовать аппаратное ускорение графики. Параллельно технологии DirectX более интегрированы с Windows. DirectX теперь является фундаментальной частью Windows.

Этот выпуск включает в себя изменения в библиотеке D3DX, образцы графики, инструменты и обновления документации. Также включены обновленные среды выполнения для разработчиков и распространяемый компонент DirectX (DirectX 9.0c).

Загрузить последнюю версию DirectX SDK

Скриншоты

Лучшие загрузки

Комментарии и отзывы пользователей

Присоединяйтесь к нашему списку рассылки

Будьте в курсе последних выпусков программного обеспечения, новостей, скидок на программное обеспечение, специальных предложений и многого другого.

Каждое программное обеспечение выпускается под типом лицензии, который можно найти на страницах программ, а также на страницах поиска или категорий. Вот наиболее распространенные типы лицензий:

Бесплатное ПО

Бесплатные программы можно скачивать и использовать бесплатно и без каких-либо ограничений по времени. Бесплатные продукты можно использовать бесплатно как в личных, так и в профессиональных целях (коммерческое использование).

Открытый код

Программное обеспечение с открытым исходным кодом — это программное обеспечение с исходным кодом, которое любой может проверить, изменить или улучшить. Программы, выпущенные под этой лицензией, можно использовать бесплатно как в личных, так и в коммерческих целях.Существует множество различных лицензий с открытым исходным кодом, но все они должны соответствовать определению открытого исходного кода — вкратце: программное обеспечение можно свободно использовать, модифицировать и распространять.

Бесплатная игра

Эта лицензия обычно используется для видеоигр и позволяет пользователям бесплатно загружать игру и играть в нее. По сути, продукт предлагается Free to Play (Freemium) и пользователь сам решает, хочет ли он платить деньги (Premium) за дополнительные функции, услуги, виртуальные или физические товары, расширяющие функционал игры. В некоторых случаях пользователям может быть показана реклама.

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

Пробная версия

Пробная версия программного обеспечения позволяет пользователю оценить программное обеспечение в течение ограниченного периода времени. После этого пробного периода (обычно от 15 до 90 дней) пользователь может решить, покупать программное обеспечение или нет. Несмотря на то, что большинство пробных программных продуктов ограничены только по времени, у некоторых также есть ограничения по функциям.

Обычно коммерческое программное обеспечение или игры производятся для продажи или в коммерческих целях.

Аман_Джеймс

Уважаемый

Что такое DirectX SDK? и почему он называется sdk, если он не работает, как программа для разработки, такая как android sdk?

Эксимо

Титан

Это SDK. Эти библиотеки можно загрузить в интегрированную среду разработки после ее установки и использования в процессе разработки.

Спорный вопрос, поскольку он является частью Windows.

Нашел это, похоже, они в какой-то момент объединили его с Windows SDK.

Эксимо

Титан

Это SDK. Эти библиотеки можно загрузить в интегрированную среду разработки после ее установки и использования в процессе разработки.

Спорный вопрос, поскольку он является частью Windows.

Нашел это, похоже, они в какой-то момент объединили его с Windows SDK.

Начало темы Похожие темы Форум Ответы Дата
Вопрос Уровень функции dx11 11.0 требуется для запуска ошибки движка на GTX 750 PC Gaming 10 12 марта, 2022
[РЕШЕНО] Я пытался поиграть в Wolfenstein II и у меня получилось. Пишет фатальная ошибка, и я не знаю, что делать PC Gaming 1 4 ноября 2021 г.
L [РЕШЕНО] Разница между DirectX Web и DirectX Июнь 2010 г.? PC Gaming 1 13 октября, 2021
I [РЕШЕНО] Ошибки DirectX и BSOD с Final Fantasy XlV — есть ли исправление? PC Игры 4 22 мая 2021 г.
T [РЕШЕНО] FIFA 21 показывает функцию DirectX ошибка на Ryzen 3400G APU? PC Gaming 10 21 мая 2021 г.

ПОПУЛЯРНЫЕ ТРЕКИ

  • Инициатор: yohleb
  • Сегодня в 6:10
  • Ответов: 8
  • Инициатор Klaz49
  • Сегодня в 6:23
  • Ответов: 7
  • Инициатор Mattbetts99
  • Сегодня в 4:31
  • Ответов: 1


  • Инициатор Bad Skiddy
  • Сегодня в 6:42
  • Ответов: 0
  • Инициатор nz_kiwis
  • Сегодня в 5:08
  • Ответов: 4
  • Инициатор: eynonstein
  • Сегодня в 7:08
  • Ответов: 3
  • Инициатор Glaucus
  • Сегодня в 00:55
  • Ответов: 3

Последние сообщения

  • Последнее: drea.drechsler
  • 22 минуты назад

Модераторы онлайн

Поделиться этой страницей

Tom's Hardware является частью Future plc, международной медиа-группы и ведущего цифрового издателя. Посетите наш корпоративный сайт.
© Future Publishing Limited Quay House, Амбери, Бат BA1 1UA.
Все права защищены. Регистрационный номер компании в Англии и Уэльсе 2008885.


Tom's Hardware является частью Future plc, международной медиа-группы и ведущего цифрового издателя. Посетите наш корпоративный сайт.
© Future Publishing Limited Quay House, Амбери, Бат BA1 1UA. Все права защищены. Регистрационный номер компании в Англии и Уэльсе 2008885.

Читайте также: