Articulo publicado en la desaparecida revista "Posibilidades Amiga" publicada por Chepe Nicolli en 1993, como una explicación de como funcionan los programas de animación . Las bases generales siguen siendo las mismas, solo que en lugar de MS DOS  y windows 311, ahora usamos windows  10,  McPro o render farms, con maquinas miles de veces más rápidas

¿Porque vemos un objeto?.

Esta es la clase de pregunta que generalmente, solo los niños y los físicos se hacen, debido a que parece que la respuesta es obvia, pero ¿Lo es?. Sabemos que vemos los objetos porque la luz de una fuente se refleja en su superficie y de ahí va a nuestra retina. En realidad no es tan simple.
 
Cuando un rayo de luz llega a una superficie, pueden pasar varias.

1) es absorbida parcialmente y otra reflejada.
2) es absorbida y reflejada en otro color.  
3) es reflejada en la superficie 
4) atraviesa la superficie y es reflejada desde el interior
5) atraviesa la superficies, se deforma y se refleja.


Y para complicarnos la vida, las tres cosas pueden pasar al mismo tiempo. Todo eso, afecta como vemos el objeto. Toda la tecnología actual de animación por computadora, esta basada en poder estudiar estos detalles, y tener un realismo tal, que nos haga creíbles esos mundos virtuales.

La absorción, es el responsable del color del material, al segundo fenómeno lo llamamos reflexión y es lo que nos permite ver al objeto, y el tercer fenómeno es la refracción.
 

Los griegos y los algoritmos...


Los griegos creían que al fijar la vista en un objeto, una especie de rayos salían de nuestros ojos y la forma en que rebotaban esos rayos era lo que nos permitía ver, ¿les suena tonto?. Pues asi es exactamente como funciona uno de las técnicas de generación de imágenes tridimensionales mas realistas: "Ray tracing".
 
Los programas Ray Trace siguen la trayectoria de cada rayo de luz como si salieran del ojo del observador, y aplican las leyes de la física a cada una de las interacciones del rayo con la escena, en sentido inverso a como ocurre en la naturaleza. Esto requiere de numerosos cálculos para cada pixel de la pantalla y la exactitud de la escena esta limitada solo por el tiempo de computo disponible.

Por supuesto que se ha tratado de simplificar el proceso, ¿Porque trabajar pixel por pixel?, si podemos proyectar cada plano a la pantalla bidimensional, de la misma manera que un arquitecto hace una perspectiva.
 
Lso primeros programas de animación y generación de imagen, utilizaban modelos de lineas, llamados "WireFrame", pero ver todas las lineas de un objeto era muy confuso por lo que se desarrollaron programas para remover las lineas escondidas, posteriormente se paso a modelos de superficies planas, sin embargo estos programas hacían que los objetos se vieran faceteados, asi que para dar continuidad en las superficies y dar la ilusión de superficies curvas, se desarrollaron algoritmos de sombreado, que interpolan las caras del modelo , sin necesidad de tener que creas muchas facetas podemos tener superficies lisas y curvas.
 
Dos de los algoritmos mas populares son los de Gourard y Phong, pero no son los unicos. Asi que cuando vemos una superficie curva generada en computadora, en realidad esta formada por muchos poligonos planos, suavizados por un algoritmo.
 
El primero algoritmo es mas sencillo y mas rápido, pero presenta ciertos problemas en las superficies convexas, en cambio el algoritmo Phong nos permite un manejo mas elaborado de luces y texturas. Algunos programas como LightWave y sculpt 3d, solo trabajan con Phong y otros programas como "3D Studio"  permite calcular algunos objetos con Phong y otros con Gourard.

En resumen, los programas que trabajan con Ray Trace son mas lentos, pero permiten manejos de sombras, transparencias y refracciones que no se pueden lograr usando exclusivamente los algoritmos Phong y Gourarg, Existen programas que utilizan mezclas de estas dos técnicas.
 

De donde sale el color


Para entender que pueden hacer por nosotros estos programas, regresemos a nuestra clase de física.

Empecemos por recordar que la luz blanca es una mezcla de todos los colores. Afortunadamente podemos simplificar un poco y hacer una convincente luz blanca, mezclando solo el rojo, el verde y el azul. Así que tomemos nuestro rayo de tres colores y para dirigirlo a una superficie, parte de la luz es absorbida y cada color responde distinto en cada material y esto nos da el fenómeno que llamamos color. Si el objeto solo absorbe el rojo, nosotros vemos la superfice como una mezcla de verde y azul, es decir amarillo!!!!. No me cree, cargue su programa de dibujo favorito, y en la opción de modificar paleta tome un blanco, quitele el componente rojo y ya vera. De nuevo tomemos el blanco y quitemosle el verde lo que nos da cian. Finalmente regresemos al blanco y quitemos el azul para obtener el magenta. (Los reconoce, estos son los tres colores primarios en pigmentos, mientras que rojo verde y azul son los tres primarios en luz). Todos los objetos absorben parte de la luz que reciben, si la absorbieran toda, los veríamos como hoyos negros, pero ningún objeto es perfecto y siempre vemos algo. (Si se siente confundido, vea la nota sobre teoría del color)
 

Metal, hule o vidrio 


¿Que pasa con el resto de la luz? Parte es reflejada. Si la superficie es perfectamente lisa, la luz simplemente rebota, existe una ley física que nos dice que el angulo de la luz incidente es igual al angulo de la luz reflejada. Sin embargo no existen superficies 100% lisas, todas tienen rugosidades a nivel microscópico, funcionando como millones de facetas, cuando la luz incide sobre ellas se dispersa, es decir, rebota en todas direcciones. En este caso la intensidad de la luz reflejada es "proporcional al angulo de incidencia". ¿Que significa esto en español?.

El primer caso corresponde a superficies como los espejos o el metal pulido. Las superficies pueden verse gracias a la luz que reflejan, pero si ponemos un objeto en un fondo negro y lo iluminamos, solo se refleja el punto de luz de nuestra lampara. Si ud. tiene Lightwave tome el objeto llamado CromeTeapot y modifique la textura del objeto a 100 p% especular y 0 % mate, (Si tiene Sculpt, fabrique una esfera blanca y dele textura de espejo) coloque una luz y calcule la imagen. Tendrá la imagen de algunos puntos de luz, y el resto del objeto sera casi invisible. Ningún objeto es 100% reflejante, la plata tiene el record, reflejando alrededor del 95% de la luz incidente.

El segundo tipo de efecto es lo que llamamos superficies mates. Ahora tome su "mouse pad" (¿no usa?, su raton se lo agradeceria mucho) y vea la superficie de esponja de abajo. si usted la inclina con respecto a la fuente de luz que tenga, la intensidad de la superficie cambia en relacion al angulo de la luz, pero si usted se mueve (claro sin hacerle sombra) la intensidad de la luz sobre el objeto no cambia. Volvamos a nuesta tetera (o nuestra esfera) y pongamos la superficie a cafe, 100 % mate y 0 % especular (o pida superficie mate). Al calcular la imagen se obtiene la apariencia de una tetera de barro. No hay brillos, pero podemos ver la tetera perfectamente.
 
 

A jugar 

¿Quieres experimentar? Los programas mas populares de animación actualmente son 3D Studio, Maya, Lightwave, pero no son los únicos. sin embargo pueden ser un poco caros. Afortunadamente existe un software libre que se llama Blender  (http://www.blender.org/), con el que se pueden obtener trabajos de nivel profesional, aunque con un poco mas de trabajo. 

 
Puede crear un objeto, asignarke una superficie y listo. A jugar.. Por razones historicas, casi todos los programas de animacion, inlcuyen una tetera.. y se espera que el novato, sea con lo primero que juegue. Asi que búsquenla y ábran las características de superficie. 

Generalmente vamos a trabajar en medio de estos dos extremos, asi que volvamos a la tetera y hagamosla 100 % brillante y 100 % reflejante, ahora tendremos una hermosa tetera de loza. Estas son las dos maneras de reflejar la luz. Todos los objetos reflejan una parte de la luz y dispersan la otra.

Antes de seguir leyendo mire los objetos a su alrededor, trate de clasificar y evaluar las propiedades de cada objeto y comence haga una lista. p.e. la madera es bastante mate y poco reflejante, pero la madera laqueada o barnizada es bastante reflejante y un poco mate, los plasticos lisos son mates y reflejantes. Intente darle valores numéricos, comparándolos con objetos creados en el programa que utilice.

¿Que sucede con la luz que atravieza la superficie del objeto?. Imagine lo que es pasar repentinamente de un material gaseoso como el aire, a un objeto solido como el cristal. La luz no puede viajar a la misma velocidad en los dos medios, al pasar de uno a otro el cambio de velocidad produce un cambio de direccion. ¿Ha observado los objetos en el fondo de un estanque?, si trata de tomarlos nunca estan donde se ven, la luz se desvia. Si ademas la superfice es curva, como en un lente, la luz viaja en distintas direcciones, deformando lo que vemos a travez del objeto. Por esto podemos ver algo transparente, por la forma en que deforma la luz que lo atravieza (ademas de que siempre refleja un poco, el vidrio refleja un 4% de la luz incidente). A la relacion de la velocidad de la luz en el vacio y la velocidad en un medio determinado se le llama indice de refracción, por ejemplo el indice de refraccion del agua es de 1.33 y el del vidrio varia de 1.5 a 1.9.

Asi que si usted desea crear un elixir para volverse invisible, recuerde que no es suficiente con volverse transparente, es necesario tener el mismo indice de refraccion que el aire. Y para complicarle la vida aun mas a nuestro rayo de luz, cada color puede desviarse en distinto angulo, para un fabricante de lentes, esto es una tragedia puesto que las imagenes vistas a travez del lente tendran un halo de color, pero tambien es lo que nos permite ver el arcoiris que produce un prisma o las gotas de lluvia en la atmosfera.
 

Reflejos 


Generalmente se requiere usar "Ray Trace" pueden reproducir el efecto de la refracción y de reflejo tipo espejo. Ya que los programas que se basan exclusivamente en Phong, no siguen los rayos individuales de luz, solo pueden simular la reflexion tipo espejo a travez de lo que se llaman mapas de reflexion, es decir que no pueden reflejar los elementos de la misma escena. Para producir las sombras deben utilizar una tecnica de Ray Trace simplificada, lo que implica mayor cantidad de calculos, por cada fuente de luz que tenga nuestra escena. Por esta razon la mayor parte del trabajo de animación tridimensional no usa sombras.

Sin embargo, aun no es suficiente. Con las propiedades que acabamos de describir podemos simular cualquier material, pero aun hace falta cierto realismo y existen aun algunos fenomemos que no hemos considerado, como polarizacion, refraccion, interferencia y fluorescencia. Ademas en el mundo real los objetos no son puros, son de varios colores y materiales, estan rayados, tienen arrugas, estan sucios o estan mal pulidos. Por eso, para poder dar mas realismo a nuesto universo tridimensional tenemos que recurrir a lo que llamamos mapas, radiosidad, voxeles y otro bichos raros, pero esto es otra historia.

Notas sobre teoria del color


Si usted es como yo que si no es con la computadora no dibuja una linea, al tratar de mezclar pinturas, se va a ver en problemas. En primer lugar, en pintura (o para ser mas tecnicos, pigmentos) los primarios son cian, amarillo y magenta (CMY) y al mezclar los tres primarios no va ha obtener blanco sino un tono gris, mientras mas puros sean los colores sera un gris mas obscuro. (debido a que nunca llega a negro, es necesario contar con este color como pigmento para poder tener toda la gama de colores), mientras que los pintores que manejan la computadora por primera ves tienen el problema inverso, al trabajar con luz, los primarios son rojo, verde y azul. Si aun esta exceptico tome una lupa y vea el monitor de la computadora o una poantalla de television, cada punto o pixel de pantalla esta dividido en tres puntos de color. Nosotros pintamos con luz, ellos con pigmento, en un caso la luz se suma y en el otro se resta. ¿Que pasa en nuestro universo 3d simulado con los colores?. Si iluminamos con luz roja un objeto cian, el objeto se ve negro, porque un objeto cian es el que absorbe el rojo. Por supuesto que en la naturaleza no existen objetos de colores puros, pero en nuetros universo sintetico podemos tener objetos ideales y colores puros. Si la iluminación no le da los colores que usted desea, revise la teoria del color para ver que esta pasando y trate de evitar utilizar luces de colores primarios puros.