3D Engine с C#

Цель моего личного эксперимента - создать 3D-движок на C#.

Я немного прочитал о XNA и SlimDX. Я не уверен насчет XNA, потому что это, по сути, уже законченный движок, и поэтому мне нечего делать. SlimDX выглядит ближе к моим предположениям, но я был бы признателен за любые другие рекомендации.

У меня есть некоторый опыт использования OpenGL и написания простого движка для игр для Android и для ПК с использованием jogl.

Мне интересно услышать о чем-то похожем на уровень абстракции, доступный через Java / OpenGL, но на этот раз с DirectX.

2 ответа

Вы можете скачать старый DirectX SDK здесь, который даст вам обертки C# для Direct3D.

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

http://www.riemers.net/

Вы можете получить текущую версию XNA SDK здесь

В качестве оболочки DirectX C# есть также http://sharpdx.org/

Пара плюсов / минусов между Xna / SlimDX

Xna проста в освоении, и у вас уже есть некоторые встроенные функции для загрузки моделей, рисования текста, некоторые встроенные предустановки состояния рендеринга, математические классы / структуры. С другой стороны, его набор функций довольно ограничен по сравнению с возможностями новой видеокарты. У вас все будет готово и работает довольно быстро, но, с другой стороны, вы можете оказаться немного ограниченными для расширенных функций (тесселяция / вычисления / добавление буферов / глубина только для чтения и многие другие). Конечно, у вас еще будет много работы.

SlimDX / SharpDX довольно минимальны (в основном они охватывают функции DirectX), поэтому, если вы хотите использовать DirectX11 (если вы хотите использовать 9, перейдите на xna:), у вас будет немного работы для того, чтобы что-то работало во-первых, но вы будете иметь полную мощность DX и полную гибкость в том, как вы хотите организовать свой движок. Вам потребуется собственный импортер моделей, средство визуализации шрифтов (DirectWrite), менеджер состояний. Наиболее распространенная математическая часть уже существует (матрица / векторы), поэтому вам не придется беспокоиться об этой части.

Другие вопросы по тегам