9.9.1  ¿Cuál es el problema?

Existe un problema peculiar con los triángulos suavizados que aparece como un artefacto de iluminación en ciertos casos. Puede suceder en triángulos suavizados individuales, mallas con triángulos suavizados y campos de altura suavizados. El problema también se manifiesta cuando se utiliza el patrón de pendiente -slope pattern- en la misma situación. Esta imagen muestra dos casos:

Lighting and slope pattern artifacts in a smooth triangle
Artefactos de iluminación y patrón de pendiente en un triángulo suavizado

El código fuente de esta imagen es el siguiente:

camera { right x*4 location <0,1,-5> look_at 0 angle 35 }
light_source { y*100, 1 }
light_source { -y*100, x }

smooth_triangle
{ <-.5,0,-1>,<-1,1,-1>, <.5,0,-1>,<1,1,-1>, <0,0,1>,<0,1,1>
pigment { rgb 1 }
translate -x*.6
}
smooth_triangle
{ <-.5,0,-1>,<-1,1,-1>, <.5,0,-1>,<1,1,-1>, <0,0,1>,<0,1,1>
pigment { slope y color_map { [0 rgb z][1 rgb x+y] } }
finish { ambient 1 }
translate x*.6
}

El triángulo de la izquierda es un triángulo regular suavizado, iluminado por una fuente de luz blanca desde arriba. También hay una fuente de luz roja iluminando desde abajo. Como se ve, la parte más lejana del triángulo está equivocadamente iluminada con rojo. Ninguna parte del triángulo debiera estar iluminada por la fuente de luz roja porque el lado superior del triángulo no da de cara hacia abajo en ninguna parte.

El triángulo de la derecha es el mismo triángulo suavizado con un patrón de pendiente aplicado sobre sí, que va del azul (en la direcció negativa de y) a amarillo (en la dirección positiva de y). La iluminación ha sido eliminada al especificar un ambiente -ambient- muy alto. Como todas las partes del lado superior del triángulo apuntan hacia arriba, todo el triángulo debiera estar coloreado con sombras de amarillo, pero como puede verse, la misma parte más lejana aparece equivocadamente coloreada en azul.

(Si adivinó que el problema sucede con la normal del vector del triángulo que apunta hacia fuera de la cámara, adivinó correctamente).