Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ogl Y Multitexturas

Iniciado por vicho, 26 de Diciembre de 2003, 03:38:50 PM

« anterior - próximo »

vicho

 hola les cuento tengo el siguiente problema al tratar de usar la multitextura, logro renderizar una vez solamente un poligono con multitextura, al segundo renderizado me renderiza el poligono en blanco

ahi esta el codigo

aparece una funcion GenTexture
por el uso que le doy es casi obvio lo que hace
si alguien sabe cual es el problema que me diga por favor



typedef void (*GL_MultiTexCoord2fARB)(unsigned int,float,float);
typedef void (*GL_ActiveTextureARB)(unsigned int);
GL_MultiTexCoord2fARB glMultiTexCoord2fARB;
GL_ActiveTextureARB glActiveTextureARB;

int main(int argc,char *argv[])
{
GLuint texture[2];
SDL_Surface *screen;

SDL_Init(SDL_INIT_VIDEO);
screen=SDL_SetVideoMode(640,480,0,SDL_SWSURFACE|SDL_OPENGL);

glActiveTextureARB=(GL_ActiveTextureARB)SDL_GL_GetProcAddress("glActiveTextureARB");
glMultiTexCoord2fARB=(GL_MultiTexCoord2fARB)SDL_GL_GetProcAddress("glMultiTexCoord2fARB");

glEnable( GL_TEXTURE_2D );
glShadeModel( GL_SMOOTH );
glClearColor( 0.0f, 0.0f, 0.0f, 0.5f );
glClearDepth( 1.0f );
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );

glViewport( 0, 0, ( GLsizei )640, ( GLsizei )480 );
glMatrixMode( GL_PROJECTION );
glLoadIdentity( );
gluPerspective( 45.0f, 640/480, 0.1f, 100.0f );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );

GenTexture("00.jpg",&texture[0]);
GenTexture("01.jpg",&texture[1]);

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity( );
glTranslatef( 0.0f, 0.0f, -5.0f );

glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[0]);

glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[1]);

glBegin(GL_QUADS);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 0.0f);
glVertex3f( 1.0f, -1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 1.0f);
glVertex3f( 1.0f,  1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 1.0f);
glVertex3f(-1.0f,  1.0f,  1.0f);

glEnd();
SDL_GL_SwapBuffers( );

SDL_Delay(5000);

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity( );
glTranslatef( 0.0f, 0.0f, -5.0f );

glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[0]);

glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[1]);

glBegin(GL_QUADS);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 0.0f);
glVertex3f( 1.0f, -1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 1.0f);
glVertex3f( 1.0f,  1.0f,  1.0f);

glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 1.0f);
glVertex3f(-1.0f,  1.0f,  1.0f);

glEnd();
SDL_GL_SwapBuffers( );

SDL_Delay(5000);
}

vicho

 y el cacho es de windows, la cosa pa rara, por que hago lo mismo con linux y anda bien






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.