#include "rmannotes.sl" surface hj( float Ka = 0.4, Kd = 0.4; float Ks = 0.6, roughness = 0.175; color specularcolor = .5) { color paper, ink; float paper_opac; float rect1, rect2, rect3; float ss, tt; float col, row; float fuzz = 0.05; float freq=6; point Nf, V; /* init */ Nf = faceforward(normalize(N), I); V = -normalize(I); paper =1; /*rotate*/ rotate2d(s, t, radians(45), .5, .5, ss, tt); /* rect 1 */ s = repeat(s, 4); t = repeat(t, 4); ink = color (.107,.434,.485); rect1= intersection(pulse(0.1, 0.6, fuzz, s),pulse(0.1, 0.6, fuzz, t)); paper= mix(paper, ink, rect1); /* shift even rows 1/2 tile */ col = whichtile(ss, freq); if (even(col)) tt = mod(tt * freq + 0.5, 1); else tt = repeat(tt, freq); ss = repeat(ss, freq); /* rect 2 */ ink = color (.105,.010,.194); rect2= intersection(pulse(0.2, 0.8, fuzz, ss),pulse(0.2, 0.8, fuzz, tt)); paper= mix(paper, ink, rect2); /* rect 3 */ ink = color (.652,.365,.365); rect3 = intersection(pulse(0.35, 0.65, fuzz, ss),pulse(0.35, 0.65, fuzz, tt)); paper = mix(paper, ink, rect3); /*plastic Illum */ paper = paper * Ka * ambient() + paper * Kd * diffuse(Nf) + specularcolor * Ks * specular(Nf, V, roughness); /* output */ Ci = paper; }