surface metal ( float Ka = 1, Ks = 1, roughness = 0.3) { normal n = faceforward(normalize(N), I); vector i = normalize(-I); Oi = Os; //ambient color am = Ka*ambient(); am = Ka*diffuse(n); float a = comp(am,0.0)+comp(am,1.0)+comp(am,2.0); if (a < 2.0) Ci = Cs*0.7*am; else Ci = Cs*1.1*am; // outline if(i.n < 0.3) { Ci = Ci*0; Oi = 1; } }