I think your method is smart. And I'd like to suggest another method. All visible surfaces of the fractal can be divided into three groups of common normal vector, and you paint each of three groups in a different color.