Домостроительство с Джоном Папа и Silverlight 5 на MIX11

Грег Дункан

Джон Папа (John Papa) показал нам некоторые интересные новые 3D-возможности Silverlight 5 с помощью демонстрации построения трехмерной модели дома, которая прошла на основном докладе второго дня конференции MIX11.

Демонстрация трехмерной модели строительства дома на MIX11

clip_image002

Для того, чтобы открыть и скомпилировать это решение, возможно вам понадобятся (мне, в любом случае, понадобились) два пакета: Microsoft Expression Blend Preview for Silverlight 5 и Microsoft Silverlight 5 Beta Tools for Visual Studio 2010 Service Pack 1.

После их установки вы сможете открыть и запустить решение. Не забывайте, это демонстрационное, а не завершенное приложение и в нем есть кое-какие неподключенные блоки, Но это клёвая демонстрация…clip_image004

clip_image006

Как и ожидалось, этот проект базируется на модели MVVM.

clip_image008

Основная магия приложения заключается в элементах управления.

clip_image010

Здесь приведена дополнительная информация из его сообщения Silverlight 5 3D Housebuilder Project Shown at MIX11.

Рабочий процесс приложения

  • Выбрать тип дома для начала работы с базовой моделью
  • Добавить детали (двери, окна) и задать их цвета
  • Изменить с помощью стрелок точку съемки камеры
  • Кирпичный дом имеет слои, так что можно удалить слои и посмотреть внутреннее пространство дома
  • Ознакомиться с окончательной сметой на материалы

Технические темы

  • Объединить пользовательский интерфейс Silverlight с XNA 3D, используя DrawingSurface
  • Загрузить и растеризовать трехмерную модель (частичная поддержка COLLADA)
  • Настроить графический конвейер для рендеринга
  • Загрузить и организовать множественное отображение текстур
  • Применить пиксельные и узловые шейдеры
  • Спроецировать двухмерные координаты мыши в трехмерное пространство
  • Использовать образец MVVM
  • Создать пользовательские элементы управления интерфейса
  • Полученные на шаге 2 образцы цветов связать с установщиками стилей для моделей дверей и ставней
  • Список конструкции с шага 3 использует внутренние шаблоны данных
  • Некоторые шаблоны из списка конструкции шага 3 применяют функцию RelativeSource Ancestor для загрузки их ItemsSource
  • В демонстрации установлена точка прерывания при определении стоимости двери в шаблоне двери (в списке конструкции на шаге 3) для иллюстрации отладки связывания данных. Вы можете установить прерывание, где требуется.

Итак, если наблюдали демонстрацию Джона во второй день конференции MIX11, или просто хотите увидеть, как работают новые 3D-штучки в Silverlight 5, этот код ждет вас…

Несколько ссылок, которые могут оказаться интересными (почти все скопированы из сообщения Джона):