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 . [1] [2]
El filtrado bilineal tiene varias debilidades que lo convierten en una opción poco atractiva en muchos casos: usarlo en una textura con muchos detalles cuando se escala a un tamaño muy pequeño causa problemas de precisión debido a los texels faltantes , y compensar esto mediante el uso de múltiples mipmaps 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 mipmaps más cercanos al detalle requerido para el polígono en el píxel. [3] 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 mipmap de 128×128 como y 1 con x 1 como 128, y el resultado de filtrar en el mipmap de 64×64 como y 2 con x 2 como 64, y luego interpolaría a x = 100 .
El primer paso de este proceso es determinar el tamaño del píxel en cuestión en términos de textura. Hay varias formas de hacerlo y las que se mencionan aquí no son necesariamente representativas de todas ellas.
Una vez hecho esto, se realiza un filtrado bilineal sobre los dos mipmaps con tamaños de píxel inmediatamente mayores y menores que el tamaño calculado del píxel, para luego interpolar entre ellos de forma normal.
Dado que utiliza tanto mipmaps más grandes como 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 mipmaps más grandes que la textura original no están definidos. El filtrado bilineal aún funciona y se puede utilizar en estas situaciones sin preocuparse demasiado por la brusquedad porque el filtrado bilineal y trilineal brindan el mismo resultado cuando el tamaño del píxel es exactamente el mismo que el tamaño de un texel en el mipmap apropiado.
El filtrado trilineal aún tiene debilidades, porque todavía se supone que el píxel ocupa un área cuadrada en la textura. En particular, cuando una textura está en un ángulo pronunciado en comparación con la cámara, se pueden perder detalles [1] porque el píxel en realidad ocupa un trapezoide angosto pero largo: en la dirección angosta, el píxel obtiene información de más texeles de los que realmente cubre (por lo que los detalles se difuminan), y en la dirección larga, el píxel obtiene información de menos texeles de los que realmente cubre (por lo que los detalles caen entre los píxeles). Para aliviar esto, se puede utilizar el filtrado anisotrópico ("dependiente de la dirección"). [1]