miércoles, 21 de noviembre de 2012

Visualización de la Animación

Para mostrar animaciones con sistemas de rastreo, los objetos animados (que pueden consistir de primitivas gráficas como líneas o polígonos) deben ser convertidos y almacenados como mapa de píxeles. Un objeto rotatorio puede ser mostrado mediante  sucesivas vistas desde posiciones diferentes. La conversión antes mencionada deber ser realizada al menos 10-20 veces por segundo para dar un efecto de suavidad razonable; una nueva imagen debe ser generada en como máximo 100 ms. La conversión actual de un objeto debería tomar una pequeña porción de ese tiempo. Por ejemplo, si tardamos 75 ms, sólo quedan 25 ms para borrar y redibujar el objeto, lo cual no es suficiente y genera un efecto indeseado. Para solucionar este problema se usa el “double buffering”. A modo de ejemplo consideraremos la visualización de una rotación. Asumiremos que las dos mitades del mapa de píxels son image0 e image1, 
y el proceso sería el siguiente: Cargar LookUp Table (LUT) para mostrar valores como color de fondo 
Convertir objeto en image0
Cargar LUT para mostrar image0 
Repetir 
 Convertir objeto en image1
Cargar LUT para mostrar image1 
 Rotar la descripción de la estructura de datos del objeto 
 Convertir objeto en image0
Cargar LUT para mostrar image0 
Rotar la descripción de la estructura de datos del objeto 
Hasta (condición de terminación) 

Si la rotación y la conversión tarda más de 100 ms, la animación es bastante lenta, pero la transición de una imagen a la siguiente parece instantánea. La carga del LUT suele tardar menos de 1ms. 

No hay comentarios:

Publicar un comentario