Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[AYUDA - OPENGL+SDL] Camra y gluLookAt

Iniciado por kittie4man, 24 de Junio de 2008, 07:05:46 PM

« anterior - próximo »

kittie4man

Hola a todos!!

Estoy teniendo problemas con el tema de la camara y del gluLookAt.
En principio mi problema es que:

Cuando inicio opengl, lo hago así:

GLfloat ratio;
ratio = ( GLfloat )SCREEN_WIDTH / ( GLfloat )SCREEN_HEIGHT;
glViewport( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT );

glMatrixMode( GL_PROJECTION );
glLoadIdentity( );

glFrustum(0.0f, 800.0f, 600.f, 0.0f, 1.0f, 60.0f);
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );


Ahora bien, despues de probar y probar y buscar, no puede hacer que el gluLookAt realizara algun cambio sobre mi escena inicial. Probe cambiando todos los valores, de a 1 y también todos juntos, de a poco y no encontre cambios.

Decidi usar gluPerspective cambiando la linea del glFrustum... a:
gluPerspective( 45.0f, ratio, 1.0f, 100.0f );


Con el cual me surgen 2 errores.
1).- La vista cambio, y se esta viendo completamente mal.
Que quiero decir con que cambio y se ve mal.
Los cubos que creo, los hago así:

glBegin(GL_QUADS);
// Front Face
glTexCoord2f(0.0f, 0.0f); glVertex3f(-15.0f, -15.0f, 0.0f);// Bottom Left Of The Texture and Quad
glTexCoord2f(1.0f, 0.0f); glVertex3f( 15.0f, -15.0f, 0.0f);// Bottom Right Of The Texture and Quad
glTexCoord2f(1.0f, 1.0f); glVertex3f( 15.0f,  15.0f, 0.0f);// Top Right Of The Texture and Quad
glTexCoord2f(0.0f, 1.0f); glVertex3f(-15.0f,  15.0f, 0.0f);// Top Left Of The Texture and Quad
// Back Face
glTexCoord2f(1.0f, 0.0f); glVertex3f(-15.0f, -15.0f, 0.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(1.0f, 1.0f); glVertex3f(-15.0f,  15.0f, 0.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.0f, 1.0f); glVertex3f( 15.0f,  15.0f, 0.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.0f, 0.0f); glVertex3f( 15.0f, -15.0f, 0.0f); // Bottom Left Of The Texture and Quad
// Top Face
glTexCoord2f(0.0f, 1.0f); glVertex3f(-15.0f,  15.0f, 0.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.0f, 0.0f); glVertex3f(-15.0f,  15.0f, 0.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(1.0f, 0.0f); glVertex3f( 15.0f,  15.0f, 0.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(1.0f, 1.0f); glVertex3f( 15.0f,  15.0f, 0.0f); // Top Right Of The Texture and Quad
// Bottom Face
glTexCoord2f(1.0f, 1.0f); glVertex3f(-15.0f, -15.0f, 0.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.0f, 1.0f); glVertex3f( 15.0f, -15.0f, 0.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.0f, 0.0f); glVertex3f( 15.0f, -15.0f, 0.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(1.0f, 0.0f); glVertex3f(-15.0f, -15.0f, 0.0f); // Bottom Right Of The Texture and Quad
// Right face
glTexCoord2f(1.0f, 0.0f); glVertex3f( 15.0f, -15.0f, 0.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(1.0f, 1.0f); glVertex3f( 15.0f,  15.0f, 0.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.0f, 1.0f); glVertex3f( 15.0f,  15.0f, 0.0f); // Top Left Of The Texture and Quad
glTexCoord2f(0.0f, 0.0f); glVertex3f( 15.0f, -15.0f, 0.0f); // Bottom Left Of The Texture and Quad
// Left Face
glTexCoord2f(0.0f, 0.0f); glVertex3f(-15.0f, -15.0f, 0.0f); // Bottom Left Of The Texture and Quad
glTexCoord2f(1.0f, 0.0f); glVertex3f(-15.0f, -15.0f, 0.0f); // Bottom Right Of The Texture and Quad
glTexCoord2f(1.0f, 1.0f); glVertex3f(-15.0f,  15.0f, 0.0f); // Top Right Of The Texture and Quad
glTexCoord2f(0.0f, 1.0f); glVertex3f(-15.0f,  15.0f, 0.0f); // Top Left Of The Texture and Quad
glEnd();


Primero creo los cubos y despues los muevo a la posicion correcta.
Ahora bien, con frustum este cubo y su translate correspondiente se ve perfecto, pero cuando pongo perspective tengo que hacer que el Z de cada cubo sea por lo menos de -45.0 (contra -1.0 que uso con frustum) para que se vea decente (ni siquiera bien).


2).- El gluLookAt tampoco realiza ningun cambio sobre la escena con perspective.
Al igual que con frustum y con casi las mismas pruebas.


En fin, esos son mis 2 problemas comenzando con mayor importancia el problema con la perspective.
Búsque en google, en este foro y demas y no pude encontrar la solucion a mi problema.

Si alguno me puede ayudar se lo voy a agradecer.

Desde ya muchas gracias.

Salu2
Juan Pablo






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.