!!ARBvp1.0 ATTRIB uv = vertex.texcoord[0]; ATTRIB offset = vertex.texcoord[1]; PARAM transform[4] = { program.local[0..3] }; PARAM modelViewMatrix[4] = { program.local[4..7] }; PARAM losTransform = program.local[8]; TEMP axis1; MOV axis1, modelViewMatrix[0]; TEMP axis2; MOV axis2, modelViewMatrix[1]; TEMP position; MAD position.xyz, axis1, offset.x, vertex.position; MAD position.xyz, axis1, offset.y, position; MAD position.xyz, axis2, offset.x, position; MAD position.xyz, axis2, -offset.y, position; MOV position.w, vertex.position.w; DP4 result.position.x, transform[0], position; DP4 result.position.y, transform[1], position; DP4 result.position.z, transform[2], position; DP4 result.position.w, transform[3], position; MOV result.texcoord[0], uv; MOV result.color, vertex.color; MAD result.texcoord[1], vertex.position.xzzz, losTransform.x, losTransform.y; END