Pregunta

Tengo un objeto cargado como textura y necesito animarlo, permitiéndole "mirar" hacia la izquierda o hacia la derecha; esencialmente, a veces necesito "voltearlo".Sé que OpenGL tiene gltranslate que reposiciona un objeto y glrotate que lo rota.¿Existe algún método que simplemente lo gire sobre un eje?Si no, ¿cómo lograrías esto?

¿Fue útil?

Solución

No he jugado con los sprites de puntos, pero creo que son texturas.Las texturas tienen matrices de textura, lo que significa que puedes usar glTranslatef(), glScalef() y glRotatef() en ellos.

Probaría algo parecido a glScalef(-1,1,1); lo que invertiría la coordenada de textura por el eje X.

Como dije, no he jugado con sprites de puntos, pero tampoco me metí con matrices de texturas.Aunque parecen bastante útiles.

Actualizar: Mientras tanto, he jugado con matrices de texturas.De la misma manera que cambia entre vista de modelo y matrices de proyección, puede cambiar a matriz de textura;aproximadamente: glMatrixMode(GL_TEXTURE); después de lo cual podrás realizar las operaciones antes mencionadas.

También puedes pintar un cuadrilátero o dos triángulos y terminar con ello :)

Otros consejos

No puedes hacer esto con sprites de puntos OpenGL;Aunque puedes mover el centro del objeto, su forma siempre está orientada de la misma manera.

Lo que tu poder Lo que debes hacer es dibujar tus sprites como quads, lo que te permite voltearlos, rotarlos y manipularlos como quieras.Hay tutoriales sobre cómo dibujar sprites manualmente (también conocidos como vallas publicitarias) en nehe

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top