surface bubble
param	float	Ka		0
param	float	Kd		0.01
param	float	Ks		1
param	float	roughness		0.15
param	float	Kr		1
param	float	Kt		1
param	float	eta		1.33
param	float	thickness		300
param	float	pattern		25
param	float	octaves		5
local	string	$_str_0 	"shader"
local	color	iridcolor	0 0 0
local	normal	Nf	0 0 0
local	vector	IN	0 0 0
local	vector	Rfldir	0 0 0
local	color	ev	0 0 0
local	color	cr	0 0 0
local	vector	R	0 0 0
local	vector	Rdir	0 0 0
local	float	pathlen	0
local	float	i	0
local	float	j	0
local	float	kr	0
local	float	kt	0
local	color	rgb1	0 0 0
local	color	rgb2	0 0 0
local	color	rgb3	0 0 0
local	color	rgb4	0 0 0
local	color	rgb5	0 0 0
local	color	rgb6	0 0 0
local	color	rgb7	0 0 0
local	color	rgb8	0 0 0
local	float	wl1	0
local	float	wl2	0
local	float	wl3	0
local	float	wl4	0
local	float	wl5	0
local	float	wl6	0
local	float	wl7	0
local	float	wl8	0
local	point	PP	0 0 0
local	float	value	0
local	float	frequency	0
initcode 9
	return
code
	return_area
	pushif	0 
	cset	ev 
	pushif	0 
	cset	cr 
	pushv	I 
	normalize
	popv	IN 
	pushv	I 
	pushv	N 
	normalize
	faceforward
	popv	Nf 
	pushf	eta 
	pushif	1 
	divff
	popf	j 
	pushv	Nf 
	pushv	IN 
	reflect
	popv	Rfldir 
	pushif	1 
	addF	j 
	pushif	1 
	addF	j 
	mulff
	pushif	1 
	subF	j 
	pushif	1 
	subF	j 
	mulff
	divff
	pushif	2 
	mulff
	popf	kr 
	pushf	kr 
	pushif	1 
	subff
	popf	kt 
	pushv	I 
	normalize
	pushv	N 
	normalize
	vdot
	popf	j 
	pushif	0 
	pushf	j 
	lt
	ifz	0
	pushf	j 
	negf
	popf	j 
label 0
label 1
	pushif	0.9 
	pushif	0.1 
	mulF	j 
	addff
	popf	j 
	pushf	j 
	mulF	kt 
	popf	kt 
	pushf	kt 
	pushif	1 
	subff
	popf	kr 
	pushf	Kr 
	mulF	kr 
	popf	kr 
	pushf	Kt 
	mulF	kt 
	popf	kt 
	pushiv	0.1 0 0.1 
	popc	rgb1 
	pushiv	0.1 0 0.3 
	popc	rgb2 
	pushiv	0 0 0.3 
	popc	rgb3 
	pushiv	0 0.3 0.3 
	popc	rgb4 
	pushiv	0 0.35 0 
	popc	rgb5 
	pushiv	0.35 0.35 0 
	popc	rgb6 
	pushiv	0.35 0 0 
	popc	rgb7 
	pushiv	0.1 0 0 
	popc	rgb8 
	pushif	380 
	popf	wl1 
	pushif	420 
	popf	wl2 
	pushif	440 
	popf	wl3 
	pushif	490 
	popf	wl4 
	pushif	510 
	popf	wl5 
	pushif	580 
	popf	wl6 
	pushif	645 
	popf	wl7 
	pushif	780 
	popf	wl8 
	pushv	P 
	pushs	$_str_0 
	transforms
	popv	PP 
	pushif	0 
	popf	value 
	pushif	0.5 
	popf	frequency 
	pushif	0 
	popf	i 
label 2
	pushf	octaves 
	pushf	i 
	lt
	ifz	4
	pushif	2 
	mulF	frequency 
	popf	frequency 
	pushf	frequency 
	pushif	1 
	pushv	PP 
	noisev
	pushif	2 
	mulff
	subff
	mulff
	addF	value 
	popf	value 
	pushif	2 
	pushv	PP 
	mulvf

	popv	PP 
label 3
	pushif	1 
	addF	i 
	popf	i 
	jump	2
label 4
	pushf	frequency 
	divF	value 
	popf	value 
	pushf	pattern 
	mulF	value 
	addF	thickness 
	popf	pathlen 
	pushif	0.001 
	pushf	kr 
	gt
	ifz	5
	pushv	Rfldir 
	normalize
	popv	Rdir 
	pushv	Rdir 
	pushv	P 
	trace
	mulFv	kr 
	popc	ev 
	pushv	I 
	normalize
	pushv	N 
	normalize
	vdot
	popf	j 
	pushif	0 
	pushf	j 
	lt
	ifz	7
	pushf	j 
	negf
	popf	j 
label 7
label 8
	pushif	0.001 
	pushf	j 
	lt
	ifz	9
	pushif	0.001 
	divF	pathlen 
	popf	pathlen 
	jump	10
label 9
	pushf	j 
	divF	pathlen 
	popf	pathlen 
label 10
	pushiv	0 0 0 
	popc	iridcolor 
	pushf	wl1 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb1 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl2 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb2 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl3 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb3 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl4 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb4 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl5 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb5 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl6 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb6 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl7 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb7 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushf	wl8 
	pushf	pathlen 
	pushif	2 
	mulff
	divff
	pushif	6.28319 
	mulff
	pushif	3.14159 
	addff
	popf	j 
	pushc	rgb8 
	pushf	j 
	cos
	pushif	2 
	mulff
	mulfc
	addC	iridcolor 
	popc	iridcolor 
	pushif	650 
	pushf	thickness 
	ge
	ifz	11
	pushiv	1 1 1 
	popc	iridcolor 
label 11
label 12
	pushif	650 
	pushf	thickness 
	lt
	pushif	0 
	pushf	thickness 
	gt
	and
	ifz	13
	pushif	650 
	divF	thickness 
	popf	j 
	pushf	j 
	mulF	j 
	pushif	1 
	subff
	pushif	0.5 
	mulff
	popf	j 
	pushf	j 
	pushif	1 
	subff
	pushiv	1 1 1 
	mulcf
	pushf	j 
	pushc	iridcolor 
	mulcf
	addcc
	popc	iridcolor 
label 13
label 14
label 5
label 6
	pushif	0.001 
	pushf	kt 
	gt
	ifz	15
	pushv	I 
	normalize
	pushv	P 
	trace
	mulFv	kt 
	popc	cr 
label 15
label 16
	pushif	1 
	cset	Oi 
	pushc	cr 
	pushf	roughness 
	pushv	IN 
	negv
	pushv	Nf 
	specular
	mulFv	Ks 
	addC	ev 
	mulC	iridcolor 
	pushv	Nf 
	diffuse
	mulFv	Kd 
	ambient
	mulFv	Ka 
	addcc
	mulC	iridcolor 
	addcc
	addcc
	popc	Ci 
	return