Capítulo 4: Visualización Out-of-Coretransparente o no requiere simplemente de la comparación de dosentradas en T. Para el caso que min=max, se chequea directamente esaentrada en la función de transferencia para determinar si el brick estransparente u opaco, también en O(1).3.7 Algoritmos de Selección Óptimos con dos RestriccionesLos algoritmos de selección óptimos pueden ser extendidos para soportarla restricción del ancho de banda. La solución basada en backtrackingparte de la selección actual S, y en cada paso agrega una posibleoperación de Split o Collapse, manteniendo la mejor selecciónencontrada. El algoritmo debe llevar traza del número de bricks en laselección S, y adicionalmente el número de bricks transferidos paravalidar una operación.La solución basada en programación dinámica también debe llevar trazade ambas restricciones, descartando las soluciones que no cumplan concualquiera de ellas. El conjunto de SOIs en cada nodo es ahora másgrande, pues se almacena una solución óptima intermedia por cadacombinación posible de número de bricks, y descargas. La cantidadmáxima de SOIs en un nodo es NxM; así, la complejidad del algoritmo esO(KN 3 M 2 ), mostrando que sigue siendo polinomial.3.8 SumarioEn este capítulo se han introducido diversos algoritmos de selección, queincluyen algoritmos voraces, y algoritmos óptimos. Entre los algoritmosvoraces se ha adaptado un algoritmo incremental (introducidoinicialmente en el área de visualización de terrenos multi-resolución[DUC97]), al área de visualización de volúmenes multi-resolución. Estealgoritmo incremental, que llamamos algoritmo de Split-and-Collapse,utiliza la coherencia frame a frame para actualizar la representaciónmulti-resolución del volumen en dirección a la representación deseada,limitando la cantidad de bricks a transferir por frame. Igualmente se haintroducido un algoritmo óptimo polinomial, que determina la selecciónde mínimo error. Aunque el algoritmo óptimo puede requerir de variosminutos en ejecutarse por frame, nos demuestra que el algoritmo vorazincremental genera resultados cercanos al óptimo.Haciendo un estudio de complejidad en tiempo de los algoritmos voracesy óptimos, se determina que son polinomiales en tiempo der ejecución.Es importante señalar que estos algoritmos no dependen del tamaño delvolumen, sino de las restricciones de hardware dadas por la cantidad dememoria de textura (N bricks) y la cantidad de bricks que pueden ser-66-
Capítulo 4: Visualización Out-of-Coretransferidos hacia la tarjeta gráfica por frame (M bricks).Adicionalmente, se muestra como la función de prioridad (o error) de losbricks se puede actualizar en tiempo real, cuando se utiliza el algoritmode Split-and-Collapse, pues dicho algoritmo requiere de la actualizaciónen los nodos de la selección actual (N nodos), y no en los nodos de todala jerarquía multi-resolución. Esto permite la interacción con el volumen,incluyendo la navegación y la edición de la función de transferencia, sinperder la interactividad.Luego de haber estudiado el criterio de selección, es necesario considerarvolúmenes que no pueden almacenarse completamente en memoriaprincipal. Para ello, es necesario incluir técnicas out-of-core, para paginarbricks de discos locales o remotos a memoria principal, y que seacompatible con el criterio de selección. Este tema es abordado en elpróximo capítulo.-67-