surface water
param	float	reflectivity_min		0.3
param	float	reflectivity_max		0.8
param	float	i_water		1.5
param	float	i_air		1
local	point	Nf	0 0 0
local	point	V	0 0 0
local	point	reflection	0 0 0
local	point	refraction	0 0 0
local	float	Kr	0
local	float	Kt	0
local	float	weight_reflection	0
initcode 3
	return
code
	return_area
	pushv	I 
	pushv	N 
	normalize
	faceforward
	popv	Nf 
	pushv	I 
	negv
	normalize
	popv	V 
	pushv	Nf 
	pushv	I 
	reflect
	popv	reflection 
	pushf	i_air 
	divF	i_water 
	pushv	Nf 
	pushv	I 
	refract
	popv	refraction 
	pushv	Nf 
	pushv	V 
	vdot
	pushif	1 
	subff
	pushf	reflectivity_min 
	subF	reflectivity_max 
	mulff
	addF	reflectivity_min 
	popf	weight_reflection 
	pushc	Os 
	mulC	Cs 
	pushc	Os 
	pushif	1 
	ftoc
	subcc
	pushv	refraction 
	pushv	P 
	trace
	mulcc
	addcc
	pushf	weight_reflection 
	pushif	1 
	subff
	mulfc
	pushv	reflection 
	pushv	P 
	trace
	mulFv	weight_reflection 
	addcc
	popc	Ci 
	pushif	1 
	cset	Oi 
	return