sl 1.0 # calculate N dot V for silhouette edges norm r0, N norm r1, V dp3 s0, r0, r1 li s1, 0 li s2, 1 clamp s0, s1, s2 #now, check if (N dot V) < epsilon li s1, 0.087155 blt s0, s1, 19 #now calculate N dot L, to do shading norm r1, L dp3 s0, r0, r1 clamp s0, s1, s2 #set up a fairly wide area of darkness li s1, 0.240 blt s0, s1, 10 #shade the normal area li s0, 0.75 mul v0, C0, s0 #liv R v0, 1 #check if we are in a specular highlight add r0, V, L norm r0, r0 dp3 s0, r0, N pow s0, s0, S #set up a fairly small area of brightness li s1, 0.85 blt s1, s0, 1 mov v0, C0 #liv G v0, 1 jmp 2 #shade the dark area li s1, 0.35 mul v0, C0, s1 #liv B v0, 1 ret