!!ARBfp1.0 PARAM surfacecolor = program.local[5]; TEMP color; MUL color, fragment.texcoord[0].y, 2.0; ADD color, 1.0, -color; ABS color, color; ADD color, 1.01, -color; # Some cards have a rounding error MOV color.a, 1.0; MUL color, color, surfacecolor; MOV result.color, color; END