Я понимаю, что здесь есть множество вопросов о выборе между XNA и SlimDX, но все они касаются программирования игр.
Немного предыстории: у меня есть приложение, которое визуализирует сцены из XML-описаний. В настоящее время я использую WPF 3D, и это в основном работает, за исключением того, что WPF не имеет возможности визуализировать сцены вне экрана (то есть на сервере, не отображая их в окне), а также рендеринг в растровое изображение приводит к тому, что WPF возвращается к программному рендерингу.
Так что я столкнулся с необходимостью написать собственный рендер. Вот требования:
- Сочетание 3D и 2D элементов.
- Относительно небольшое количество элементов в сцене (десятки ячеек, десятки двумерных элементов).
- Большие сцены (квадрат до 3000 пикселей для печати).
- Будет отображаться только один кадр (т. Е. FPS не является проблемой).
- Маски непрозрачности.
- Пиксельные шейдеры.
- Откат программного обеспечения (серверы могут иметь или не иметь приличную карту gfx).
- Возможность визуализации за кадром.
Как вы можете видеть, это довольно простые вещи, и WPF может управлять ими довольно хорошо, за исключением проблемы невозможности экспортировать сцену.
В частности, мне не нужно много вещей, которые обычно нужны при разработке игр. Имея это в виду, вы бы выбрали XNA или SlimDX? Часть кода, не предназначенная для рендеринга, уже написана на C #, поэтому хочу придерживаться этого.