#!version 2.2.6
surface
#!parameters:
uniform	float	Ka	=	1
uniform	float	Kd	=	.5
uniform	float	Ks	=	.5
uniform	float	roughness	=	.1
uniform	color	specularcolor	=	1
uniform	float	samples	=	64
uniform	float	maxdist	=	1e30
uniform	float	coneangle
uniform	float	scaling	=	1.0
#!variables:
varying	vector	Nf
varying	float	occ
varying	vector	Cio
varying	vector	temporary_0
varying	float	temporary_1
varying	float	temporary_2
varying	float	temporary_3
varying	vector	temporary_4
varying	vector	temporary_5
varying	vector	temporary_6
varying	vector	temporary_7
uniform	vector	temporary_8
varying	vector	temporary_9
varying	vector	temporary_10
uniform	vector	temporary_11
#!Init:
	divff             	coneangle 3.141592654 2
	return            
#!Code:
	normalize	("v=v")  temporary_0  N 
	faceforward	("v=vv")  Nf  temporary_0  I 
	vufloat            temporary_1 scaling
	vufloat            temporary_3 samples
	occlusion	("f=pnfSfsf")  temporary_2  P  Nf  temporary_3  "maxdist"  maxdist  "coneangle"  coneangle 
	mulff             	occ temporary_1 temporary_2
	movevv            	Cio Cs
	vufloat            temporary_2 1
	subff             	temporary_1 temporary_2 occ
	vfromf            	temporary_4 temporary_1
	mulvv             	temporary_0 temporary_4 Cs
	mulvv             	Ci temporary_0 Os
	mulvv             	temporary_4 Ci Cio
	vfromf            	temporary_8 Ka
	vuvector           temporary_7 temporary_8
	ambient	("c=")  temporary_9 
	mulvv             	temporary_6 temporary_7 temporary_9
	vfromf            	temporary_8 Kd
	vuvector           temporary_9 temporary_8
	diffuse	("c=n")  temporary_10  Nf 
	mulvv             	temporary_7 temporary_9 temporary_10
	addvv             	temporary_5 temporary_6 temporary_7
	mulvv             	temporary_0 temporary_4 temporary_5
	vfromf            	temporary_11 Ks
	mulvv             	temporary_8 specularcolor temporary_11
	vuvector           temporary_5 temporary_8
	normalize	("v=v")  temporary_9  I 
	negv              	temporary_7 temporary_9
	vufloat            temporary_1 roughness
	specular	("c=nvf")  temporary_6  Nf  temporary_7  temporary_1 
	mulvv             	temporary_4 temporary_5 temporary_6
	addvv             	Ci temporary_0 temporary_4
	movevv            	Oi Os
	mulvv             	Ci Ci Oi
	return            
