Capítulo 6: Reducción de ArtefactosLos bricks totalmente transparentes no son considerados, pues ellos sonexcluidos del rendering por el proceso de selección. Si el peso de todos losvértices de un brick es cero, entonces su brick padre (de nivel de detalleinmediatamente inferior) no es requerido en su despliegue. En cualquierotro caso, el blending es realizado en cada muestra requerida del brick x,con coordenadas de textura (s,t,r), y su correspondiente muestra en elbrick padre p, con coordenadas de textura (s,t,r). Así, la muestra x(s,t,r)es interpolada linealmente con p(s,t,r) utilizando la siguiente ecuación:blend( s,t,r ) (1 ( s,t,r )) x(s,t,r ) (s,t,r ) p(s,t,r ), [Ec 6.1]donde es calculada mediante interpolación tri-lineal de los pesos de losvértices (ver Fig. 6.2b). Note que la muestra del volumen mezcladablend(s,t,r) es obtenida mediante interpolación cuádrica, puesto quex(s,t,r) y p(s,t,r) son típicamente reconstruidas mediante interpolacióntri-lineal. Particularmente, blend(s,t,r)=x(s,t,r) si (s,t,r)=0, mientras queblend(s,t,r)=p(s,t,r) si (s,t,r)=1. Para cualquier otro valor de en (0,1), elnivel de la muestra resultante es i, es decir, un nivel intermedio entrelos niveles i1 e i. Esto muestra que el nivel de detalle varía vóxel a vóxel,lo cual permite una transición suave entre bricks adyacentes con distintonivel de detalle.0 1 2 3 16 17 254 255Figura 6.3: textura tri-dimensional con todas las combinaciones posibles de lospesos de los 8 vértices de un brick. El peso de los vóxeles blancos es 1, y 0 para losnegros. Mediante un simple índice entre 0 y 255 se le indica a los programas devértices y fragmentos cuál sub-textura utilizar.Para realizar la interpolación tri-lineal de los pesos de los vértices de unbrick, hay diversas posibilidades. Una de ellas es pasar los 8 pesos en 8variables al programa de fragmentos del GPU. Sin embargo, esto implicaque la interpolación tri-lineal hay que codificarla, lo cual requiere demuchas multiplicaciones y sumas en punto flotante por muestra, quepueden degradar el rendimiento. Otra alternativa es explotar lainterpolación tri-lineal provista por el hardware gráfico. Inicialmente sepropone utilizar una textura 3D de 2x2x2 vóxeles, que corresponde conlos 8 pesos. Sin embargo, cargar una textura 3D auxiliar por cada brick a-104-
Capítulo 6: Reducción de Artefactosdesplegar en memoria de textura no es apropiado. La solución a esteproblema es utilizar una única textura 3D de 2x2x512, que contienetodas las combinaciones posibles de los pesos de los vértices (ver Fig.6.3). Esta textura es cargada una única vez en memoria de textura, ymediante un simple índice (entre 0 y 255) se indica cual sub-textura de2x2x2 vóxeles corresponde al brick a desplegar. La Fig. 6.4 muestra unejemplo de cómo la técnica remueve efectivamente los clásicos artefactosdel despliegue multi-resolución.(a)(b)Figura 6.4: removiendo artefactos mediante blending. (a) Despliegue convencional dela selección utilizando 30MB de memoria de textura. Se observan los artefactos entrebricks adyacentes. (b) Los artefactos son efectivamente eliminados mediante latécnica de blending de niveles de detalle consecutivos.Los bricks seleccionados son desplegados en sentido front-to-back (desdeel más cercano al más lejano) utilizando ray casting basado en GPU conclasificación pre-integrada. Por cada brick se despliegan y rasterizan suscaras frontales de su caja delimitadora, interpolando las coordenadas detextura de los vértices, y el vector de visualización. Así, cada fragmentoobtenido de la rasterización contiene el rayo de visualización y el puntode entrada en el brick en el espacio de textura.El rayo es muestreado con pasos constantes. Para cada par de puntosconsecutivos front y back en el rayo, se obtienen las muestrascorrespondientes b(front) y b(back) en el brick b. Si el brick b no requierede blending, la tabla de pre-integración 2D es muestreada en(s,t)=(b(front),b(back)) para obtener la integral RGB(b(front),b(back)) yopacidad (b(front),b(back)) en el intervalo [b(front),b(back)]. Si el brick brequiere de blending, se deben considerar las muestras correspondientes-105-