Quote:

have you tested how the framerates with this compared to if you're using a simple four-vertex plane in front of the camera that is transparent and can change colors? I'm wondering how it affects the framerates and whether the plane method is faster.



I didn't compare. But when you place plane in front of camera, this need extra copy operation to frame buffer. Gamma correction method did it without copying. May be it faster (it just a lookup tables for RGB)...
Quote:


Also, apprently you're just changing the overall color, can you change the color of each pixel differently (depending on what color is there)?



Look at Help from Micro$oft above ! The remapping is performed by way of three look-up tables, one for each color component.
Here's how it works: Direct3D takes a pixel from the frame buffer and evaluates its individual red, green, and blue color components. Each component is represented by a value from 0 to 65535. Direct3D takes the original value and uses it to index a 256-element array (the ramp), where each element contains a value that replaces the original one. Direct3D performs this look-up and replace process for each color component of each pixel in the frame buffer, thereby changing the final colors for all the on-screen pixels.