Logo

¡Bienvenido a Stratos!

Acceder

Foros



Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - marcianus

#1
Programación gráfica / glut.h y windows.h a la vez.
14 de Septiembre de 2009, 12:36:33 PM
Estoy haciendo mis pruebas con Visual Studio Express. Me encuentro en un tutorial que necesito emplear la libreria windows.h (para utilizar la funcion Sleep(), pero cuando la añado como cabecera, me encuentro que "choca" con  GL/glut.h, ya que al compilar, me da error de redefinicion del metodo exit().  ???

Hay alguna manera sencilla de solventar o "rodear" esta "pequeña dificultad"?

Utilizo Sleep()  de windows.h porque el tutorial que sigo es de UNIX  y el metodo empleado aqui, usleep() no me lo reconoce el compilador de Visual Studio (me soprende porque usleep() pertenece a la libreria POSIX). Quizas es que me dejo algun otro fichero de cabecera por incluir?

Me pasa lo mismo utilizando los metodos siguientes:

srandom() y random()

aunque estos me importan menos (se han de emplear para inicializacion de variables y poniendo valores fijos en lugar de random de momento me sirve).

gracias y saludos
#2
Programación gráfica / Primerizo con OpenGL, dudas de concepto
14 de Septiembre de 2009, 10:45:18 AM
Antes que nada saludos a todos. Este es mi primer mensaje (a pesar de llevar ya un tiempecito leyendo por aqui) y como no podia ser, es para consultar algunas dudas conceptuales sobre mis primeros "pasitos" en OpenGL

1. El modo de proyeccion de OpenGL es un sistema de proyeccion de mano derecha, por defecto con el plano x,y en la pantalla y las coordenadas z positivas hacia el observador y las coordenadas negativas "alejandose" del mismo.
¿ Correcto?

2. Uso del modo de proyeccion Ortogonal, GLOrtho.

Entiendo que en este modo de proyeccion solo se visualizan los objetos que quedan dentro del volumen de proyeccion determinado por el cubo construido a partir de los parametros pasados a dicho metodo.

Por ejemplo, supongamos el siguiente modo de proyeccion, con x1=x1=z1>0 :

glOrtho(-x1,x1,-y1,y1,-z1,z1).

El plano de visualizacion sobre el que se proyectan los objetos es el plano z = z1, mirando dicho plano desde "fuera" del cubo, en direccion de las z's negativas (la cara anterior del cubo)

¿Correcto?

Es importante el orden de los vertices "delimitadores" del volumen porque cambian el plano de proyeccion. ¿Correcto?

Porque si empleo:

glOrtho(-x1,x1,-y1,y1,z1,-z1).


EDITO: se supone que glOrtho "funciona asi":

glOrtho( left, right, bottom, top, zNear, zFar )

Jugando con un fichero de ejemplo, me sale que en este modo de proyeccion, el sistema de coordenadas es "DE MANO IZQUIERDA"  ??? ??? (viendo las imagenes en el plano de proyeccion siempre desde el lado negativo de z).

-----------------------------------------------------------------------------------------------------------------------------------------------------
1.a Con este modo de proyeccion no tiene sentido emplear gluLookAt (aunque lo invoquemos, "no hace nada"
o
1.b La llamada en cualquier momento a gluLookAt "hace pasar" de manera automatica al modo gluPerspective()?

2. Uso de gluPerspective y gluLookAt

Si invocamos el modo de proyeccion en perspectiva, automaticamente se utiliza por defecto los siguiente valores de gluLookAt

gluLookAt(0,0,0,0,0,-1,0,1,0) ("mirando" hacia las z's negativas)


Es decir, el punto de vista desde el origen del sistema de coordenadas universal mirando en la direccion de las z negativas y con la camara "vertical".  (vector Up es ortogonal al vector "que mira").¿Correcto?.

o

gluLookAt(0,0,0,0,0,1,0,1,0) ("mirando" hacia las z's positivas)


Si "levanto" un poco la camara y la traslado a un  observador que este en (0,0,5)  y mirando al origen de coordenadas, manteniendo el vector Up (0,1,0):

gluLookAt (0,5,5,0,0,0,0,1,0)

las dudas son sobre "donde apunta" el vector Up. ¿Sus coordendas 0,1,0 son respecto al sistema de coordenadas universal?. En este caso el vector "que mira" y el vector Up no son ortogonales pero si delimitan un plano vertical. Asi que entiendo que el vector Up simplemente se "emplea" para "rotar la camara" sobre su propio "punto de mira". ¿Correcto?


Disculpas por el ladrillazo pero necesito tener muy claros estos conceptos para "seguir adelante".

saludos






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.
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.