!!ARBvp1.0

TEMP vertexClip;
TEMP worldVertex;

ATTRIB	vNorm	= vertex.normal;
PARAM	IMV[4]	= { state.matrix.modelview.invtrans };
TEMP	eyeNorm;

MOV eyeNorm, vertex.normal;

DP3  eyeNorm.x, state.matrix.texture.row[0], vNorm;
DP3  eyeNorm.y, state.matrix.texture.row[1], vNorm;
DP3  eyeNorm.z, state.matrix.texture.row[2], vNorm;

#unit
DP3  eyeNorm.w, eyeNorm, eyeNorm;
RSQ  eyeNorm.w, eyeNorm.w;
MUL  eyeNorm, eyeNorm, eyeNorm.w;

# modelview+projection = screencoord?
DP4 vertexClip.x, state.matrix.mvp.row[0], vertex.position;
DP4 vertexClip.y, state.matrix.mvp.row[1], vertex.position;
DP4 vertexClip.z, state.matrix.mvp.row[2], vertex.position;
DP4 vertexClip.w, state.matrix.mvp.row[3], vertex.position;

#store worldcoords in second unit?
DP4 worldVertex.x, state.matrix.texture.row[0], vertex.position;
DP4 worldVertex.y, state.matrix.texture.row[1], vertex.position;
DP4 worldVertex.z, state.matrix.texture.row[2], vertex.position;
DP4 worldVertex.w, state.matrix.texture.row[3], vertex.position;


MOV result.position, vertexClip;
MOV result.color, eyeNorm; # vertex.color;
MOV result.texcoord[0], vertex.texcoord;
MOV result.texcoord[1], worldVertex;

END
