07-16-2015, 03:54 PM
Texture uses normalized integer (i.e. float that range from 0.0 to 1.0).
If you use true Integer, you can't use anymore the fixed function unit of the GPU (aka the blending unit). It is partially possible to do the blending in the shader (see accurate* option). But doing all draw calls is not yet possible (maybe with future hw). Shader blending will also cost extra operations.
Another solution is to use true float (not clamped between 0.0 to 1.0) often call HDR stuff. But it will be more memory intensive (16 bits/(32 bits?) by channel instead of 8). There is also the issue to clamp the value in 0.0 in 255.0.
The most interesting solution will be to uses full integer everywhere with a GPU that support programmable blending.
If you use true Integer, you can't use anymore the fixed function unit of the GPU (aka the blending unit). It is partially possible to do the blending in the shader (see accurate* option). But doing all draw calls is not yet possible (maybe with future hw). Shader blending will also cost extra operations.
Another solution is to use true float (not clamped between 0.0 to 1.0) often call HDR stuff. But it will be more memory intensive (16 bits/(32 bits?) by channel instead of 8). There is also the issue to clamp the value in 0.0 in 255.0.
The most interesting solution will be to uses full integer everywhere with a GPU that support programmable blending.