Stratos: Punto de Encuentro de Desarrolladores

¡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

Mensajes - angelfmarcos

#46
Hola

Quería saber cual es la mejor manera de optimizar el renderizado. ¿Usando display list o con Vertex Buffer Objects?

Ahora mismo estoy usando display list, y tengo un problema al cargar escenas en segundo plano. Lo que hago es cargar objetos y demás en otro hilo. El problema viene al crear las display list que luego al renderizarlas no sale nada. por lo que he podido leer el problema puede venir de realizar las operaciones de dibujado para crear el display list en un hilo aparte. ¿cómo podría solucionar esto?

Un saludo.
#47
Programación gráfica / Camara En Opengl
28 de Mayo de 2006, 12:01:50 PM
 Es un control ActiveX que sirve tanto para el editor de escenarios como para poder visualizar escenas y navegar en ellas.
#48
Programación gráfica / Camara En Opengl
26 de Mayo de 2006, 11:36:33 PM
 Tambien lo había hecho asi. Y la navegación iba perfectamente, pero luego no sabía obtener la orientacion ni posicionar la camara con una orientacion concreta como punto de partida.

La aplicacion que estoy desarrollando es un editor de escenarios en el que vamos añadiendo primitivas, etc.. bastante sencillote, pero una de las cosas que debe poder hacer es manejar la camara mediante la posicion y la orientacion, para poder guardarlo en un fichero y recuperarlo posteriormente.

Estoy pensando que si en lugar de estos 3 valores guardo el x,y,z,w del quaternion podria volver a restaurar la camara sin problemas ¿es correcto?
#49
Programación gráfica / Camara En Opengl
26 de Mayo de 2006, 09:18:26 PM
 Fallaba al ponerme en la posicion (20, 0, 0) y mirar hacia el centro. giraba sobre el eje Y para orientarme hacia el centro y eso lo hacia bien, pero luego el girar sobre el eje Z o X daba el mismo resultado, girando siempre sobre el mismo eje.

El código que estoy usando es


Quaternion ra, rb, rc, r;
Matrix m;
ra.EulerToQuat (ang_a, 0, 0);
rb.EulerToQuat (0, ang_b, 0);
rc.EulerToQuat (0, 0, ang_c);
r = r * rc;
r = r * rb;
r = r * ra;
r.GetMatrix (m);
float m_vals[16];
m.GetValues (m_vals);
glMultMatrixf (m_vals);
glTranslatef (-pos_x, -pos_y, -pos_z);


donde ang_a, ang_b y ang_c son la orientacion de la camara.


El problema de localizar asi el objeto es que necesito en todo momento saber los ángulo de orientación de la cámara. Además debo o acercarme para que se muestre completo en pantalla. Tambíen pensaba hacer la localización por densidad de puntos y no por el centro del objeto (pero bueno, eso para otra version xD)
#50
Programación gráfica / Camara En Opengl
26 de Mayo de 2006, 08:36:27 PM
 La camara la he probado a hacer por varios métodos, pero no encuentro el que encaje del todo con lo que me hace falta. por ejemplo, con quaterniones iba genial la navegacion, pero al posicionar la camara con una orientacion concreta fallaba.

El método que tengo ahora va bien excepto para rotaciones sobre el eje z, que hace un poco lo que le da la gana :(


y aun que queda la parte complicada, localizar un objeto y centrarlo en la pantalla :(

#51
Programación gráfica / Camara En Opengl
26 de Mayo de 2006, 11:10:33 AM
 He usado quaterniones (a partir de un ejemplo que he visto por ahi) y parece que la navegacion con el ratón va mejor (aunque no del todo perfecta). Sin embargo cuando trato de posicionar la camara en un punto en concreto y con una orientación determinada ahi puede pasar cualquier cosa :(
#52
Programación gráfica / Camara En Opengl
25 de Mayo de 2006, 07:39:22 PM
 Lo he hecho asi, pero sigo teniendo los mismos problemas. Si la escena esta de frente,  todo va bien y la camara rota perfectamente sobre cualquier eje. el problema viene cuando tengo una vista lateral, en la que cuando rota la camara sobre el eje x, no me hace ni caso y en su lugar lo hace sobre el z (el y y el z los rota correctamente)
#53
Programación gráfica / Camara En Opengl
25 de Mayo de 2006, 03:46:33 PM
 Si, ya la había visto. Pero no consigo sacar el punto al que miro y el vector up a partir de la orientacion de la camara.
#54
Programación gráfica / Camara En Opengl
25 de Mayo de 2006, 03:33:17 PM
 Hola. Tengo un problema al implementar la camara en openGL para un pequeño motor que estoy desarrollando. La cámara debería funcionar indicandole un punto (posicion) y una orientacion (respecto al eje local de la propia camara y dado en angulos). Ahora mismo estoy usando el siguiente código:

 //Rota sobre el eje de la cámara
 glRotated (ang_c, 0.0f, 0.0f, 1.0f);
 glRotated (ang_b, 0.0f, 1.0f, 0.0f);
 glRotated (ang_a, 1.0f, 0.0f, 0.0f);
 glTranslated (-pos_x, -pos_y, -pos_z);


hasta ahora habia funcionando sin problemas pero he comenzado a detectarlos,

¿Cual sería la forma más correcta de implementar la cámara?

Un saludo.