La siguiente animación la hice en una asignatura que tuve hace 2 años (técnicas gráficas). Hace poco, haciendo limpia y copias de seguridad lo encontré y lo grabé por demanda de algunos de mis compañeros de clase.
La animación está hecha con OpenGL sobre C#. Para poder usar OpenGL, incluí en el proyecto TAO Framework que es un conjunto de clases para .NET y Mono con OpenGL, OpenAL, FreeGlut entre otros.
Cómo se hizo
La aplicación está escrita en C# usando la plataforma .NET.
La idea es muy sencilla.
- Un rectángulo donde se proyecta la imagen de fondo. En el método timer, lo que se hace es ir variando poco a poco el color del material.
- Una esfera, donde se le ha incorporado la imagen del ojo modificada para que no quede la imagen desplazada. En el método timer se va incrementando el ángulo de rotación.
- El conjunto de esferas más pequeñas (20) que salen del ojo. Las esferas se van insertando una encima de la otra (trasladando la coordenada de las íes en una distancia igual a la mitad del diámetro).
Por ejemplo, el bucle donde se van apilando las esferas es el siguiente:
______________________________________________________________________for (int i = 0; i < 20; i++) { Gl.glTranslated(0, 0.65, 0); Gl.glRotated(-yrot, 1, 1, 1); //DrawSphere2(); Gl.glCallList(3); }______________________________________________________________________
Donde el método Gl.glCallList(3) es la lista de presentación 3 englobada en el método DrawSphere2.
______________________________________________________________________private void ListDrawSphere2() { Gl.glNewList(3, Gl.GL_COMPILE); DrawSphere2(); Gl.glEndList(); } private void DrawSphere2() { Gl.glPushMatrix(); Gl.glEnable(Gl.GL_TEXTURE_2D); Gl.glTexEnvi(Gl.GL_TEXTURE_2D,
Gl.GL_TEXTURE_ENV_MODE, (int)Gl.GL_DECAL); //Se usa la textura que el usuario selecciona en el combo Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture[7]); Gl.glFrontFace(Gl.GL_CCW); Glu.GLUquadric p = Glu.gluNewQuadric(); Glu.gluQuadricDrawStyle(p, Glu.GLU_FILL); Glu.gluQuadricNormals(p, Glu.GLU_SMOOTH); Glu.gluQuadricTexture(p, Gl.GL_TRUE); Glu.gluSphere(p, 1.5, 30, 30);
Gl.glPopMatrix(); }
______________________________________________________________________
Música y Foto
- La música es un fragmento de la canción de Tool (Intension) del álbum Vicarious (2006). Aunque se ha modificado ligeramente con el Audacity.
- La foto del ojo se ha modificado con el Photoshop (aquella época en la que lo usaba), aunque con el GIMP se puede hacer también y queda igual.

0 comentarios:
Publicar un comentario en la entrada