Thanks, Emre. That solution works well and the transparency on the negative material looks great now.

bmap_process applies the selected material to a defined bmap. Then bmap_purge can quickly remove the edited version from memory which will make the bmap return to its original state. Doing it this way to add effects to bmaps seems to work well. At the moment I've only tested material that effects color changes.

I'll keep digging into some shader code and try to figure some thing's out. Thanks again for your help.