surface lab7 param float Ka 0.7 param float Kd 0.7 param float Ks 0.3 param float roughness 0.1 param float freq 5 param color specularcolor 1 1 1 param color color1 0 0 0 param color color2 0 0 0 param color color3 0 0 0 local color surface_color 0 0 0 local float ss 0 local float tt 0 local point Nf 0 0 0 local point V 0 0 0 initcode 6 pushiv 1 1 1 popc color1 initcode 7 pushiv 0.2 0.2 0.2 popc color2 initcode 8 pushiv 0.6 0.6 0.6 popc color3 return code return_area cpCC Cs surface_color pushif 1 pushf freq mulF s mod popf ss pushf ss pushif 0.65 pushif 0.63 smoothstep pushf ss pushif 0.35 pushif 0.33 smoothstep subff popf ss pushif 1 pushf freq mulF t mod popf tt pushf tt pushif 0.65 pushif 0.64 smoothstep pushf tt pushif 0.35 pushif 0.34 smoothstep subff popf tt pushif 0 pushf ss feqf ifz 0 pushf tt pushc color2 mulcf pushf tt pushif 1 subff pushc surface_color mulcf addcc popc surface_color jump 1 label 0 pushif 0 pushf tt feqf ifz 2 pushf ss pushc color1 mulcf pushf ss pushif 1 subff pushc surface_color mulcf addcc popc surface_color jump 3 label 2 pushif 2 pushf tt addF ss pushc color3 mulcf pushf ss pushif 1 subff pushc color2 mulcf pushf tt pushif 1 subff pushc color1 mulcf addcc addcc divcf popc surface_color label 3 label 1 pushv I pushv N normalize faceforward popv Nf pushv I normalize negv popv V pushf roughness pushv V pushv Nf specular pushf Ks pushc specularcolor mulcf mulcc pushv Nf diffuse mulFv Kd ambient mulFv Ka addcc mulC surface_color addcc popc surface_color cpCC Os Oi pushc Os mulC surface_color popc Ci return