!!ARBvp1.0 PARAM mvp[4] = {state.matrix.mvp}; PARAM light = program.env[0]; TEMP temp; ADD temp, vertex.position, -light; SWZ temp, temp, x, y, z, 0; MAD temp, vertex.position.w, light, temp; DP4 result.position.x, mvp[0], temp; DP4 result.position.y, mvp[1], temp; DP4 result.position.z, mvp[2], temp; DP4 result.position.w, mvp[3], temp; END