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