Я относительно программный программист, но основное внимание было уделено разработке приложений с C#. У меня почти нулевой опыт разработки игр и 3d-движки - я начал читать о том, как работают 3D-двигатели вообще, например. было замечательное руководство, объясняющее, как разработать очень простой программный 3D-движок в C#. Очень полезно, но это в значительной степени отражает весь мой опыт в этой теме. Кроме того, я до сих пор не очень хорошо работал с C++ (хотя я знаю основные концептуальные отличия от C# и рассмотрю возможность достижения хотя бы «достаточной» скорости на этом языке, который можно использовать).Программирование на DirectX/C++ 3D Engine: узнайте сейчас или подождите DirectX 12?
Так или иначе, из чистого личного интереса я бы хотел пообщаться с развивающимися, а точнее, научиться разрабатывать простые 3D-графики на основе DirectX для образовательных целей. Меня просто интересуют графические части (нет звука/анимации/игровых состояний/сетей или что-то еще, только очень рудиментарный ввод). Предоставление некоторой простой геометрии, а затем постепенное изучение того, как расширить это с помощью более современных методов затенения, было бы неплохо.
Я уже нашел для этого большие ресурсы. Но прежде чем я вникаю в тему: я знаю, что DirectX12 не за горами, и, видя, насколько он, кажется, развивает систему, я действительно не уверен, что будет много изменений в API. Или, другими словами: я боюсь, что сейчас я начинаю изучать материал DirectX 11, и через несколько месяцев это будет бесполезно, так как DirectX 12 работает совершенно по-другому, с точки зрения программирования.
Я не уверен, насколько это уже известно или уже есть разработчик, ранее доступный широкой публике. Но если его можно сказать уже: вы бы, ребята, рекомендовали меня ждать DX12, или начать с v11, так как разработка будет очень похожа на будущее в любом случае?
Для справки я знаю, конечно, что обучение DX11 ни в коем случае не повредит. Но я не спешу, и если половина из того, что я буду изучать, теперь становится устаревшей через несколько месяцев, я бы предпочел просто ждать, пока не начнет медленно начинать.
DirectX 9 по-прежнему поддерживается по трем причинам: (a) кодеки уже написаны для многих движков и существующих инструментов; (б) Xbox 360 был Direct3D 9, хотя у него было так много расширений, что, вероятно, не совсем правильно, Дизайн эпохи DirectX 9 «жив очень долгое время», и (в) для людей, специально предназначенных для Китая или России, у вас действительно есть целевая Windows XP. Тем не менее, поддержка отладки и инструментов или Direct3D 9 на современных платформах Windows не хватает для DirectX 9 и все больше эмулируется, а не в любом смысле «Прямая». –
DX11 - это текущее «сладкое пятно» для обучения DirectX и применяется для всех поддерживаемых платформ Microsoft: Windows Vista с пакетом обновления 2 (SP2) + KB971644 или более поздняя версия поддерживает настольные приложения DX11 для Windows, и это минимально необходимый для Windows 8.x Store, Xbox One, Windows 8 и универсальных приложений Windows для Windows 10. Кроме того, поддержка инструмента хороша, и вы можете найти множество замен для [legacy D3DX stuff] (http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx), что поддерживает DX11. Библиотеки поддержки и даже понимание правильных шаблонов использования для DX12 все еще находятся в разработке. –
Была и другая причина использовать DirectX 9 - если вам нужна поддержка старых видеокарт D3D9, вы можете использовать Shader model 3 (и 2a/2b) на них с DX9. DX 10 и 11 поддерживают их, но только с шейдерной моделью 2. – Adam