Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dibujar un grid en opengl

Iniciado por samsaga2, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

samsaga2

                                En teoría es una cosa fácil pero en la práctica no tira ni p'atrás.
Tengo un código que dibuja una especie de tablero de ajedrez:

void KKWorld::drawGrid()
{
   const float size = 1.0f;
   const float size2 = size/2.0f;
   
   glDisable(GL_LIGHTING);
   
   for(float i=-5; i <= 5; i += size)
      for(float j=-5; j <= 5; j += size)
      {
          glBegin(GL_QUADS);
            if(int(i+j) % 2)
               glColor3f(1.0f, 1.0f, 1.0f);
            else
               glColor3f(0.0f, 0.0f, 0.0f);
         
            glVertex3f(-size2 + i, 0.0f, -size2 + j);
            glVertex3f( size2 + i, 0.0f, -size2 + j);
            glVertex3f( size2 + i, 0.0f,  size2 + j);
            glVertex3f(-size2 + i, 0.0f,  size2 + j);
           glEnd();
      }
   
   glEnable(GL_LIGHTING);
}

Vale, no problemo, funciona de forma cojonuda.

El intríngulis está en que yo no quiero dibujar GL_QUADS, quiero un wireframe, para ello en teoría bastaría cambiar el GL_QUADS por un GL_TRIANGLE_STRIP, pero el nene no quiere funcionar, cuando lo canvio no dibuja nada.

¿Alguien sabe donde la estoy cagando?
                               

KAKSTAR

                                Si no me equivoco y recuerdo mal...

hay alguna funcion para indicar que te dibuje en wireframe independiente del objecto.

Es decir, le decies que te haga un GL_QUAD i luego le dices wireframe...

en esta pagina de silicon graficos hay ejemplos de codigo en opengl, y hay uno de un ajedrez, a lo mejor te sirve:

http://www.sgi.com/software/opengl/example...les/glut/demos/


talueg                                
akstar

Existen 10 tipos de personas, las que entienden binario y las que no.

Ithaqua

                                glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

luego para restaurarlo:

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

samsaga2

                                Pues ahora si que no lo entiendo. Si hago las pruevas con una esfera creada con quadrics funciona, pero si intento hacerlo con GL_QUADS o GL_TRIANGLES no tira :. Es mas, parece que dibujar GL_QUADS funciona bien (si no esta activado lo del PolygonMode) pero no consigo dibujar absolutamente nada que tenga GL_TRIANGLES. Y parece que este todo bien, la camara esta bien puesta, las normales esta bien, tengo el cullface desactivado, colores bien puestecitos...
                               

Ithaqua

                                Dependiendo de la primitiva que quieras dibujar tienes que indicar los vértices de uno u otro modo. El bucle que tienes te serviría para quads, pero no para triángulos. Éstos tienes que indicarlos de 3 en 3 vértices, o bien 4 y usar strips o fans.

                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

samsaga2

                                Nada, lo he solucionado instalando los drivers de video anteriores. Ahora tira todo a la perfección.                                

Ithaqua

                                No me quiero ni imaginar la tarjeta que tienes para que te funcione mal eso :sonriendo:

                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

samsaga2

                                Es que tenia instalados unos drivers beta tope de guarris.                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.