!!ARBvp1.0 OPTION ARB_position_invariant ; TEMP R0, R1, R2; PARAM defaultTexCoord = { 0, 0.5, 0, 1 }; SUB R0, program.env[4], vertex.position; DP3 result.texcoord[0].x, vertex.attrib[9], R0; DP3 result.texcoord[0].y, vertex.attrib[10], R0; DP3 result.texcoord[0].z, vertex.attrib[11], R0; MOV result.texcoord[1], defaultTexCoord; DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10]; DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11]; MOV result.texcoord[2], defaultTexCoord; DP4 result.texcoord[2].x, vertex.position, program.env[9]; DP4 result.texcoord[3].x, vertex.position, program.env[6]; DP4 result.texcoord[3].y, vertex.position, program.env[7]; DP4 result.texcoord[3].w, vertex.position, program.env[8]; MOV result.texcoord[4], defaultTexCoord; DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12]; DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13]; MOV result.texcoord[5], defaultTexCoord; DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14]; DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15]; SUB R0, program.env[4], vertex.position; DP3 R1, R0, R0; RSQ R1, R1.x; MUL R0, R0, R1.x; SUB R1, program.env[5], vertex.position; DP3 R2, R1, R1; RSQ R2, R2.x; MUL R1, R1, R2.x; ADD R0, R0, R1; DP3 result.texcoord[6].x, vertex.attrib[9], R0; DP3 result.texcoord[6].y, vertex.attrib[10], R0; DP3 result.texcoord[6].z, vertex.attrib[11], R0; MAD result.color, vertex.color, program.env[16], program.env[17]; END !!ARBfp1.0 OPTION ARB_precision_hint_fastest; TEMP light, color, R1, R2, localNormal, specular; PARAM subOne = { -1, -1, -1, -1 }; PARAM scaleTwo = { 2, 2, 2, 2 }; DP3 specular, fragment.texcoord[6],fragment.texcoord[6]; RSQ specular, specular.x; MUL specular, specular.x, fragment.texcoord[6]; TEX light, fragment.texcoord[0], texture[0], CUBE; MAD light, light, scaleTwo, subOne; TEX localNormal, fragment.texcoord[1], texture[1], 2D; MOV localNormal.x, localNormal.a; MAD localNormal, localNormal, scaleTwo, subOne; DP3 light, light, localNormal; TXP R1, fragment.texcoord[3], texture[3], 2D; MUL light, light, R1; TXP R1, fragment.texcoord[2], texture[2], 2D; MUL light, light, R1; TEX R1, fragment.texcoord[4], texture[4], 2D; MUL color, R1, program.env[0]; DP3 specular, specular, localNormal; TEX R1, specular, texture[6], 2D; MUL R1, R1, program.env[1]; TEX R2, fragment.texcoord[5], texture[5], 2D; ADD R2, R2, R2; MAD color, R1, R2, color; MUL color, light, color; MUL result.color, color, fragment.color; END