Расширенная реальность, 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
SLARToolkit – это библиотека расширенной реальности для Silverlight, созданная для приложения расширенной реальности, работающих в режиме реального времени с Silverlight так легко и быстро, как только возможно. Она может использоваться совместно с Webcam API, появившимися в Silverlight 4 или вместе с любыми другими средствами CaptureSource или WriteableBitmap. SLARTookit основывается на признанных наборах NyARToolkit и ARToolkit. В SLARTookit применяется модель двойного лицензирования и он может использоваться как в приложениях с открытым исходным кодом, так и в закрытытх приложениях при определенных условиях. См. страницу лицензирования.
...
Возможности
- Прямая поддержка Silverlight CaptureSource
- Встроенная поддержка для аппаратноускоренных 3D API из Silverlight 5
- Гибкость за счет обобщенных типов и детектора WriteableBitmap
- Определение множества маркеров
- Простые маркеры черного квадрата
- Пользовательские маркеры
- Производительность реального времени
- Простота в использовании
- Документация, включающая пошаговое руководство пользователя
- Базируется на проверенных алгоритмах и приемах программирования
- Использование библиотеки Matrix3DEx
Снимок последней версии:
Я легко загрузил и запустил решение (хотя я занимался лишь с версией без SL5 бета, так как на моей машине она не установлена).
Снимок одного из решений:
Так что если вам хочется поиграть с чем-то забавным и прикольным на этой неделе, что может быть круче расширенной реальности?