

1.4.9.1 What is the problem?
There is a peculiar problem with smooth triangles which shows as a lighting artifact in certain cases. This can
happen in individual smooth triangles, meshes with smooth triangles and smooth heightfields. The problem also
manifests itself when using the slope pattern in the same situation. This image shows the two cases:
The source code of this image is the following:
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
}
The triangle at the left is a regular smooth triangle which is illuminated by a white light source from above.
There is also a red light source illuminating the triangle from below. As you can see, the farther part of the
triangle is wrongly illuminated as red. No part of the triangle should be illuminated by the red light source because
the upper side of the triangle is nowhere facing down.
The triangle at the right is the same smooth triangle with a slope pattern applied to it, which goes from blue (in
the negative y direction) to yellow (in the positive y direction). Lighting has been eliminated by specifying a high
ambient. As all the parts of the upper side of the triangle are pointing upwards, the whole triangle should be colored
with shades of yellow, but as you can see, the same farther part is wrongly colored blue.
(If you guessed that the problem happens when the normal vector of the triangle is pointing away from the camera,
then you guessed right.)

