Silverlight 5, WPF или XNA для приложения визуализации 2d / 3d NUI?

В настоящее время я нахожусь на ранней стадии проекта и не могу решить, какой фреймворк использовать. Я слышал, как люди говорят, что WPF мертв, но, похоже, это (единственный?) Способ запрограммировать приложение Microsoft Surface. Это одна из возможных будущих целей проекта, но не основная цель.

Однако основной упор делается на двух- и трехмерные объекты в одном и том же виде (и поддержка kinect / voice). Некоторые из двухмерных объектов являются файлами SVG. Из того, что я прочитал в Интернете, непросто отрендерить графику SVG в XNA (или в Silverlight 5 3D, если на то пошло). Я видел несколько конвертеров SVG в XAML, но можно ли использовать результат этого в трехмерном представлении? Или наоборот?

Учитывая, что это будет не игра, а бизнес-приложение, я склонен исключить XNA, но опять же, мне также нужна хорошая производительность, так как будет довольно много графических элементов и, если возможно, поддержка высоких разрешений / видеостены . Принятие во внимание видеостены, возможно, исключит WPF, поскольку я читал, что он будет использовать аппаратное ускорение только в том случае, если разрешение ниже, чем предел размера текстуры графического процессора.

У меня нет намерения запускать приложение в браузере или телефоне, поэтому я склонен исключить Silverlight 5.

Будем признательны за любые советы. Спасибо!


person user695595    schedule 23.04.2011    source источник
comment
Умер не только WPF, но и Silverlight и WinForms! Я почти уверен, что HTML 5 - единственная еще не умершая технология. Но удачи в 3D.   -  person Gabe    schedule 24.04.2011
comment
@gabe Что ж, не будем пока называть все это мертвым. Прежде чем стандарт HTML 5 будет фактически разработан / принят и будет поддерживаться всеми браузерами, мы пройдем через 5 или более лет.   -  person user695595    schedule 24.04.2011
comment
LOL @Gabe. Вы забыли упомянуть, что компиляторы (и все компилируемые языки) тоже мертвы!   -  person jv42    schedule 26.04.2011


Ответы (1)


Я бы не исключил XNA на том основании, что она «для игр». Вы можете просто использовать только те части, которые необходимы для аппаратного ускорения 3D-рендеринга, и игнорировать остальное. Фактически, это то, что делает Silverlight 5!

Таким образом, вы можете обнаружить, что ваш код 3D-рендеринга в XNA и SL5 в любом случае один и тот же.

Вот вопрос о SVG в XNA. В основном ответ таков: вам нужно написать свой собственный аппаратно-ускоренный рендерер SVG - глупо сложная задача. Но если ваши файлы SVG никогда не меняются, вы можете просто использовать существующий программный рендерер, чтобы преобразовать их в текстуру.

Если вы преобразовали свой SVG в XAML, вам придется визуализировать его в текстуру, чтобы в любом случае использовать его в 3D-виде SL5 (если это не наложение). Так что большого выигрыша там нет. Я не знаю, как работает композитинг 2D-3D в WPF.

Ваше решение действительно зависит от того, считаете ли вы полезными встроенные функции, которые SL5 или WPF предоставляют для пользовательских интерфейсов? Учитывая, что вы в основном создаете свой собственный пользовательский интерфейс, вы, вероятно, не получите много пользы от предоставленного 2D-интерфейса.

3D API, предоставляемый SL5, по сути, является урезанной версией XNA. 3D API для WPF выглядит так, как будто он просто визуализирует модели для вас - похоже, он не очень выгоден вам по сравнению с XNA. Если у вас есть веская причина использовать XAML, тогда WPF может быть хорошим выбором. В противном случае я бы выбрал XNA.

person Andrew Russell    schedule 24.04.2011