miércoles, 21 de abril de 2010

Roboces Animados Versión 0.1 Publicada

El momento más esperado de la historia ha llegado. La primera versión de Roboces Animados está publicada en google code. Cualquier persona que quiera echarle un ojo y manosearla un poquito puede hacerlo, eso sí, respetando la licencia.

Tened claro que es una versión preliminar, falta aún de muchos detalles. La versión 1.0 será publicada en verano. Podéis comprobar las diferencias entre la versión 0.1 y la 1.0 en ESTE POST.

Los detalles de la licencia que tiene el software y de la obligaciones que esta implica los podéis consultar en ESTE POST.

La página oficial del proyecto en Google Code es ESTA. Desde ella podéis descargar todo el código.


martes, 20 de abril de 2010

Roboces Animados. Licencia

El proyecto Roboces Animados será liberado dentro de poco tiempo, y lo hará bajo licencia GNU General Public Licence. Esa licencia está caracterizada por los siguientes puntos.

GPL es una licencia con Copyleft fuerte, esto es obliga a distribuir el software original o sus programas derivados bajo la misma licencia. Es el método más utilizado en la liberación de software.

Cualquier distribucion del software o de programas derivados debeŕa incluir, también, los avisos de titularidad e indicar qué se ha modificado.

La licencia prohibe agregar ninguna restricción adicional sobre la distribución del software.

La elección de este tipo de licencia se debe, sobre todo, a que el software pertenece a una práctica para la carrera que aún está sin evaluar. Por tanto, debo aseguirarme que cualquier uso incluya el aviso de titularidad con mi nombre.

AQUÍ PODÉIS VER LA LICENCIA.

domingo, 18 de abril de 2010

Roboces Animados. Versión 0.1

En breve, publicaré la versión 0.1 de los Roboces Animados, dado que el curso de software libre que estoy haciendo termina en una par de días y tengo que terminar el proyecto. En este post, comentaré las cosicas que incluye con respecto a la versión 1.0, que debería ser publicada en veranito, después de entregarla como práctica de Informática Gráfica.

1. Geometría

La versión 1.0 de Roboces Animados incluirá la opción de visualizar distinas figuras geométricas (Cono, Cilindro, Cubo y tetrahedro). En la versión 0.1, se puede encontrar el código para dibujar cono, cilindro y cubo en la clase geometria, pero no está incluida su visualización en el programa. Esto es porque tengo que diseñar el escenario antes de decidir donde ponerlos. Además, según el guión de la práctica de IG, hay que crear una jerarquía de figuras geométricas (o sea, cada figura es una suclase de la clase figura geometrica), algo que es facilito, pero no demasiado interesante.

Estado: 50%

2. Transformaciones geométricas

En esta parte del trabajo, hay que crear un sistema jerarquico no demasiado complejo. Evidentemente, esto está totalmente cubierto con los robots articulados, pero se pide explícitamente un cochecito bastante cutre que se selecciona con una tecla. Este coche está incluido, aunque se visualiza por defecto, habrá que limitar esto en su momento.

Por otra parte, el guión del proyecto exige diversas formas de visualización: modo polígono, alambre, punto y ajedrez, de las cuales solo falta la última.

Estado: 95%


3. Modos de visualización y ficheros .ply


Los archivos con extensión ply sos ficheros que contienen todos los datos para dibujar una figura (sus caras, puntos, etc). Desde la version 0.1 e incluye una clase para gestinar un fichero ply, y dibujar la figura que contiene.





Para que las figuras se dibujen de una manera más o menos realista, existen distintos métodos de iluminación. En la versión 0.1 se incluyen los dos que conozco, la iluminación plana y la iliminación de Gouroud que se pueden aplicar a una figura con la cabeza de Beethoven. El modo de iluminación se puede cambiar con una tecla, así como la luz que inside en la escena.

En esta parte del trabajo, falta crear una esfera y aplicarle estos métodos de iluminación.

Estado: 80%


4. Cámaras

Dependiendo de la situación de la cámara y el objetivo de esta, la escena se observará de una forma u otra. Por eso, en este trabajo se ha implementado una cámara que se puede mover libremente con las teclas, así como también se puede mover el objetivo hacia el que mira. Para eso tenemos las clases cámara y visualización.



Existen, así mismo, 4 cámaras fijas que observan la escena. Además, los 4 primeros robots del grupo, si es que hay tantos, llevan una cámara subjetiva. Al seleccionar esta cámara con su respectiva tecla, podremos ver lo que ve el humanoide.

Con respecto a la versión 1.0 hay arreglar el control de la cámara que gira en torno al eje Y, que falla por algún bocado que he debido meterle en algún momento.

Estado: 98%


5. Animación.

La parte principal de la aplicación es la animación que se observa en la escena. Esta debe ser una animación conductista, en la que una serie de individuos (cuyo número se para como parámetro al programa) se mueve mostrando una conducta común, pero que varía en función de una serie de atributos cuyos valores se generan de forma aleatoria.

Nuestros individuos son los nombrados roboces (o robots, para los profanos). En la versión 1.0 tendrán una conducta bastante más interesante, pero en la 0.1 solo disponen de 4 estados: Buscar un objetivo (que será aleatorio), girar para mirar hacia él (con una velocidad angular aleatoria), andar hacia él (con una velocidad aleatoria que disminuye en funcion de una resistencia aleatoria) y descansar, cuando la velocidad llega a 0, hasta recargarla. La técnica de los robots para recargarse es girar con los brazos en cruz ¿?

Estado: 70%.




6. Escenografía

En la versión 0.1, todas las opciones vistas antes se realizan en un suelo verde. Para la versión 1.0, o quizás alguna posterior, se incluirá un escenario mucho más chulo, usando texturas y esas cosas.

Estado: 5%.


7. Documentación

Ya véis que el trabajo está todavía en una fase previa, pero de lo que más carece es de documentación. Con las prisas del curso, es difícil comentar el código y tal, y ya que los profesores apenas miran código, es la parte menos prioritaria. Por otra parte, es preciso realizar un manual de instruciones, sobre todo para explicar los controles del programa.

Estado: 5%.


sábado, 3 de abril de 2010

Roboces Animados

Informática Gráfica es una asignatura optativa de la carrera de Ingeniería Informática que se imparte en la Universidad de Granada. Gran parte de la evaluación de esta asignatura está basada en el desarrollo de un proyecto práctico.

Este proyecto es el que voy a liberar para el Curso de Software Libre. En realidad, todavía le falta bastante para estar acabado, por lo que iré publicando diversas versiones.

Programado en lenguaje C++ y usando OpenGL + GLUT, el proyecto se basa en una animación tridimensional, que sirve como introducción al manejo de gráficos 3D. En la animación, habrá un número indefinido de individuos que deben moverse mostrando un comportamiento que estará basado en una serie de atributos aleatorios, de manera que no habrá dos agentes que realicen los mismo actos.

He diseñado un robot articulado, como el que podéis ver en la foto, aunque con mejor color, porque este corresponde a un trabajo anterior en el que una de las funciones era pintarlo. Ya comentaré otro día más detalles sobre su comportamiento, pero cuidado, porque pueden ser bastante violentos.

Comenzó!

Hola, soy Tobas. Me recordaréis por otros blogs como tobasc.blogspot.com o por mis increibles artículos en Guiamania.

Actualmente estoy haciendo un curso de liberación de proyectos de software libre impartido por el Centro de Enseñanzas Virtuales de la Universidad de Granada. Como una de las tareas de ese curso, presento este blocesito que tiene el objetivo de ser la página web oficial de un proyecto que liberaré y del que ya hablaré dentro de poco tiempo.

Bienvenidos!!

De regalo, un gato riéndose, que no sirve pa ná, pero es precioso.