Capítulo perteneciente al tutorial de opengl desde cero
Hola a todos,
Ya sabemos crear objetos 3D, y también sabemos moverlos, rotarlos,escalarlos e iluminarlos. Pero.... como los vemos? Cual es el proceso que se encarga de poner esos objetos en nuestra pantalla?
La respuesta es la cámara. La cámara no es más que una forma de decirle a OpenGL como queremos que renderice la escena.
Hay un concepto previo a la cámara que tengo que explicar que es el cambio de tipo de matrices (es un tema que he ido dejando caer en otros capítulos pero que no he profundizado).
En OpenGL tenemos tres tipos de matrices:
GL_PROJECTION: Matriz de proyección. Es que nos permite escoger como va a ser nuestra cámara.
GL_MODELVIEW: Matriz de visión de modelo. La que hemos usado hasta ahora, es la que nos permite decir como queremos que se vea el modelo. (traslaciones,rotaciones,etc...)
GL_TEXTURE: Matriz de texturizado. Por ahora lo dejamos para cuando toquemos texturas. Con que sepáis que existe, suficiente por ahora.
Para escoger en que tipo de matriz queremos trabajar tenemos que usar la función glMatrixmode(tipo).
Una vez tenemos seleccionado la matriz de proyección tenemos que seleccionar que tipo de cámara queremos.
Ortogonal (o paralela): Es una cámara que no tiene perspectiva (si nos alejásemos 2 metros para atrás veríamos lo mismo.) En 3D no tiene mucha utilidad pero en 2D es básica. Para más ejemplos podéis mirar el pakengine.
A nivel de código se selecciona esta cámara mediante la siguiente instrucción:
glOrtho (left,right,bottom,top,near,far);
Perspectiva: Es aquella en que los objetos más alejados aparecen más pequeños y por lo tanto da una mayor sensación de realismo. Es la más usada en 3D.
Para que el código pida usar esta cámara se ha poner:
glFrustum(left,right,bottom,top,near,far);
Siendo los parámetros que reciben ambas funciones las dimensiones de la caja donde se realiza el renderizado (es decir, todo lo que entre en la caja se renderizará y el resto no se tendrá en cuenta)
De todas maneras, estas dos funciones no son demasiado claras. Con esto quiero decir que si bien es sencillo entender los parámetros es complicado darle un significado físico a estos. Para ello aparecieron dos funciones nuevas que solucionaban bastante la vida:
- gluPerspective(fovy,aspect,near,far) siendo fovy el field of view (angulo de abertura vertical de la cámara) y aspect la relación entre el ancho y el alto de la pantalla.
- gluLookAt (eyex,eyey,eyez, centerx,centery,centerz, upx,upy,upz) siendo eye las coordenadas de nuestro punto de vista, center las coordenadas del punto al que estamos mirando y up es un vector que nos define hacia donde está nuestra verticalidad (para poder hacer giros de cámara).
Y hasta aquí el tema de hoy. No obstante volveremos a trabajar sobre esto por que la mayoría de lo que he explicado hoy ya está deprecated en las últimas versiones de OpenGL :) , así que tendremos que darle otro enfoque. Por ahora, esto ya os servirá.
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...
-
<< 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, Este tutorial intenta ser e...
-
<< 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...
Muy interesante, me ayudo mucho.
ResponderEliminarMe alegro que te sirva, esa era la idea
EliminarNos vemos
hola, antes de nada infintas gracias por esta serie de tutoriales y me gustaria contactar con tigo por favor mi correo:
ResponderEliminartemis-ps3@hotmail.es
todas tus dudas las podemos resolver desde aqui.... así permitimos que los demás lectores puedan aprender de tus dudas
Eliminar