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

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

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

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

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

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

1 Ответ

1 голос
/ 24 апреля 2011

Я бы не стал исключать 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.

...