lunes, 23 de noviembre de 2009

Usando HT en model viewer

Bueno, hace casi mas de un mes que no actualizo esto, va siendo hora de poner algo.

No es que no haya estado haciendo nada, pero gran parte del tiempo me la he pasado familiarizándome y aprendiendo a usar algunas dependencias que necesitaré para el resto del proyecto, como por ejemplo el Virtual Reality Private Network, que usaré para la comunicación entre los servidores y los clientes.
Si quereis ver algunas de las pequeñas pruebas que he estado haciendo, están en el repositorio.

Ahora mismo estoy trabajando en la parte del cliente del proyecto, y a la vez, desarrollando la primera demo. Tened en cuenta que es un work-in-progress, y de momento la cosa esta así:


Para la demo he decidido usar el GLC_Player, ya que es exactamente lo que estaba buscando: un visor de modelos 3d basado en OpenGL (bueno, en este caso GLC_lib que a su vez se basa en OpenGL) 3d con una interfaz sencilla, con un buen soporte a multiples formatos y con una estructura interna no demasiado complicada que no me diese demasiados problemas al adaptarlo. Precisamente ese último criterio fue el que me hizo descartar la otra opción, Open Scene Graph.

Por su parte, la librería para cliente va viento en popa, hace transparente para el programador toda la gestión de vrpn, y si todo va bien, cuando acabe adaptar cualquier programa que use OpenGL para usar HT será tan simple como sustituir las llamadas a gluLookAt y gluPerspective por las equivalentes en la librería y crear una instancia del cliente con las opciones que se quieran.

Hay que comentar que la parte del servidor usada en este video aun está en pañales, el tracker no da información de profundidad, no hay nada optimizado, el calibrado esta hecho totalmente a ojo, no hay ninguna clase de suavizado ni nada parecido (por eso la imagen del avion parece que vibre), etc... pero aun así el efecto conseguido no está nada mal.

En unos días espero tener una versión completa de las funciones mas importantes de la libreria (por ejemplo ahora mismo solo funciona el tracking de frente, a la que se gira el modelo deja de funcionar bien) y poder ponerme a trabajar en el servidor.
También es posible que suba un vídeo de esta misma Demo usando una versión del servidor usando el wiimote, mostrando como se ve desde el punto de vista del usuario.

jueves, 15 de octubre de 2009

Primera aproximación al headtrack con wiimote

Bueno, después de estar liado mirando las posibilidades de las demos de blender y Google Street View, y de haber refrescado mis habilidades con OpenGL, que estaban bastante oxidadillas, aquí está la primera demo quick & dirty del tracking con wiimote.

Es una versión muy simple, similar a otras muchas demos que se pueden encontrar por la red. Mas que nada hacer este pequeño programa me ha servido para empezar a familiarizarme con las librerías (sobretodo cwiid), desempolvar el OpenGL que hacía años que no tocaba, y empezar a hacerme una idea de lo que va a hacer falta hacer para el proyecto completo.
Como una imagen vale mas que 1000 palabras, aquí os dejo el vídeo:



Sí, el libro de OpenGL lo he leído, no solo lo uso para apoyar el wiimote. Y como aun no tengo unas gafas molonas con leds infrarrojos como Johhny Lee, me tengo que conformar con usar el mando de la tele del comedor como marcador infrarrojo.

El código de la demo está disponible en el repositorio de google code. También podéis ver la versión sin wiimote (OpenGl, navegación por teclas), o si queréis mas del wiimote una versión mas vieja que no tiene interfaz gráfica, usa los 4 leds para indicar la dirección de la fuente IR.

jueves, 1 de octubre de 2009

Conectando el wiimote a Suse

La primera parte del proyecto será implementar la idea de Johnny Lee, pero en linux. El primer paso era conseguir conectar el wiimote al pc y ver que todo fuese compatible.
De momento he probado con exito la libreria cwiid (mas información en wiili y en su página oficial). He podido instalar la versión más reciente del repositorio sin demasiados problemas (solo algunas dependencias que no están del todo bien listadas).

Aqui teneis el GUI de prueba que viene con cwiid funcionando en mi portatil (tengo que comprar un adaptador Bluetooth para el sobremesa):

martes, 29 de septiembre de 2009

Poniendo el proyecto en marcha

Bueno, me ha costado volver de las vacaciones, pero si este proyecto ha de salir adelante, mas vale empezar cuanto antes. Para poder mantener un control de versiones y copias de seguridad el codigo lo subire a Google code. También he estado trabajando en la descripción incial del proyecto. En cuanto tenga un rato pondré los links a ambos en el menú de la derecha.

EDIT: Ok, subida la introducción y descripción inicial al proyecto

sábado, 15 de agosto de 2009

SUSE Studio

Hace un par de semanas leí una noticia sobre este nuevo servicio de Novell que permite crear versiones personalizadas basadas en su distro desde el propio navegador, el problema es que aun esta en pruebas y se accede por invitación.
Presentar todo el proyecto en un live CD con todo instalado es una de las cosas que me gustaria hacer, asi que pedí la invitación al servicio explicando mis intenciones y por fin he recibido la respuesta.
"Thank you for your interest in SUSE Studio, a new service that makes it quick and easy to create and test software appliances from your web browser. We are pleased to invite you to try SUSE Studio."

lunes, 3 de agosto de 2009

Detectando caras!

Bueno, despues de un par de problemas y muchos megas bajados del repositorio de OpenCV, he conseguido instalar la última version testeada (1980) siguiendo las instrucciones del wiki, ya que la última version (la 2006) daba errores.

Aqui la demo de facedetect funcionando:
De todas formas el tiempo para procesar cada frame es largo, muy largo como para ser interactivo.

lunes, 27 de julio de 2009

Prueba de concepto

Para estrenar la cuenta de Youtube subo este video corto que hice como prueba de concepto de como podria verse mi escritorio si aplicasemos headtrack y pusiesemos sus elementos en varias capas.



Aunque tenia ya el pfc en mente, lo hice para aprender a animar cosas en blender (fue el primer video animado que hice!), asi que tampoco espereis maravillas :P