Open GL - Projección Ojo-Ventana

 
Vista:

Projección Ojo-Ventana

Publicado por Raul (1 intervención) el 31/01/2009 21:25:03
Al hacer una proyección OpenGL uno modela suponiendo algo semejante a que esta justo en frente a una ventana.

Mi problema surje al no estar específicamente frente (central) a la ventana.
Me pregunto si ¿será una limitación de OpenGL o hay algo que pueda solucionarlo?.

Me explico:
Si usamos glFrustum y gluLookAt pasaremos parámetros que indicarán:
* La posición de nuestro ojo, dirección o punto hacia el que miramos, y lo que es para arriba (¿que pasa si no son ortogonales?).
* Tamaño de la ventana, distancia entre nosotros y la ventana y distancia hasta donde llega la visión.

Sucede que todo el modelado se basa en una pirámide de base rectangular, donde las aristas son todas de igual longitud, pues el ojo se encuentra SIEMPRE justo frente a la ventana (digamos, de forma central).

El problema que planteo se da cuando uno piensa en algo como un prisma de base rectangular, pero, donde las aristas no son de igual longitud, vale decír que sería como que el ojo NO se encuentra justo en frente (Centralmente digamos) a la ventana.

¿OpenGL, glu o glut estan preparados para renderizar este caso? ¿Que se podría hacer para resolver este problema?. Gracias :)
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:Projección Ojo-Ventana

Publicado por Fitopawer (9 intervenciones) el 22/04/2009 00:10:11
Tienes que utilizar gluPerspective a la cual le pasas los argumentos de ángulo de abertura de la cámara en y el ratio de la longitud/altura de tu render la distancia mínima observable y la distancia máxima observable.
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:Projección Ojo-Ventana

Publicado por yoel (1 intervención) el 11/03/2010 22:44:06
Bueno, me llamo Yoel y tratare de responderte lo que preguntas con lo que he leido de OpenGL. El problema que planteas NO es un problema ni una limitacion de OpenGL se puede implementar mediante la funcion que mencionas llamada glFrustum. Debes buscar informacion detallada de esta funcion porque generalmente no esplican mucho de ella, solo lo que mencionas de que define una piramide, pero resulta que glFrustum no tiene que siempre representar una piramide simetrica, mediantes esto es posible hacer lo que quieres. Esto que busca, como lo he interpretado es : tratar de representar una escena en openGl en donde se tome en cuenta que el usuario que esta frente a la pantalla no esta en el centro de esta.
De hecho yo estoy trabajando en un sofware que permita eso que planteas y lla lo tengo medio logrado, mi idea es que mediante una webcam el soft obtenga la posicion del usuario respecto a la pantalla y segun esta informacion represente adecuadamente la escena 3D. Ademas pretendo generar una imagen estereoscopica (usando gafas con filtros de colores) para dar realismo de 3D real, si te interesa esto escribe a [email protected]
Debes buscar informacion especializada (no te conformes ) de glFrustum asimetricio en internet.
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