Open GL - Novato: Dibujar Cubo Colores

   
Vista:

Novato: Dibujar Cubo Colores

Publicado por Supra (12 intervenciones) el 02/05/2008 18:01:00
Hola que tal?? soy novato en esto de OpenGL y para empezar estoy dibujando un cubo, con caras de diferentes colores para ir familiarizandome.

Bueno mi problema es que cuando dibujo la cara de frente le añado un color por ejemplo rojo, hasta aqui lo hace bien. Ahora después quiero crear la cara de detrás del cubo y le añado el color amarillo, pero esta cara queda por encima de la de color rojo ( la de en frente) y no la deja ver. A ver si me podéis hechar una mano a ver que hago mal.

Muchas Gracias

PD: Mi Codigo es el siguiente:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

glBegin(GL_QUADS);

//Cara de Frente

glColor3f(1.0f, 0.0f, 0.0f); //Color Rojo
glVertex3f(1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);


//Cara de Detras

glColor3f(1.0f, 1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(1.0f, 1.0f, -1.0f);

glEnd();
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Novato: Dibujar Cubo Colores

Publicado por Juan Urrutia (3 intervenciones) el 11/06/2008 22:25:35
que onda man

oye pues cale tu codigo y pues si se dibujan las dos caras

de hecho heche la vista para atras y le di una pekeña rotacion para ver si si se estan dibujando las dos caras y si lo hace

aki esta el codigo...practicamente no modifique nada de lo que pusiste

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

glTranslatef (0.0f,0.f, -10.0f);
glRotatef (45.0f, 1.0f, 0.0f, 0.0f);

glBegin(GL_QUADS);

//Cara de Frente
glColor3f(1.0f, 0.0f, 0.0f); //Color Rojo
glVertex3f(1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);

//Cara de Detras

glColor3f(1.0f, 1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(1.0f, 1.0f, -1.0f);

glEnd();

checate que cuando seteas los estados que necesites para tu aplicacion tengas esto

glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Novato: Dibujar Cubo Colores

Publicado por IsakMtz (2 intervenciones) el 31/03/2010 02:32:17
Cuando tenemos varios objetos sólidos ó primitivas, algunos de ellos estarán más próximos a nosotros (de acuerdo al eje z, el eje de profundidad). Si un objeto esta por detrás de otro, evidentemente solo veremos el de adelante, que tapa al de atrás.

Para evitar esto, existe el buffer de profundidad o "depth buffer", en el se almacenan las zetas o distancias del punto de vista a cada pixel. Para verificar que no exista algún objeto que este por delante tapando a lo que vamos a dibujar, es necesario activar el GL_DEPTH_BUFFER

Gl.glEnable(Gl.GL_DEPTH_BUFFER) 'Para VisualStudio

glEnable(GL_DEPTH_BUFFER) 'Para C++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar