HOLA,
tengo unas texuras que adoptan el color del poligo coloreado que tengo en la escena ¿como lo evito?
mas descritivamente:
tengo un
glBegin(GL_QUADS);
glColor3f(1,0,0);
glNormal3f(0,-1,0);
glVertex3f(-largo,altura,-largo);
glVertex3f(-largo,altura,largo);
glVertex3f(largo,altura,largo);
glVertex3f(largo,altura,-largo);
glEnd();
luego en otro lado cargo unas texturas.
Estas estan bien si se cargan solas pero al momento de
que se muestran con el GL_QUAD de color rojo, estas se vuelven rojas.
La solución rápida y guarra es poner el color a blanco antes de pintar con texturas y la textura aparecerá sin alterar ya que al modular con blanco el color que sale es el de la textura.
Se puede hacer lo que tu pides pero es por no liarte más :)
Cuando generas la texturas y/o bindeas la misma para aplicarla a un poligono puedes seleccionar el modo en el que esta se aplica.
Por ejemplo:
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
GL_MODULATE, GL_ADD, GL_DECAL... hay varios modos de aplicar la textura, estoy seguro que si los miras un poco obtendras rápidamente el que te viene bien.
Creo que el glColor3f(1,0,0); sobraría ahí, a no ser que lo quieras para pintar ese poligono en particular. Normalmente en todas las escenas cuando limpias con el color lo pones a 1,1,1. Y si para debug quieres pintar en color asignas glColor3f(1.0f,0.0f,0.0f); y luego restauras el color por defecto aplicable a todo lo demás glColor3f(1.0f,1.0f,1.0f);
glColor3f(1.0f,0.0f,0.0f); // Se asigna color
pintoPoligono();
glColor3f(1.0f,1.0f,1.0f); // Se restaura el color por defecto
Acuerdate siempre de restaurar el color por defecto blanco. Y de usar en las funciones de coma flotante, _f floats y no enteros :P
Saludetes!
Cita de: "Prompt"Cuando generas la texturas y/o bindeas la misma para aplicarla a un poligono puedes seleccionar el modo en el que esta se aplica.
Por ejemplo:
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
GL_MODULATE, GL_ADD, GL_DECAL... hay varios modos de aplicar la textura, estoy seguro que si los miras un poco obtendras rápidamente el que te viene bien.
Supongo que el que necesitará es GL_REPLACE para no usar colores,y GL_MODULATE para combinarlos.
Si pones el modo ese GL_LINE (creo que es ese, el que no es GL_FILL me refiero) igual pasara lo que quieres tu? O igual las texturas tampoco se veran.. ni idea, pero por probar..
MUCHAS GRACIAS.
Yo no estoy diciendo que tenga problemas con el poligono en el cual pego la textura sino en otro.
En la escena tengo un skybox(cubo con 6 texturas una para cada lado).
Lo que quiero hacer es sacar la textura del lado superior del cubo y reemplazarlo por un poligono del color elegido.
El problema es que segun sea este color elegido con que pintara este poligono tambien se me pintaran las otras texturas del cubo.
Osea por que pasa que si tengo un textura cualquiera en la escena y tengo no en mismo lugar ni siquiera toacando a la textura una linea por ejemplo de color azul ¿por que la textura adopta el color azul?
Acaso desde el momento que se usan texturas es incompatible con las lineas o poligonos con colores.
MUCHAS GRACIAS
SALUDOS
Restaura el color a blanco como te dice mas arriba con glColor3f(1.0f,1.0f,1.0f); A mi me pasa lo mismo en la unica textura en la que no asigno material por desactivar la iluminacion. Supongo que sera cosa del GL_MODULATE, si es que usas ese modo u otro que blendee la textura.
Para eso creo que lo mejor es GL_DECAL que dibuja la textura encima del color pero la mezcla dependiendo del valor alpha. Deberías entonces poner la textura superior con alpha a 0 y el resto a 1.0