Расширенная реальность, 3D, веб-камера, бета-версия Silverlight 5 и вы

Грег Дункан

Прежде всего, посмотрите видео SLARToolkit – Silverlight 5 3D Augmented Reality Demo от Рене Шульте (Rene Schulte), а потом будем говорить…

Да, я знаю, что наборы инструментов стоят по двое в ряд, но вы понимаете, насколько это круто? Принимая во внимание, что только вышла бета-версия Silverlight 5, как это круто, и как я мог не заметить этого проекта?

Silverlight 5 3D + SLARToolkit Augmented Reality = Победитель!

Прошел почти год с того момента, когда я написал пример для моего проекта с открытым кодом Silverlight Augmented Reality Toolkit – SLARToolkit. Выход нового аппаратно ускоренного 3D API в составе Silverlight 5 стал прекрасным поводом сделать, наконец, новый пример.

В моем предыдущем сообщении в блоге я привел описание всех новых возможностей Silverlight 5 beta и комментарии по новым низкоуровневым XNA 3D API.

В этом сообщении показана новая демонстрация для SLARToolkit, усиленного ускоренным рендерингом, использующим графический процессор для отрисовки некоторых удачных эффектов с частотой 60 кадров в секунду. Вы можете попробовать живой пример, если у вас установлен пакет Silverlight 5 beta или посмотреть видео в противном случае.

...

Как это работает

В примере используется видеопоток с камеры, с помощью которого заполняется прямоугольная область, видеопоток постоянно захватывается и передается методу BitmapMarkerDetector для определения маркеров. Результат содержит матрицу преобразования для каждого найденного маркера, который затем применяется для преобразования трехмерных объектов и элементов TextBox.

Чтобы достичь желаемого эффекта используются пара шейдеров для вершин и пикселов. Были использованы приемы подобные Phong shading, Bump mapping и Refraction mapping (стекло). Снимок с веб-камеры передается как текстура преломляющему пиксельному шейдеру для моделирования эффекта стекла.

Посмотрите исходный код, если вам интересны практически важные детали. Пожалуйста, отметьте, что я недавно написал введение в пиксельные шейдеры для Coding4Fun.

...

Исходники? Да, конечно...

SLARToolkit – Silverlight Augmented Reality Toolkit

clip_image002

SLARToolkit – это библиотека расширенной реальности для Silverlight, созданная для приложения расширенной реальности, работающих в режиме реального времени с Silverlight так легко и быстро, как только возможно. Она может использоваться совместно с Webcam API, появившимися в Silverlight 4 или вместе с любыми другими средствами CaptureSource или WriteableBitmap. SLARTookit основывается на признанных наборах NyARToolkit и ARToolkit. В SLARTookit применяется модель двойного лицензирования и он может использоваться как в приложениях с открытым исходным кодом, так и в закрытытх приложениях при определенных условиях. См. страницу лицензирования.

...

Возможности

  • Прямая поддержка Silverlight CaptureSource
  • Встроенная поддержка для аппаратноускоренных 3D API из Silverlight 5
  • Гибкость за счет обобщенных типов и детектора WriteableBitmap
  • Определение множества маркеров
  • Простые маркеры черного квадрата
  • Пользовательские маркеры
  • Производительность реального времени
  • Простота в использовании
  • Документация, включающая пошаговое руководство пользователя
  • Базируется на проверенных алгоритмах и приемах программирования
  • Использование библиотеки Matrix3DEx

Снимок последней версии:

clip_image004

Я легко загрузил и запустил решение (хотя я занимался лишь с версией без SL5 бета, так как на моей машине она не установлена).

Снимок одного из решений:

clip_image006

Так что если вам хочется поиграть с чем-то забавным и прикольным на этой неделе, что может быть круче расширенной реальности? clip_image008