Визуализация среды в DirectX - PullRequest
3 голосов
/ 25 мая 2010

Я хочу программировать для DirectX на C #, и у меня есть DirectX SDK, какой проект выбрать? Форма Windows или ....

Ответы [ 3 ]

3 голосов
/ 25 мая 2010

Сначала спросите себя: какова цель моего проекта?

Если вы собираетесь создавать приложения с красивыми 2D-3D-изображениями, вам просто нужно изучить WPF.

С другой стороны, если вы хотите создавать игры, требующие большого количества ресурсов, XNA - путь.

Создание приложений на XNA - большая боль, поскольку XNA создана для игр. То же самое можно сказать и о сборке игр с WPF.

В обоих случаях вам не нужно напрямую общаться с DirectX (что можно сделать через C ++). Если вы не создаете низкоуровневый движок рендеринга или (очень) высокобюджетную игру.

2 голосов
/ 25 мая 2010

Вы должны использовать XNA , который является заменой для Managed DirectX C #

Microsoft XNA («XNA's Not Acronymed») - это набор инструментов с управляемой средой выполнения, предоставляемый Microsoft, который облегчает разработку компьютерных игр и управление ими. XNA пытается освободить разработчиков игр от написания «повторяющегося стандартного кода» и объединить различные аспекты производства игр в единую систему.

Из статьи Википедии XNA .

Если вы не хотите просто визуализировать окна, но WPF может быть лучшим вариантом. Смотрите этот блог пост.

1 голос
/ 25 мая 2010

XNA:

XNA - это игровая инфраструктура, которая позволяет вам нацеливаться на несколько устройств легко (Windows, Xbox 360, Zune и теперь Windows Phone 7 с версией 4) с использованием таких языков .NET C #.

Обратите внимание, что между XNA и DirectX SDK нет отношения 1-1, например, он не предоставляет D3D10, D3D11 или некоторые интерфейсы, которые можно найти в D3DX.

.NET Wrappers:

Если вы ищете что-то похожее на нативный DirectX API, у вас есть 3 варианта:

  • Windows® API Code Pack для Microsoft® .NET Framework : оборачивает кучу собственных библиотек Windows, таких как DirectX, чтобы их можно было использовать из управляемого кода. Обратите внимание, что он не предоставляет API до D3D10, например D3D9.

  • SlimDX : то же самое, но только для DirectX и предоставляет Direct3D с версии 9 до 11 (SlimDX - это сторонний проект, не связанный с Microsoft).

  • C ++ / CLI и DIY обертка: если у вас нет особых потребностей, я бы не рекомендовал это.

Окончательный выбор зависит от ваших потребностей. Если это только для целей изучения DirectX API, но в C #, я бы сказал, выберите Windows API Code Pack или SlimDX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...