!!ARBfp1.0 TEMP texv, temp1, temp2; TEX texv, fragment.texcoord[0], texture[0], RECT; MIN temp1.r, texv.r, texv.g; MIN temp1.r, temp1.r, texv.b; MAX temp1.g, texv.r, texv.g; MAX temp1.g, temp1.g, texv.b; MUL temp1.b, temp1.r, -1; MUL temp1.a, temp1.g, -1; ADD temp1.a, temp1.a, 1; ADD temp2.r, texv.r, temp1.b; ADD temp2.r, temp2.r, temp1.a; ADD temp2.g, texv.g, temp1.b; ADD temp2.g, temp2.g, temp1.a; ADD temp2.b, texv.b, temp1.b; ADD temp2.b, temp2.b, temp1.a; MOV temp2.a, texv.a; MOV result.color, temp2; END