13.07.2015 Views

Capítulo X: Introducción

Capítulo X: Introducción

Capítulo X: Introducción

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 4: Visualización Out-of-Coremulti-resolución. Sin embargo, al editar la función de transferencia,estos nodos transparentes podrían convertirse opacos (o viceversa), locual invalida la selección actual. Así, es necesario un procesamientoadicional sobre la selección antes de ejecutar el algoritmo de Split-and-Collapse.Cuando se genera una nueva función de transferencia, los nodos que sehacen transparentes en la selección actual son removidos de S, mientrasse insertan nodos opacos para obtener una selección válida. Se utilizauna solución a dos etapas para determinar qué nodos opacos debeninsertarse en S. La primera etapa se realiza en forma bottom-up, es decirdesde la selección S hasta la raíz. En esta etapa se marcan los nodos deS y todos sus ancestros con una bandera. La segunda etapa se realiza enforma top-down, visitando todos los nodos opacos desde la raíz hastaencontrar un nodo de S o un nodo no marcado. Cada nodo no marcadoes insertado en S, para asegurar que toda área opaca del volumen tengauna representación en la selección. Ambos recorridos son O(N).La inserción de nuevos bricks en S podría eventualmente exceder lasrestricciones de N y M. Por lo tanto, es necesario realizar operaciones decollapse hasta que las restricciones sean satisfechas. Posteriormente elalgoritmo de Split-and-Collapse puede ejecutarse si la restricción de cargade M bricks no ha sido aún alcanzada.Tal y como se describió en la sección 3.2, en una etapa de preprocesamiento,se calcula el min-max octree [LAC95] para determinareficientemente qué bricks son transparentes, y qué bricks son opacos otraslúcidos, consultando la función de transferencia. La solución trivialconsiste en visitar el rango de valores [min,max] de la función detransferencia cuantizada en n valores, para determinar si un brick estransparente u opaco. En es peor de los casos, esta solución requierevisitar las n entradas de la FT por brick, lo cual resulta muy ineficiente.La solución que se propone es construir una tabla lineal T, que permitaluego saber si un intervalo [min,max] es transparente o no en O(1).Sea t(i) una función, tal que t(i)=1 si el intervalo (i1,i) de la FT es opaco,y t(i)=0 si es transparente. Entonces incrementalmente se construye unatabla global T[0..n1] de enteros, tal que T[i]=T[i1]+t[i], empezando coni1, hasta in1. Mediante esta construcción, un brick con intervalo[min,max], con min

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!