if(typeof finish == "string"){ finish = lite.finish[finish]; } pigment = lite.toStdColor(pigment); normal = lite.faceforward(lite.normalize(normal), this.incident); var ambient = lite.scaleColor(finish.Ka, this.ambient), shadow = lite.saturate(-4 * lite.dot(normal, this.incident)), diffuse = lite.scaleColor(shadow * finish.Kd, lite.diffuse(normal, this.lights)), color = lite.scaleColor(pigment.a, lite.multiplyColor(pigment, lite.addColor(ambient, diffuse))); color.a = pigment.a; return lite.fromStdColor(lite.saturateColor(color));