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.