surface 
alienskin( float Ks=.6, Kd=0.2, Ka=.8, Kr=.5, roughness=.1; color specularcolor=1 )
{
    float Kl;
    point Nf, V;
    color highlight;

    Nf = faceforward( normalize(N), I );
    V = -normalize(I);

    highlight = specularcolor*Ks*specular(Nf,V,roughness);
    Ci = Cs * (Ka * ambient() + Kd * diffuse(Nf)) + highlight;

    Kl = (comp(Ci,0) + comp(Ci,1) + comp(Ci,2))/3;
    Oi = Kl + (1-Cs);
}