Microsoft объявила о расширении набора инструментов DirectX до DirectX 12. Это не только делает DirectX 12 более доступным, но и подчеркивает тот факт, что графика Windows в целом стала менее доступной.
Если вы серьезный профессиональный программист игр, то вам нужно освоить DirectX 12. Большинству остальных графических «дилетантов» Microsoft пришлось остаться с DirectX 11. Самым большим ударом стала потеря XNA, которая обеспечивала графику для всех нас, и остановка разработки 3D-графики в рамках WPF, которая обеспечивала графику там, где графика не была главной целью.
Почему эти объекты были прекращены, а не с открытым исходным кодом?
Простой ответ заключается в том, что все это произошло в годы мании величия, когда Стивен Синофски стремился к Windows 8 и необходимости убивать все, что не было ориентировано на WinRT/Metro.
Существует неофициальная версия Windows XNA под названием MonoGame, но она поддерживает только DirectX 11, и это, похоже, относится к большинству подходов к графике в Windows. Если вы хотите DirectX 12, то у вас мало выбора, кроме как разобраться с его очень уродливым API.
Даже официальный набор инструментов Microsoft, представленный четыре года назад, только недавно был обновлен до DirectX 12. Оригинальный набор инструментов действительно облегчил работу программистам, желающим просто использовать некоторые графические элементы в проекте, и он заменил библиотеку D3DX и сам SDK DirectX.
Новая версия DirectX 12, цитируя запись в блоге, запускает ее,
«.. API Direct3D 12 значительно отличается от Direct3D 11, поэтому графические компоненты «чувствуют» то же самое, но на практике используются совсем по-другому.»
Это говорит о том, что вы можете ожидать крутой кривой обучения. Действительно, немного позже у нас есть:
«Слово предостережения: DirectX 12-это API, предназначенный для экспертов по графике. Если вы еще не являетесь экспертом в использовании Direct3D 11, я бы рекомендовал придерживаться API Direct3D 11 до тех пор, пока вам не понадобится дополнительный контроль. Direct3D 12 обеспечивает большой контроль над распределением памяти, синхронизацией, управлением состоянием, что может привести к снижению затрат процессора на рендеринг по сравнению с более старыми версиями Direct3D, но этот контроль означает, что API довольно неумолим. Если вы новичок в Direct3D полностью, обязательно начните с Direct3D 11.»
Если вы знаете Direct3D 11 и пытались попасть в DirectX 12, то вы будете знать это наверняка, и со стороны Microsoft очень мило предупредить нас, но я не могу думать о подобном предупреждении, применяемом к последней версии API.
Это говорит о том, что если вам просто нужна 3D-графика, не используйте новейший API.
Набор инструментов, по — видимому, представляет собой очень легкую оболочку для необработанного DirectX 12 с некоторыми дополнительными ресурсами-DirectXHelpers, GeometricPrimitives, Effects, SpriteBatch и так далее.
Кроме того, вы также получаете набор инструментов для аудио, геймпада, клавиатуры, мыши и SimpleMath. Это предназначено для Windows 10 и использует XAudio 2.9 и WIC2.
Конечно, вы можете использовать все это только в том случае, если вы программируете на C++. Если вы хотите использовать C#, посмотрите в другом месте.
Мы склонны замечать и суетиться по поводу больших изменений, поскольку Microsoft все дальше и дальше отодвигает Windows 10 от оригинальных технологий к чему-то, что, как она надеется, будет более мобильным и совместимым с сенсорным экраном.
Мы, как правило, не замечаем огромного количества технологий, которые просто погребены под падением — DirectSound, DirectVideo и так далее.
Все идет своим чередом, но Microsoft по-прежнему очень неохотно объясняет, каково будущее этих технологий в самой Windows, и это заставляет многих программистов задаваться вопросом, что безопасно использовать для настольных приложений Win32/.NET.
Очевидно, что если вы специализированный графический программист, «эксперт по графике», упомянутый в блоге, то потратьте свою жизнь на изучение DirectX 12, и вы, вероятно, будете очень счастливы. Для остальных из нас 3D-графика в Windows стала сложной темой во многих отношениях.