Вы говорите, что у вас есть фон C#, поэтому я собираюсь предположить, что вам удобнее C#, а затем C++. Кроме того, вы говорите, что у вас есть знание C++, поэтому я предполагаю, что у вас уже есть понимание управления памятью.
Если вы просто хотите учиться и стать более комфортным с графическим конвейером, вы должны проверить SlimDX и XNA. Они оба позволяют использовать DirectX без необходимости погружения в C/C++.
Что касается того, следует ли сначала изучить теорию или API, я не думаю, что вы должны сначала сделать это. Имеет смысл изучать их асинхронно. Возьмите книгу по теории, но общайтесь с API одновременно.
Я настоятельно рекомендую XNA. Люди обычно говорят, что вам следует придерживаться C++, если вы хотите разрабатывать игры, но я не знаю, категорически против. XNA позволит вам учиться более высоким игровым концепциям за меньшее время, чем если бы вы использовали только C++ и DirectX. Вы сможете сосредоточиться на изучении того, почему вы что-то делаете, а не как управлять памятью. Если в будущем вы решите, что разработка игры является серьезной страстью, то, во всяком случае, C++ - это путь. Вы обнаружите, что графический конвейер XNA тесно связан с DirectX 9 и вряд ли переместится на C++.
Кроме того, DirectX 9 должен быть достаточно хорош для любого новичка, и это даст вам лучшее представление о том, как и почему все изменилось в 10 и 11. Однако, если вы действительно хотите использовать новейшие технологии, вы можете попробовать SlimDX, который является оболочкой C# для DirectX.
При всем этом сказал, XNA предлагает множество легко понять образцы, которые вы можете начать играть с их educational catalog page. Кроме того, ознакомьтесь с ziggyware (большая коллекция учебников xna).
Кроме того, есть много блогов, которые вы можете проверить. Многие из них имеют отличные учебные пособия.Вот некоторые с верхней части моей головы:
Наконец, вот 2 графика книга s, что я очень рекомендую (они довольно сложны и прослужит вам долгое время):
Они не связаны непосредственно с DirectX, а они охватывают теорию каждый разработчик графики должен знать. (от линейной алгебры к текстурному картированию до рендеринга volumetrix ...)
Этот вопрос удален. – Signcodeindie
Удалено, спасибо. –