public static double diffuse(ObjectR o, Point p, Light l) { double[] norm = calc.normalize(o.normal(p)); double[] light = calc.normalize(calc.sub(l.dim, p.coord)); double factor = calc.dot(norm, light); factor = Math.max(factor, 0); return o.kd() * factor + o.ka(); }