!!ARBvp1.0 TEMP R0; SUB R0, vertex.position, program.env[4]; MAD R0, R0.wwww, program.env[4], R0; DP4 result.position.x, R0, state.matrix.mvp.row[0]; DP4 result.position.y, R0, state.matrix.mvp.row[1]; DP4 result.position.z, R0, state.matrix.mvp.row[2]; DP4 result.position.w, R0, state.matrix.mvp.row[3]; END