Archive for March, 2010

los lentes 3d

Friday, March 19th, 2010

Esto del 3d siempre me a llamado la atencion, muchas veces me quedaba jugando con las imagenes que daban mis ojos izquierdo y derecho y todos esos efectos curiosos que son descartados por la gente. Por ejemplo, poner un dedo cerca de tus ojos pero viendo mas alla el dedo se ve doble, o si empujas tus globos oculares vez todo doble (no lo recomiendo, duele) si pones tu mano en tu nariz(como cuando te cubres de un piquete de ojos a la “los 3 chiflados”) con un ojo vez la palma y con otro el dorso. No parece pero lo anterior si tiene que ver con el 3d XD…mas o menos.

Las imagenes estereoscopicas siguen el principio de que cada ojo recibe una imagen diferente, asi que se mandan 2 imagenes, y con el uso de lentes de algun tipo se filtran estas imagenes para que a cada ojo llegue la correspondiente. Antes se usaba que te daban lentes con diferentes colores, los cuales se encargaban de filtrar las imagenes por los colores, despues se empezo a usar la luz polarizada y ahora viene lo de intercalar las dos imagenes muy rapido. Hay tecnologias mas avanzadas todavia en desarrollo, pero estan demaciado lejanas para mi.

En algunos videos de youtube que hablan al respecto, me he topado con gente que pregunta como se pueden usar los lentes real 3D (los que te dan en el cine) en la pantalla de su computadora. Pues esto no es posible por que la pantalla no esta hecha para polarizar luz. En el cine se usan 2 proyectores con un filtro en posicion diferente en cada uno, y las pantallas no tienen ningun filtro de este tipo.

La tecnologia de las pantallas nuevas consiste en mostrar una imagen para uno de tus ojos, y luego la otra a una frecuencia muy muy rapida, los lentes que te tienes que poner obscurecen un vidrio y luego el otro a la misma frecuencia, se conectan de manera inalambrica a la tv para sincronizarse. Es algo muy curado, pero como los lentes tienen tecnologia, van a ser unos lentes muy caros (700 dolares? 900?).

Yo queria hacer un juego con imagen en 3d, no quiero gastar mucho asi que en realidad solo me queda lo de hacer los lentes rojo-cyan (de preferencia tienen que ser colores contrarios para que no se vea doble).

Hoy despues de muuucho tiempo de planearlo, hice un prototipo de lentes (me salieron tan sarras que decidi llamarles prototipo). Los colores que consegui de papel celofan no eran los indicados. “Esto no se queda asi!” tweetié, y programé un swf donde puedo mover el color de dos circulos. La idea era buscar los tonos perfectos para que cada uno se viera en un solo ojo cada uno. La operacion falló, los colores que mas cerca estubieron fueron el amarillo y el cyan pero aun se verá doble…

Nimodo, tendre que  conseguir dos cañones a ver si puedo polarizar la luz usando los cristales de los lentes real 3d. Tambien estoy practicando para cerrar un ojo y luego cambiar el ojo cerrado de lado, solo tengo que alcanzar una frecuencia de cientos de veces por segundo y ya! lo dificil va a ser sincronizarme con la pantalla. O ultimadamente un pinche headtracking que no se raja.

PD: solo queria escribir de mis lentes, pero solte escribiendo de lo demas XD. Y como el objetivo no era ser informativo pues muchos datos carecen de exactitud sorry.

los lentes

water wave

Monday, March 15th, 2010

Esto es lo que llevo del efecto de ondas de agua. No lo habia subido por que necesitaba poner una manera de controlar unos valores para jugar con ellos.

Estaba batallando tratando de agregar unos sliders, pero todo mundo los pone con mxml, y yo uso puro AS3, no encontre ningun ejemplo asi. Pero gracias a bit-101 y a sus componentes no tube que quebrarme la cabeza. Los queria solo para probar asi que me cayeron bien.

Los sliders:

  • “center” controla el punto en el que parece que las ondas salen hacia los lados.
  • “WaveLength” controla el largo de una onda en pixeles.
  • “WaveHeight” controla el alto de una onda en pixeles (desde el punto mas bajo hasta el mas alto).
  • “Curves” es el numero de curvas que se usan para dibujar toda la superficie.

Lo que me he dado cuenta (y quiero arreglar en versiones futuras) es que si el numero de curvas y el WaveLength son muy bajos, se empieza a ver feo, gelatinoso y a veces irregular. Mi idea es que en base al WaveLength calcular un  numero de curvas apropiado.

Lo que quiero hacer es un MovieClip que sea importado a la libreria de cualquier proyecto flash. Y que una persona solamente arrastre este movie clip desde la libreria hasta su animacion sin necesidad de saber nada de actionscript. Por ejemplo se puede hacer un movieclip y ahi adentro poner el movieclip waterwave y los parametros Wavelength y waveHeight estarian dados por el ancho y algo de este movie clip, es decir que solo tengas que estirar el dibujo del clip para controlar como se veria la animacion. Esto te dejaria tambien estirar el clip con una interpolacion de movimiento (motion tween).

Lo malo es que no tengo el adobe flash, asi que no puedo hacerlo de momento.

Perdi mucho tiempo averiguando como hacer una onda senoidal con curvas de besier, y encontre un buen ejemplo, sin embargo se empezo  complicar mucho a medida que lo modificaba, asi que decidi hacerlo yo solo desde cero. Lo que hize fue calcular los puntos de control con la función Math.sin, y los puntos anchor los puse justo a la mitad de los dos puntos de control adyacentes. Esto no es una onda senoidal perfecta, pero con ciertos parametros se ve mucho mejor de lo que esperaba.

Esperemos que pronto tenga el movieclip para subirlo (vendrá con el codigo fuente).

dibujar programando en flash

Monday, March 8th, 2010

Hace un par de semanas visité a unos amigos para jugar Guitar Hero, y ademas de jugar un poco, mi amiga Eli me mostro algunas de sus  animaciones flash favoritas, una de ellas fue Tarboy. Muy buena, me gusto mucho el estilo, con la musica que queda a la perfecto con la animación, bonitos efectos y de historia interesante.

puedes verlo en newgrounds donde esta en formato swf. O puedes ver el video aqui:

Uno de los efectos cool que tiene el flash, es como se ve el agua (es la ondulacion que se puede ver en el frasco que tiene el abuelo casi al final en 5:27), cosa que mi amiga Eli comentó que le gustaria saber como hacerlo. Yo me apresuré a decir que podria hacerlo con codigo. Y como ella me adora me dijo algo como “a la bestia que genial!”. Decidí tratar de hacerlo, pero al sentarme recorde que no podia hacerlo como lo habia pensado. Ademas que no habia visto bien el efecto XD, era un poco mas complicado de lo que recordaba. En fin, aun creo que puedo hacer el efecto, solo que tardaré un poco mas de lo planeado.

Me parece divertido y un reto lograr efectos visuales en flash, sin haber usado las herramientas visuales de macromedia o adobe flash IDE. Cuando hize el tetris fue de esa forma, cada cuadrito lo dibujo escribiendo la posicion el ancho y alto, en vez de dibujar el cuadrito en paint, gimp o alguna otra aplicacion para editar imagenes.

Buscando por ahi me encontre con un sitio interesante llamado yoambulante, es la pagina personal de una persona que tiene un par de proyectos así, aunque parece que lleva poco de haber hecho la pagina. Vean que el baner de la pagina es uno de estos proyectos, den click en el cesped y se moverá como si soplara el viento, y parece ser que esta de dia o de noche dependiendo de la hora en la que entres a la página. Piensen en que no se usó ningun archivo de imagen para dibujar el cesped, solo lo hizo con lineas desde el código (especificando punto de inicio, punto final y punto de control si se trata de una linea curva). El otro es el proyecto del globo, aunque solo la cuerda es dibujada con codigo, el globo si es una imagen de un archivo.