!!ARBvp1.0
ATTRIB pos = vertex.position;
PARAM mat[4] = { state.matrix.projection };
PARAM mat2[4] = { state.matrix.modelview };
OUTPUT opos = result.position;
TEMP modpos;
TEMP temp, temp2;

# transform position to world-space
ADD modpos, pos, program.env[10];
MAD modpos, program.env[13], vertex.normal.x, modpos;
MAD modpos, program.env[9], vertex.normal.y, modpos;

DP4 temp.x, modpos, mat2[0];
DP4 temp.y, modpos, mat2[1];

ABS temp2,temp;
ADD temp2,temp2,program.env[17];
RSQ temp2.x, temp2.x;
RSQ temp2.y, temp2.y;
ADD temp2,temp2,program.env[18];
MAD temp, temp, temp2,program.env[16];

DP4 temp.z, modpos, mat2[2];
DP4 temp.w, modpos, mat2[3];

DP4 opos.x, temp, mat[0];
DP4 opos.y, temp, mat[1];
DP4 opos.z, temp, mat[2];
DP4 opos.w, temp, mat[3];

MUL result.color.xyz, vertex.normal.z, program.env[11];
MAD result.color.w, program.env[12].w, pos.y, program.env[11].w;
MOV result.texcoord, vertex.texcoord;
END
