viernes, 21 de enero de 2011

Corto de animación

Este es el corto realizado para la asignatura de Animación por Computador, mi primera aproximación a los cortos de animación. No está mal para el tiempo que se tuvo para realizarlo pero habrá que mejorarlo.


Durante la realización del mismo se intento aplicar técnicas vistas en clase como Skinning, mesh morpher, loft, splines, physics...

martes, 18 de enero de 2011

Demoscene Túnel

Este es un trabajo para la asignatura deRendering Avanzado en la cual tenemos que analizar un efecto túnel de alguna demoscene.


Esta es la demo seleccionada: Event Horizon del grupo Smash Designs, esta demo fue presentada en Mekka & symposium y gano en la "PC Demo" en 1999.


Uno de los motivos de escoger este demo ha sido que se ha visto en ella varias escenas de túnel y que además estas transcurren es en una zona muy parecida a una mina, lo cual será interesante para la práctica. El grupo Smash Desings además ha realizado muchas demos y parece un grupo muy activo habiendo realizado 80 demos desde el 1992 al 2007 y han conseguido una gran cantidad de premios.
En su página podemos ver que el grupo está formado por 21 miembros.
  • Code (8) Ace, Dcp, Idefix, Kai, Kb, Tobi, Soney, Update y Yoda.
  • Graphics (6) Coke, Franky, Fzool, Mbb, Osiris, Aeg y Samsung.
  • Swap (1) Barracuda
  • Organising (2) Bombe y Samsung.
  • Music (4) Ciaran, Eha, Sierra y Sonic.
  • Server Admin (1) Daniels.
  • C64 y HW (1) Galactus.
Como podemos ver, el grupo esta formado sobretodo por programadores y grafístas. (En negrita los miembros principales de la demo "Event Horizon"






Datos de la demoscene:

En primer lugar destacar que el ordenador necesario para ejecutar la demo tenía que ser un ordenador MMX con 48Mb lo cual para la epoca era mucha memoria, de hecho los propios desarrolladores comentan que es una de las partes que deben mejorar. El ejecutable completo ocupa 7,04 Mb y tiene una duración de unos 5 minutos. 


Al realizar el análisis debemos recordar que la demo se realizo en 1999 (nada que ver con la capacidad gráfica actual)


Al inicio de la aplicacion podemos ver como el sistema nos permite seleccionar entre varias resoluciones y modos de video (VGA, VESA...) (0:00-0:10)


Ya en la introducción del video podemos ver la inserción de texto y el desplazamiento del planeta con una estela de partículas que le siguen. Además podemos ver un efecto de iluminación lens flare en lo que parece ser una estrella cercana. (0:10-0:50)
Pasaremos entonces a realizar el primer paseo por el interior de la mina, en el podremos observar como hay luces en posiciones fijas y varias luces en movimiento, se puede ver también como dichas luces afectan al color de los materiales de la escena. Los movimientos de la cámara siguen trayectorias suaves y curvadas. (0:50-1:25)
 


Pasaremos a continuación al primer efecto túnel de la demo (que es la parte que más nos interesa) en este caso el efecto túnel de las paredes viene acompañado de una estructura de "vigas" cuadradas, además las luces de la escena se van desplazando, mostrándonos más partes o menos de dicho túnel, debido a la baja iluminación en general de la escena es difícil ver el tipo de texturizado del túnel. En las partes en las que este se aprecia, no se ha conseguido apreciar ningún tiling o problema en la unión de las mismas. (1:25-1:44)

A continuación veremos el segundo efecto túnel de la demo, aunque bastante corto. En este caso se combina el movimiento por el túnel con la visualización de detalles de zonas de agua con plantas, un agua muy simple pero interesante para la época, parece estar realizado con un material semitransparente. (1:44-2:00)


A continuación la cámara se centra en un tubo con agujeros por el cual hay una luz que emite rayos luminosos. (2:00-2:40)


Despues volvemos a ver un efecto túnel, en este caso con obstáculos y objetos móviles sobretodo cajas semitransparentes rotando y continúan los efectos de luces que se mueven adelantándonos y desplazándose por la escena.
La cámara no sigue simplemente una trayectoria sino que también rota sobre su eje poniendo la escena "boca arriba y boca abajo". (2:40 -3:30)

Finalmente una de las partes más comentadas, en la información que se ha podido encontrar en la web sobre la demo. El pequeño personaje del final, un muñeco con vida propia, moviéndose y bailando de forma fluida al son de la música. Aquí también podemos ver efectos de iluminación similares al resto de las escenas con el añadido de la proyección de sombras sobre el entorno.


En el report del symposium cuentan que esta pc-demo fue la dominadora de la categoría. Se puede ver como la demo es muy completa y como el equipo de trabajo aplicó una gran cantidad de técnicas. 


En varias Web se comenta que utilizaban el motor gráfico más potente de la época pero no se ha conseguido saber cual es el mismo.

domingo, 16 de enero de 2011

Simulación de tejidos procesamiento paralelo. PGATR_E_0

Como trabajo voy a intentar hacer una pequeña introducción al procesado paralelo en simulación de tejidos.
La simulación de tejidos es una tarea altamente compleja y tremendamente costosa computacionalmente. Una de las formas comunes de realizar la simulación de tejidos es mediante una nube de puntos unida mediante springs (aunque existen muchas más), si se quiere realizar una simulación más realista de los tejidos se deberá aumenta el número de vértices. Sin embargo, como es lógico, la capacidad de computo necesaria aumenta en gran medida al aumentar el número de nodos.
La simulación de tejidos tiene una gran cantidad de aplicaciones la primera y relativamente más sencilla se encuentra en la aplicación para juegos, simular banderas, telas colgadas o los ropajes de los personajes proporcionan un mayor realismo y credibilidad al juego.
A nivel de ingeniería las aplicaciones son enormes, obviamente para la moda y todo tipo de ropa que permitan simular los nuevos tejidos a crear antes de su fabricación, pero también la mejora de los procesos industriales que utilizan tejidos como por ejemplo tapizados.


Problema a Resolver


El mayor problema es la gran cantidad de datos a procesar en la simulación de tejidos, tenemos muchos nodos que están relacionados con otros nodos y solo un procesado de todos ellos nos permitirá tener un resultado optimo. Como problema de computación añadido en este caso, la división del problema en entidades independientes no es tan trivial como en otros problemas.
Por suerte hay algunos métodos que se pueden aplicar como la división del tejido en partes e. Además si estamos simulando un juego con varios personajes que lleven ropa podemos utilizar distintos nucleos para cada una de las prendas de cada personaje. Este proceso realizado en CPU ademas de ser muy costoso acabaría rápidamente con todos los cores de nuestro PC.

Comparación con medidas reales
Aunque seguramente existen, no se han encontrado datos que comparen los resultados visuales con los resultados de ingeniería. En su aplicación más directa que son los juegos un resultado visualmente consistente es suficiente para la mayoría de las aplicaciones.

Métodos de paralelización aplicados
Existen muchas técnicas de paralelización, algunas de las que se han encontrado son las siguientes:
  • Espacio de memoria compartida [RRZ00,LGPT01, GRR_05].
  • Arquitecturas basadas en paso de mensajes [ZFV02, ZFV04, KB04, TB06]
  • CPU multi nucleo. [BSW07]
  • Técnicas multinivel centradas en la simulación del tejido con una comparación entre paso de mensajes [LGPT01]
  • Acceso a Memoria no uniforme (NUMA) [RRZ00]


Herramientas utilizadas
Las librerías vistas en los desarrollos suelen ser C, C++, OpenGL, OpenCL, CUDA, OpenMP

Cuellos de botella
Los cuellos de botella se producen en los dos procesos a calcular, la propia deformación de la malla y la colisión con otros objetos.

Demos
A continuación podemos ver varios videos de comparación en el uso de tecnologías y aplicaciones si bien no se ha encontrado más información sobre rendimientos numéricos.

Comparación CPU y GPU

Como se puede ver al final del video el tiempo para resolver cada paso de una de las demos con la GPU con CUDA es de 0.03 seg y con CPU el tiempo es de aprox 0.17.

Comparación de rendimiento entre CPU, GLSL,OpenCL y CUDA.


Como se puede ir viendo en las distintas interacciones GLSL y CUDA consiguen unos rendimientos mucho mejores que la CPU.


Fuente principal para este trabajo:

[RRZ00] ROMERO S., ROMERO L. F., ZAPATA E. L.: Fast Cloth Simulation with Parallel Computers. In Euro- Par (2000), pp. 491—499.
[LGPT01] LARIO R., GARCIA C., PRIETO M., TIRADO F.: Rapid Parallelization of a Multilevel Cloth Simulator Using OpenMP. In Third European Workshop on OpenMP (2001).
[GRR_05] GUTIERRÉZ E., ROMERO S., ROMERO L. F., PLATA O., ZAPATA E. L.: Parallel techniques in irregular codes: cloth simulation as case of study. Journal of Parallel and Distributed Computing 65, 4 (April 2005), 424–436.
[ZFV02] ZARA F., FAURE F., VINCENT J.-M.: Physical Cloth Animation on a PC Cluster. In Fourth urographics Workshop on Parallel Graphics and Visualisation (2002).
[ZFV04] ZARA F., FAURE F., VINCENT J.-M.: Parallel simulation of large dynamic system on a pcs cluster: Application to cloth simulation. International Journal of Computers and Applications (march 2004). special issue on cluster/grid computing.
[TB06] THOMASZEWSKI B., BLOCHINGER W.: Parallel simulation of cloth on distributed memory architectures. In Proc. of Eurographics Symposium on Parallel Graphics and Visualization 2006 (Braga, Portugal, May 2006).
[KB04] KECKEISEN M., BLOCHINGER W.: Parallel implicit integration for cloth animations on distributed memory architectures. In Proc. of Eurographics Symposium on Parallel Graphics and Visualization 2004 (Grenoble, France, June 2004).
[LGPT01] LARIO R., GARCIA C., PRIETO M., TIRADO F.: Rapid Parallelization of a Multilevel Cloth Simulator Using OpenMP. In Third European Workshop on OpenMP (2001).
[RRZ00] ROMERO S., ROMERO L. F., ZAPATA E. L.: Fast Cloth Simulation with Parallel Computers. In Euro-Par (2000), pp. 491—499.
[BSW07] B. Thomaszewski, S. Pabst, and W. Blochinger. Exploiting parallelism in physically-based simulations on multi-core processor architectures. In Proc. of Eurographics/ACM Siggraph Symposium on Parallel Graphics and Visualization 2007, pages 69-76, Lugano, Switzerland, May 2007.


sábado, 15 de enero de 2011

First step...

Este es el inicio del Blog, aquí podréis ver algunas novedades e información sobre Realidad Virtual, Realidad Aumentada y Gráficos 3D.


También aquí se publicará parte de los trabajos que se realicen en el master que me encuentro cursando:

Máster en Informática Gráfica, Juegos y Realidad Virtual