texture mapping and glColor() question

Started by
2 comments, last by Thek 22 years, 6 months ago
I''ve come across a strange problem when texture mapping that I can''t find a solution for anywhere on the net, so I thought I''d try here... An example of the problem: After I laod textures from a grassland tile-set (for a map editor I''m working on), I can''t change my glColor to anything but green or black. Specifically, any glColor() call short of the color black produces some shade of green. A call to glColor3f(1.0, 1.0, 1.0) should give me white, but instead gives a nice forest color... go figure. The tiles in the tile-set are all primarily green, and I''m sure the problem is related to this somehow, but I can''t figure out the relationship. My code works fine in all other respects. Is this problem too vague? Anyone have any ideas? Confused... Thek
"There are three kinds of people in the world: those who can count, and those who can't."
Advertisement
Try making the tiles white and you should be able to color the tiles any way you like with glcolor. I think.
Think of it this way.. You have the colours of your texturemap. glColor functions multiply the pixels RGB channels by the RGB values specified. For instance you have a pixel of pure green (RGB 0,255,0) and you are using the colour white with glColor (glColor3f(1,1,1)), the output colours will be R 0*1 G 255*1 B 0*1, therefore the output is the same as the input colour in this case, pure green.

Now you want to make it all black? glColor3f(0,0,0) will give R 0*0 G 255*0 B 0*0, or each colour component will come out black.

One last example, the input textures pixel colour is RGB 132,23,212 (just random numbers i came up with), and you use glColor3f(0.2,0.4,0.6) (more random numbers), the output pixels colour will be R 132*0.2 G 23*0.4 B 212*0.6, or RGB 26.4,9.2,127.2

Hope that helps you understand the results you''re getting a bit better
-----------------------"When I have a problem on an Nvidia, I assume that it is my fault. With anyone else's drivers, I assume it is their fault" - John Carmack
Thanks! I had read about OpenGL multiplying the color by the RGB of the textures, but hadn''t connected it to my problem. As I recall, there was something about having white borders around the image to allow for a full range of color... not sure about this, though. I should be able to clear things up now.
Just to get it straight... if I wanted to go back to a full range of drawing color without delving into borders, I could just make sure the last loaded texture was a solid white tile, right?
Thanks again,
Thek
"There are three kinds of people in the world: those who can count, and those who can't."

This topic is closed to new replies.

Advertisement