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

В момента съм в ранните етапи на проект и ми е трудно да реша коя рамка да използвам. Чувам хора да казват, че WPF е мъртъв, но изглежда, че това е (единственият?) начин за програмиране на приложение на Microsoft Surface. Това е една от възможните бъдещи цели на проекта, но не и основният фокус.

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

Като се има предвид, че това няма да е игра, а бизнес приложение, изкушавам се да изключа XNA, но от друга страна също изисквам добра производителност, тъй като ще има доста графични неща и ако е възможно поддръжка за високи разделителни способности/видео стена . Вземането под внимание на видеостена може би ще изключи WPF, тъй като прочетох, че ще използва хардуерно ускорение само ако разделителната способност е по-ниска от ограничението за размера на текстурата на GPU.

Нямам намерение да стартирам приложението в браузъра или телефона, като такъв се изкушавам да изключа 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, ще трябва да го рендирате в текстура, за да го използвате така или иначе в SL5 3D изглед (освен ако не е наслагване). Така че там няма голяма печалба. Не знам как работи 2D-3D композирането в WPF.

Вашето решение наистина зависи от това дали ще намерите полезна вградената функционалност, която SL5 или WPF предоставя за потребителски интерфейси? Виждайки, че всъщност правите свой собствен потребителски интерфейс, вероятно няма да се възползвате много от предоставения 2D интерфейс.

3D API, който предоставя SL5, е основно съкратена версия на XNA. 3D API за WPF изглежда, че просто изобразява модели вместо вас - изглежда не ви печели много повече от XNA. Ако имате убедителна причина да използвате XAML, WPF може да е добър избор. Иначе бих избрал XNA.

person Andrew Russell    schedule 24.04.2011