Capítulo perteneciente al tutorial de opengl desde cero
Hola a todos,
Si estáis siguiendo este tutorial ya sabéis (más o menos) como se representan objetos 3D, pero...como los movemos , rotamos o escalamos??
OpenGL provee de transformaciones del espacio que nos permiten modificar nuestros modelos 3D en función de nuestras necesidades.
Las 3 funciones principales que nos permiten realizar estas operaciones son:
glTranslatef(x,y,z): Esta función hace que todo lo que pintemos a partir de la llamada de esta función lo haga desplazado hacía las coordenadas x,y,z
glScalef(x,y,z): Esta función escala (modifica el tamaño) de todo lo que se pinte a partir de la llamada a esta función.
glRotatef(angle, x, y ,z): Esta función se encarga de rotar toda la escena alrededor del vector x,y,z en el angulo que le digamos.
Junto con estas tres funciones considero necesario también hablar de dos funciones más que nos serán muy útiles:
glPushMatrix(): Esta función apila (guarda) la matriz de transformación tal y como la tenemos.
glPopMatrix(): Esta función nos pone como matriz de transformación actual la última que hayamos guardado mediante glPushMatrix() (y la quita de la pila)
Estas dos funciones son extremadamente útiles para realizar transformaciones de solo un objeto , dejando el resto de objetos como estaban. Por ejemplo:
glPushMatrix();
glTranslatef(1.0f,1.0f, -5.0f);
glBegin(GL_POINTS);
glVertex3f(1.0f, 2.0f, 3.0f);
glEnd();
glPopMatrix();
Al finalizar este trozo de código la operación glTranslatef solo habrá resultado efectiva para el pintado del punto, pero no para el resto de objetos que podamos pintar en pantalla.
Un tema importante que tenéis que recordar es que las operaciones de transformación del espacio en el fondo aplican matrices de transformación a la matriz actual de trabajo y que por lo tanto, el ORDEN DE LOS FACTORES ALTERA EL PRODUCTO. Es decir, no es lo mismo rotar y mover que mover y rotar. Mi consejo es que vayáis probando y veáis como funciona, no hay mejor manera de aprender que ir experimentando.
Otro tema importante (ya para finalizar), es que si os fijáis todo lo que se ha explicado en este capítulo nos puede servir para montar nuestra primera cámara. Con esto quiero decir que si bien no he explicado nada de cámaras supongo que ya intuis que una cámara es un "ente" que permite posicionarnos en la escena para verla desde un punto de vista u otro. Lo gracioso de las transformaciones del espacio es que tanto podemos mover la cámara, como podemos mover todo el mundo 3D que afectos prácticos para nosotros va a ser lo mismo (el renderizado haciéndolo de una manera u otro no va a variar)
Ya sin más os dejo tranquilos.
Espero que os haya gustado y hayáis aprendido
Nos vemos
Blog de programación enfocado a estudiantes principiantes de C/C++ en español. Dispone de cursos de todos los niveles y para multitud de usos.
Entradas populares
-
Una pregunta que me hacen en muchas ocasiones es ¿¿qué significa %2?? La respuesta tiene dos acepciones en función de si lo estamos u...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, ASCII Art es el hecho de hacer di...
-
Articulo perteneciente a : Referencias de programación Hola a todos Os pongo una aportación que a más de uno le irá bien, un resumen de ...
-
Capítulo perteneciente al tutorial de opengl desde cero Hola a todos, Este capítulo tal vez es de lo más complicados de la teoría necesa...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos, Este tutorial intenta ser e...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, El ejercicio de hoy se basa en c...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos... Un compañero vuestro ha...
-
Hola a todos... He aquí la primera entrega "Como crear tu propio motor de videojuegos y no morir en el intento". Antes que nada ...
-
Hola a todos Ya que he recibido un par de mails pidiéndome información sobre SEO, os adjunto unos cuantos trucos que he ido aprendiendo du...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> El c apitulo de hoy trata sobre las instrucc...
0 comentarios :
Publicar un comentario