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