Необходимое условие для изучения DirectX - PullRequest
4 голосов
/ 14 ноября 2009

Я из .net C # фона и хочу изучать DirectX. У меня есть знания C ++, но я довольно новичок в мире графики.

Меня немного смущает вопрос о том, как начать изучать DirectX, должен ли я начать изучать Direct напрямую или купить основную графическую книгу, такую ​​как Hern and Baker, а затем перейти к DirectX.

Какая книга рекомендуется для изучения базовых графических понятий, херн и пекарь? Есть ли какая-нибудь книга по Directx, которая также охватит графические концепции?

Я думаю, что держать базовую графическую книгу всегда хорошо, потому что я могу использовать ее как справку в любое время

Есть предложения от экспертов здесь?

Ответы [ 3 ]

9 голосов
/ 14 ноября 2009

Вы говорите, что у вас есть фон C #, поэтому я предполагаю, что вам удобнее работать с C #, чем с C ++. Кроме того, вы говорите, что знаете C ++, поэтому я предполагаю, что у вас уже есть понимание управления памятью.

Если вы просто хотите учиться и чувствовать себя более комфортно с графическим конвейером, вам следует проверить SlimDX и XNA . Они оба позволяют вам использовать DirectX без необходимости погружаться в C / C ++.

Что касается того, нужно ли сначала изучать теорию или API, я не думаю, что вам следует сначала изучать теорию или API. Имеет смысл изучать их асинхронно. Возьмите книгу по теории, но в то же время возитесь с API.

Я настоятельно рекомендую XNA. Люди обычно говорят, что вам следует придерживаться C ++, если вы хотите разрабатывать игры, но я категорически не согласен. XNA позволит вам изучить больше игровых концепций высокого уровня за меньшее время, чем если бы вы использовали только C ++ и DirectX. Вы сможете сосредоточиться на изучении того, почему вы что-то делаете, а не на том, как управлять памятью. Если в будущем вы решите, что разработка игр является серьезной страстью, то C ++ - это путь. Вы обнаружите, что графический конвейер XNA тесно отражает DirectX 9 и не будет иметь особых проблем при переходе на C ++.

Кроме того, DirectX 9 должен быть достаточно хорош для любого новичка, и он даст вам лучшее понимание того, как и почему все изменилось в 10 и 11. Однако, если вы действительно хотите использовать новейшие технологии, вы можете попробовать SlimDX, который Оболочка C # для DirectX.


С учетом всего вышесказанного, XNA предлагает множество простых для понимания образцов, с которыми вы можете начать играть на их странице образовательного каталога . Также ознакомьтесь с ziggyware (большая коллекция учебных пособий по xna).

Кроме того, есть много блогов, которые вы можете проверить. Многие из них имеют отличные учебники по ним. Вот некоторые из моих голов:


Наконец, вот две графические книги, которые я очень рекомендую (они довольно сложны и прослужат вам долго):

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

2 голосов
/ 01 сентября 2011

Ну, я должен не согласиться с опцией C #. Если у вас нет срока, чтобы закончить игру, то я рекомендую использовать язык, который вас больше всего учит. Работа с трехмерной графикой - МНОГО об управлении, поэтому, если вы пишете ее, вы на самом деле не учитесь, а просто используете ее, т.е. вам нужно управлять не только памятью, но и фактическими вызовами рендеринга, которые вы делаете, и изменением состояния устройства. Многое, чего вы никогда не узнаете по аводированию на более низком уровне, и которое применимо и к другим API, таким как OpenGL или для других типов устройств. , Я думаю, что лучший способ узнать, как работает API, - использовать API вместо набора вспомогательных библиотек. Вместо этого вы можете использовать вспомогательные библиотеки, когда они вам действительно нужны (в любом случае их можно найти в их версии C ++).

В DX SDK вы также можете найти Sample Browser с некоторыми примерами приложений с их документацией, и у вас есть DirectX Utility Toolkit, который содержит инфраструктуру и библиотеки для создания приложения DirectX, не беспокоясь о таких неприятных вещах, как устройства как перечисление и конфиг. Он также поставляется с системой графического интерфейса и диалогом настроек для конфигурации устройства. Я сомневаюсь, что вы можете найти их в C #, и они очень хороши, если вы хотите начать с DX.

Некоторые ресурсы, которые помогли мне, когда я начал, были учебники по zophusX

и книга под названием «Введение в программирование трехмерных игр с помощью DirectX 9.0c», написанная Фрэнком Д. Луной (сейчас есть версия для DX10) и, вероятно, книга Стефана Цербста «Программирование игрового движка 3D» также помогла мне понять некоторые вещи о том, как лучше работать с API. Хотя, возможно, вам придется купить их, чтобы прочитать их. Их полезно начинать как с некоторой теории, так и с использованием API одновременно.

Я думаю, что если ваша цель - научиться создавать игру, то вы можете использовать любой язык / библиотеку, которую хотите, вам даже не нужно знать язык программирования :), но если ваша цель - изучение DirectX и графических API, вы должен определенно начинаться с API C ++, который является «фактическим» DX.

1 голос
/ 16 ноября 2009

Если у вас есть немного дополнительных денег, я был очень впечатлен графическими курсами по DirectX от http://www.gameinstitute.com. Учебник, который они предлагают, был очень хорош в отношении других книг о DirectX, которые я видел. Первый модуль DirectX Graphics я начинаю с небольшого математического обзора и некоторых основ 3D, прежде чем погрузиться в настройку и использование DirectX. К концу первого модуля вы создадите текстурированный рендеринг ландшафта и сцену в помещении.

В целом курсы не такие дорогие, если учесть, сколько стоят книги по этой теме. Я определенно рекомендую проверить это!

...