/* cs184 proj2 */ /* floor shader */ surface floor ( color stripe_color1 = color(1,1,1); color stripe_color2 = 0; ) { float Kd = 0.5; float Ka = 0.1; float multiplyby = 1; float modby = 4; float comparewith = 2; float zz = zcomp(P); float xx = xcomp(P); if (mod(xx*multiplyby, modby) < comparewith) { if (mod(zz*multiplyby, modby) < comparewith) Ci = stripe_color1; else Ci = stripe_color2; } else { if (mod(zz*multiplyby, modby) < comparewith) Ci = stripe_color2; else Ci = stripe_color1; } /* float x = xcomp(P) * 10; float y = ycomp(P); float z = zcomp(P) * 10; */ point Nf = faceforward( normalize(N), I); /* if ( mod(x, stripe_width1) <= 2 && mod(z, stripe_width1) <= 2) { Ci = stripe_color1; } else { Ci = stripe_color2; } */ Oi = Os; Ci = Ci * Oi * (Ka * ambient() + Kd * diffuse(Nf) + specular(Nf, normalize(-I), 0.4)); }