on_floating.
8 января 2013 г.
15 августа 2012 г.
Дартс
Создана мини-игра на флеше для сайта «Калужского перекрёстка»:
Игра предназначена для интересного проведения голосования за участников различных конкурсов, организуемых на сайте. К сожалению, финальная версия чуть менее интересна визуально.
11 февраля 2012 г.
Подарок ко Дню влюблённых
Идея к сожалению не моя. Уже отрисовав свою версию, я нашёл сайт с возможностью заказа — а оригинал оказался не так уж и хорош. Бывает и такое :)
Мой вариант немного пикантнее:
Мой вариант немного пикантнее:
Можно скачать в формате CorelDRAW и при необходимости изменить — объекты не объединены.
Для наших прекрасных половинок с чувством юмора :) В понедельник поеду печатать.
8 февраля 2012 г.
7 февраля 2012 г.
Kinect Status Component
В документации к SDK 1.0 приведены рекомендации для обеспечения «great end-user experience» при использовании Kinect-приложений. Основная идея — сделать панель, которая будет показывать изменение состояний устройства, появляясь и исчезая в нужный момент. Я решил начать знакомиться с новым SDK с создания такой панели, тем более затем её можно легко использовать в других проектах, расширяя функциональность:
Например, можно добавить выбор одного из нескольких подключенных к компьютеру контроллеров (теперь поддерживается до четырёх устройств). Мне нравится идея добавить к этой панели возможность калибровки с подсказками — чтобы показать правильно ли был размещён контроллер и попадают ли игроки целиком в кадр.
Панель наследует DrawableGameComponent и предоставляет основную функциональность. Добавил её в тестовое приложение, при подключенном контроллере видео от камеры вращается:
Можно пробовать разные сценарии, отключать питание и USB, смотреть результат.
Панель наследует DrawableGameComponent и предоставляет основную функциональность. Добавил её в тестовое приложение, при подключенном контроллере видео от камеры вращается:
- Kinect Status Component (XNA 4.0, Kinect for Windows SDK 1.0)
Можно пробовать разные сценарии, отключать питание и USB, смотреть результат.
6 февраля 2012 г.
Kinect for Windows и SDK 1.0
1 февраля в ряде стран начались продажи Kinect for Windows, вместе с которым наконец-то запустили SDK 1.0, который можно свободно использовать в коммерческих проектах. Сам контроллер к сожалению ничем кардинально не отличается — появился режим «Near Mode», переносящий рабочий диапазон ближе (40 см от устройства), а также был укорочен USB кабель.
У меня снова появилась возможность и время для экспериментов с Kinect; в моём проекте скоро понадобится анимация персонажей, поэтому хочу наконец-то доделать приложение для захвата движения (простите все кто давно ждёт исходники).
SDK несомненно стал лучше, хотя есть неприятные моменты:
- многое изменено и переименовано, поэтому старый код сразу не заработает (рекомендации по переходу на новую версию)
- неожиданно оказалось что «старый» Kinect для Xbox 360 можно использовать только для разработки — если на компьютере установлен Redistributable, то после запуска Kinect-приложения нам тонко намекнут купить «новую» версию. На мой взгляд крайне идиотское решение, которое всё равно обойдут
А я то надеялся что в устройстве будет больше отличий, всё-таки почти полтора года прошло...
28 ноября 2011 г.
Стереоскопическое
Неожиданно пришла идея — а что если сделать стерео отрисовку и посмотреть что получится на экране нового телевизора c пассивным 3D? Всегда относился к этой фиче скептически, но именно с поляризационной технологией смотреть киношки в 3D мне понравилось. Хотя, возможно на моё мнение повлиял удобный диван и вкусный кофе с молоком... Может быть :)
Итак, встроенный плеер умеет показывать стерео изображение из анаморфных вертикальной или горизонтальной стереопары. Значит кадрам придётся потесниться и влезть в максимальные для телевизора 1920 x 1080 с неизбежной потерей качества.
Считаем смещения от текущего угла поворота камеры на основе расстояния до её цели и половины расстояния между «глазами», настройку последнего лучше для теста повесить на клавиши. Строим обе матрицы вида и рисуем с их помощью кадры, которые затем соединяем на финальном изображении:
Итак, встроенный плеер умеет показывать стерео изображение из анаморфных вертикальной или горизонтальной стереопары. Значит кадрам придётся потесниться и влезть в максимальные для телевизора 1920 x 1080 с неизбежной потерей качества.
Используем:
- два RenderTarget-а для отрисовки кадров для левого и правого глаза, по одной из сторон в два раза меньше экрана
- реализацию направленной камеры с двумя матрицами вида
Считаем смещения от текущего угла поворота камеры на основе расстояния до её цели и половины расстояния между «глазами», настройку последнего лучше для теста повесить на клавиши. Строим обе матрицы вида и рисуем с их помощью кадры, которые затем соединяем на финальном изображении:
Подключаемся к телевизору по HDMI, включаем 3D и надеваем очки. Для демонстрации эти же кадры в режиме вычитания:
Кстати, оказалось что на телевизоре стерео всё-таки отображается чересстрочно. Значит можно написать шейдер, который будет на каждой второй строке отображать RenderTarget над основной отрисовкой без изменения пропорций кадров — потери в качестве уменьшатся и в телевизоре не понадобится что-то включать, но нагрузка на видеокарту соответственно ещё больше возрастёт.
26 ноября 2011 г.
Who Wants to Be a Dude?
Что-то давно я ничего не писал и не показывал, мне стыдно, надо исправляться :)
Довёл до ума преобразование точек (именно в таком виде можно получать информацию о скелете от Kinect) в кости с неплохим определением их положения в пространстве. С этим была связана некоторая проблема, которую побороть так и не удалось, зато удалось сделать её незаметной. Кстати, если кто-то знает лучшее решение — огромная просьба просветить.
Мне кажется получилось весьма неплохо, к тому же есть куча возможностей для дополнительного сглаживания результата — это и настройки в самом SDK, и интерполяция точек и кватернионов. Первый скелет рисуется линиями, можно сказать что это правильно соединённые начальные данные от Kinect, здесь заметно некоторое подёргивание. Если джоинт не удалось рассчитать и он достроен автоматически — линия становится красной. Третий скелет — демонстрация построенных костей с изменёнными пропорциями. И, наконец, центральным персонажем является небезызвестный Dude из примеров c App Hub, с настройкой работы с которым пришлось повозиться. Из-за фиксированных костей таза возникли проблемы с ногами, стопы спасти так и не удалось :) С правильным скелетом всё было бы отлично.
Довёл до ума преобразование точек (именно в таком виде можно получать информацию о скелете от Kinect) в кости с неплохим определением их положения в пространстве. С этим была связана некоторая проблема, которую побороть так и не удалось, зато удалось сделать её незаметной. Кстати, если кто-то знает лучшее решение — огромная просьба просветить.
Мне кажется получилось весьма неплохо, к тому же есть куча возможностей для дополнительного сглаживания результата — это и настройки в самом SDK, и интерполяция точек и кватернионов. Первый скелет рисуется линиями, можно сказать что это правильно соединённые начальные данные от Kinect, здесь заметно некоторое подёргивание. Если джоинт не удалось рассчитать и он достроен автоматически — линия становится красной. Третий скелет — демонстрация построенных костей с изменёнными пропорциями. И, наконец, центральным персонажем является небезызвестный Dude из примеров c App Hub, с настройкой работы с которым пришлось повозиться. Из-за фиксированных костей таза возникли проблемы с ногами, стопы спасти так и не удалось :) С правильным скелетом всё было бы отлично.
Думаю вполне имеет право на жизнь, а если ещё реализовать совмещение анимаций и корректировку движений в сохранённой анимации — совсем красота будет. Такой вот бюджетный Motion Capture ;)
10 ноября 2011 г.
XNA и Windows Forms
Как-то выкладывал на форуме xnadev.ru ссылку на наш пример реализации работы XNA на форме. Чтобы эта ссылка совсем не затерялась:
В Visual Studio 2010 в этом примере появился глюк, не дающий изменять иконки и изображения на контролах стандартными средствами. Побороть всё как-то недосуг :)
- XNA на Windows Forms (XNA 4.0)
В Visual Studio 2010 в этом примере появился глюк, не дающий изменять иконки и изображения на контролах стандартными средствами. Побороть всё как-то недосуг :)
9 ноября 2011 г.
Обновление примера: второй заход
Оказалось что с примером всё не так радужно как того бы хотелось и у него со второй бетой потекла память из-за пересоздания текстур. Исправил и адаптировал:
- обновление примера (XNA 4.0, Kinect for Windows SDK BETA 2)