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