"Ningún juego dura tanto hasta que te lo terminas como el que te programas tú mismo, ninguno te absorbe tanto y ninguno te produce tanta satisfacción cuando lo has acabado"
El juego que más tardas en terminar es el que programas tú mismo y, ademas,  las cosas dificiles dejan de serlo cuando se saben hacer, asi que ... ¡ Al tema !.
Este curso intenta ser facilÃsimo de comprender y de seguir. Con OpenGL y C++ seremos capacer de programar juegos para PC.Â
Pendiente están los capÃtulos sobre shaders, multitexturas, ... luego, ya surgiran cosas.
Este capitulo sera mas teorico que otra cosa, aunque al final veremos algo de codigo. El tema de las extensiones y versiones de OpenGL es uno de los mas equivocos en principio, para quienes se acercan a esta libreria grafica. En este capitulo intentaremos que el tema quede claro y zanjado definitivamente para poder seguir avanzando sin problemas con OpenGL. A partir de aqui podremos usar cosas que son habituales pero que sin conocer el tema de las extensiones y versiones no estarian a nuestro alcance.
Llegamos por fin, a uno de los temas que mas interesan al ser ya, muy vistoso el resultado; la carga de modelos hechos con un programa de diseño 3D. El tema no es facil. Tiene la complicacion inicial de conocer el formato del fichero donde esta el modelo. Luego la carga puede ser mas o menos laboriosa. Al final tendremos que tener el modelo cargado de forma que lo podamos pintar lo mas eficientemente posible. En nuestro caso usaremos el formato de modelos propio del programa Caligari truSpace, cuyos ficheros tienen extension ".COB". Lo haremos en su forma ASCII, los que se graban como fichero de texto y podemos editar con un sencillo editor. Esto pemite saber exactamente lo que hay dentro del fichero y no depender de unas especificaciones parciales y en ingles. Luego pintaremos el modelo usando el metodo de "vertex arrays".
Llegamos a un tema interesante y muy util en cierto tipo de juegos. La seleccion de objetos. Esta puede ser de objetos 3D o 2D, en todo caso veremos 2 metodos para hacerlo, el propio de OpenGL y otro marca de la casa (mio). Los metodos pueden ser muchos como ocurre en todos los temas de programacion. Estos dos metodos se pueden variar, mezclar, desechar y usar otro ... a gusto del programador.
En este capitulo vamos a tocar un tema al que todos los programadores de OpenGL en Windows llegan, tarde o temprano. Cambiar el programa a pantalla completa o al reves, y cambiar la resolucion son temas puramente de programacion Windows. Al terminar este capitulo ya no tendremos dudas al respecto.
Si, eso es lo que vamos a hacer en este capitulo. Con pocas modificaciones y manteniendo casi intacta la estructura del juego y los calculos principales, somos capaces, con lo que hemos aprendido en otros capitulos del curso, de hacer el "Rompe Ladrillos" en 3D.
Este capitulo es una especie de check point del curso para comprobar que se puede hacer con lo que ya sabemos. Haremos paso a paso, el tipico juego de romper ladrillos (Arkanoid), solo usando 2D, para comprobar de lo que somos capaces y el resultado nos de animos para seguir. Aviso: el tema sera larguito, pero satisfactorio.
En este capitulo veremos uno de los apartados mas importantes para un juego, teclado y raton. Veremos tambien como vamos a modificar la camara en OpenGL, lo que nos permitira ver nuestra escena desde otro lugar o mirar a otra parte. Al terminar el capitulo estaremos ya en condiciones de pensar que podemos hacer un juego simple.
En este capitulo veremos una serie de cosas tan necesarias como cualquier otra cosa pero menos vistosas, aunque el texto en pantalla nos hace falta ya como el comer. Cuando seamos capaces de hacer una especie de "printf" en OpenGL, lo usaremos para saber los Frames Por Segundo (FPS), la velocidad a la que nuestro programa se mueve y controlarla.
Veremos en este capitulo el tema de la iluminacion y como lo trata OpenGL. El aspecto de nuestro programa cambiara de nuevo a mejor, de forma que la impresion de 3D sera total. Veremos como definir luces, sus componentes, una nueva parte del vertice, la normal, y algunas cosas mas.
Introducimos texturas en nuestro programa y el cambio es radical. Ahora cualquier cosa que ponemos en pantalla con una bonita textura luce como nunca. Esto nos obligara a desarrollar nuestra faceta artistica. Veremos como avanza nuestro programa. Veremos tambien otras cosas con las que nos encontraremos, como la pila de matrices y el blending (para transparencias). Todo clarito clarito como siempre.
Por fin entramos en 3D, pero eso supone mas conceptos que hay que entender como por ejemplo el uso de matrices... pero no hay que preocuparse. Las entenderemos para saber que estamos haciendo, y los calculos los hara OpenGL para nosotros.
En esta entrega veremos como cambiar la proyeccion de nuestra escena sobre la pantalla de acuerdo con nuestras necesidades, de forma que seremos capaces de dibujar escenas en 2D controlando el sistema de coordenadas.
En esta entrega del curso haremos el primer dibujo con OpenGL pero antes seguiremos aclarando conceptos, ya que con las ideas claras, despues todo sera mas facil.
El primer concepto sera el de los ejes de coordenadas que usaremos con OpenGL para que no haya confusion a la hora de escribir coordenadas. Asi, en pantalla, sera el eje Y la altura, el eje X el ancho y el espacio virtual que se adentra en la pantalla sera el eje Z pero con coordenadas negativas.
El programa basico con el que empezaremos a trabajar. Primero creamos un programa minimo al que ir añadiendo cosas e ir compilando y viendo como queda. No es muy ortodoxo, pero no somos profesionales. ¡Al tema!...