Filtración Tri lineal - Trilinear filtering

El filtrado trilineal es una extensión del método de filtrado de textura bilineal , que también realiza una interpolación lineal entre mapas MIP .

El filtrado bilineal tiene varias debilidades que lo convierten en una opción poco atractiva en muchos casos: usarlo en una textura con todos los detalles al escalar a un tamaño muy pequeño causa problemas de precisión debido a los texels perdidos , y compensar esto mediante el uso de múltiples mapas MIP en todo el polígono conduce a cambios abruptos en la borrosidad, que es más pronunciada en polígonos que tienen un ángulo pronunciado en relación con la cámara.

Para resolver este problema, el filtrado trilineal interpola entre los resultados del filtrado bilineal en los dos mapas MIP más cercanos al detalle requerido para el polígono en el píxel. Si el píxel ocupara 1/100 de la textura en una dirección, el filtrado trilineal interpolaría entre el resultado de filtrar el mapa mip de 128 × 128 como y 1 con x 1 como 128, y el resultado del filtrado en el mapa mip de 64 × 64 como y 2 con x 2 como 64, y luego interpolar ax = 100 .

El primer paso en este proceso es determinar qué tan grande es en términos de textura el píxel en cuestión. Hay algunas formas de hacer esto, y las mencionadas aquí no son necesariamente representativas de todas ellas.

  • Utilice la distancia a lo largo de la textura entre el píxel actual y el píxel a su derecha (o izquierda, o arriba o abajo) como el tamaño del píxel.
  • Utilice el más pequeño (o el más grande o el promedio) de los distintos tamaños determinados mediante el método anterior.
  • Determine los valores de UV de las esquinas del píxel, utilícelos para calcular el área del píxel y averigüe cuántos píxeles de exactamente el mismo tamaño ocuparían toda la textura.

Una vez hecho esto, se realiza un filtrado bilineal en los dos mapas MIP con tamaños de píxel que son inmediatamente mayores y menores que el tamaño calculado del píxel, y luego se interpolan entre ellos de forma normal.

Dado que utiliza mapas mip más grandes y más pequeños, el filtrado trilineal no se puede utilizar en lugares donde el píxel es más pequeño que un texel en la textura original, porque los mapas mip más grandes que la textura original no están definidos. El filtrado bilineal todavía funciona y se puede utilizar en estas situaciones sin preocuparse demasiado por la brusquedad porque el filtrado bilineal y trilineal proporcionan el mismo resultado cuando el tamaño de píxel es exactamente el mismo que el tamaño de un texel en el mapa mip apropiado.

El filtrado trilineal todavía tiene debilidades, porque todavía se supone que el píxel ocupa un área cuadrada en la textura. En particular, cuando una textura se encuentra en un ángulo pronunciado en comparación con la cámara, se pueden perder detalles porque el píxel en realidad ocupa un trapezoide estrecho pero largo: en la dirección estrecha, el píxel obtiene información de más texels de los que realmente cubre ( por lo que los detalles están borrosos), y en la dirección larga, el píxel obtiene información de menos texels de los que realmente cubre (por lo que los detalles caen entre píxeles). Para aliviar esto, se puede utilizar un filtrado anisotrópico ("dependiente de la dirección").

Ver también