Hello,
Frame Buffer Object has been implemented.
I just did a little testing... and something interesting popped up.
By using these floating point formats suddenly everything is compatible
again:
mTextureTarget[vTextureIndex] := GL_TEXTURE_RECTANGLE_ARB;
mTextureInternalFormat[vTextureIndex] := GL_RGBA32F_ARB;
// mTextureInternalFormat[vTextureIndex] := GL_FLOAT_RGBA32_NV;
mTexturePixelFormat[vTextureIndex] := GL_RGBA;
mTexturePixelType[vTextureIndex] := GL_FLOAT;
Which is kinda odd... but I have a theory.
Somehow there is a difference between rendering to screen and rendering to
texture.
When the texture is rendered to the screen then the opengl engine or the
driver or the hardware will convert the floating point texture to
colors/rgba's/bytes.
It's during that process that something odd most be happening... somehow the
opengl engine/driver/hardware must be using a different rounding
technique... maybe it's using truncations or ceils I don't know...
Could/would be interesting to find out...
If I now use this than there will be differences between input and output
texture.. which stay the same... no processing is done yet they become
different:
mTextureTarget[vTextureIndex] := GL_TEXTURE_RECTANGLE_ARB;
mTextureInternalFormat[vTextureIndex] := GL_RGBA;
mTexturePixelFormat[vTextureIndex] := GL_RGBA;
mTexturePixelType[vTextureIndex] := GL_FLOAT;
^ Kinda odd...
I am welcome to any other explanations and theories !
But I think I already covered it with the "converting to colors theorie..."
I could try switching back to the above one... and try ceiling and
flooring... to see if that makes a difference !
Bye,
Skybuck.