PDA

View Full Version : Color editing/blending of texture



Mr.Byteside
08-15-2010, 04:59 PM
Hi,

I have a texture with a font on it with a brown colour. In GIMP you can put a layer over it with (for example) a blue colour and select layer properties on 'colour' and the image/font takes those colours. The algorithm has something to do with converting first to HSL/HSB, but perhaps that's not needed. (Here is how GIMP does it: http://git.gnome.org/browse/gimp/tree/app/composite/gimp-composite-generic.c?h=gimp-2-6#n542)

How should I go about doing this in OpenGL. Is it possible? I read something about ARB_texture_env_combine (here: http://www.gamedev.net/community/forums/topic.asp?topic_id=214725), is that a possibility?

Please some help. I have no idea where to start. :(

DmitryM
08-16-2010, 04:32 AM
As far as I can see from the GIMP sources, it has to be done in HSL domain. You can do it in a shader, that accepts 2 texture units and produces one output color.

Mr.Byteside
08-16-2010, 10:36 AM
Could you give a bit more info? Perhaps example code or where I can find example (tutorial) to work with shaders.

Mr.Byteside
08-21-2010, 02:41 AM
I'm using this OpenGL2 code http://www.lighthouse3d.com/opengl/glsl/index.php?oglexample1 for shaders, but when I call setShaders() in my program (which is opengl in windows form), the program crashes.

Compiling the program of that website works and I'm even able to run it as it is supposed, but putting the code into my program makes it crash.

It looks like the program crashes on these two:

v = glCreateShader(GL_VERTEX_SHADER);
f = glCreateShader(GL_FRAGMENT_SHADER);

:(

Rosario Leonardi
08-21-2010, 12:51 PM
Did you load the function properly?
If you are using an extension function or a core function of a version superior to openGL 1.1 you need to load id (with glew or another gl loader... or by hand, but it's very boring).

Mr.Byteside
08-21-2010, 01:56 PM
Thanks for the help.

Apparently I only needed to add this little line:

glewInit();