Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dudas con la iluminacion en opengl

Iniciado por luisdomarco, 23 de Junio de 2009, 12:04:59 PM

« anterior - próximo »

Prompt

yo veo el video bien, nose, sigues teniendo algun problema?

luisdomarco

#16
Cita de: Prompt en 09 de Julio de 2009, 02:52:14 PM
yo veo el video bien, nose, sigues teniendo algun problema?

Vamos a ver. Lo que pretendo es que una luz sea direccional y apunte al centro, bien, la otra posicional, bien, y la última direccional pero que la dirección vaya cambiando y que ilumine también hacia las paredes pero no lo consigo.

Lo que hago es lo siguiente.

Declaro luzrdir como un vector de 3 elementos (lo he mirado y en este caso no hay cuarto parámetro, aunque por si acaso he probado con cuatro parámetros pero tampoco resulta),

GLfloat luzrdir[]={0,0,1};  // dirección de la luz roja

uso el mismo método para calcular la dirección que para calcular la posición y normalizo el vector por que creo que en algún sitio he leído que el vector debe estar normalizado  (también lo he hecho sin normalizar el vector y el resultado es el mismo), es decir,

   
luzrdir[0]=GLfloat(cos(tm *0.0005f)); // tm= tiempo transcurrido desde el inicio de la escena
luzrdir[1]=GLfloat(sin(tm *0.0005f));
luzrdir[2]=GLfloat(sin(tm *0.0005f));
NormalizarVector(luzrdir,luzrdir);


Nota: La funcion NormalizarVector aunque se vea rara funciona bien, no es el problema, lo he comprobado.

y después de las correspondientes rotaciones y translaciones y de dibujar la escena salvo las "luces",

glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION,luzrdir);

también he probado antes de dibujar la escena pero haga lo que haga parece no tener ningún efecto sobre la dirección de la luz, siempre apunta al centro, y se me han acabado las ideas.

Se que las rotaciones y las traslaciones también afectan a las luces, quizás tenga algo que ver con eso, quizás si me planteo la escena de otra forma vea algún cambio.

De todas formas ya he empezado con otra cosa, llevo demasiado tiempo con esto, más adelante volveré con ello, aunque si tienes alguna idea lo probaré.

Gracias por tu interés.













Prompt

Bueno yo haría una prueba mucho más basica, no apliques rotaciones ni nada.

Pones una esfera y trata de configurar una luz, no hagas update de nada de la luz, okis? configurala y renderiza cada frame la esfera. Una vez tengas lo q quieres empieza con lo demás. Debes de tener algun detalle mal puesto.






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.