1!!ARBvp1.0
2
3ATTRIB iPos             = vertex.position;
4ATTRIB iNormal          = vertex.normal;
5
6PARAM mvp[4]            = { state.matrix.mvp };
7PARAM mvIT[4]          	= { state.matrix.modelview.invtrans };
8
9PARAM lightDir     	= state.light[0].position;
10PARAM halfDir      	= state.light[0].half;
11
12PARAM UNIFORMS		= program.local[0];
13
14TEMP normal, dots;
15
16OUTPUT oPos		= result.position;
17OUTPUT oDots	        = result.texcoord[0];
18
19# Transform the vertex to clip coordinates.
20DP4	oPos.x, mvp[0], iPos;
21DP4	oPos.y, mvp[1], iPos;
22DP4	oPos.z, mvp[2], iPos;
23DP4	oPos.w, mvp[3], iPos;
24
25# Transform the normal to eye coordinates.
26DP3	normal.x, mvIT[0], iNormal;
27DP3	normal.y, mvIT[1], iNormal;
28DP3	normal.z, mvIT[2], iNormal;
29
30# Compute diffuse and specular dot products and clamp them.
31DP3	dots.x, normal, lightDir;
32MAX	oDots.x, dots.x, 0.0;
33
34DP3	dots.y, normal, halfDir;
35MAX	oDots.y, dots.y, 0.0;
36
37END