August 13th, 2006

Este tutorial hace un breve repaso de tres conceptos importantes en la realización de aplicaciones con OpenGL, las convenciones del API, los tipos de datos manejados por este y los estados, con los cuales se controla gran parte del proceso de render.

TIPOS DE DATOS

Al igual que c, c++ y todos los lenguajes de programación definen unos tipos de datos básicos para representar valores de verdad, enteros, flotantes, bits y caracteres, OpenGL define sus propios tipos de datos que permiten trabajar de manera mas uniforme sobre el API en diferentes compiladores y sistemas operativos. Los tipos de datos en OpenGL son los siguientes:

Continuar Leyendo… »

August 6th, 2006

Este tutorial aborda la creación de una ventana en Windows con un contexto gráfico OpenGL, pero a diferencia de los tutoriales basados en GLUT o AUX, esta aplicación se desarrollará a partir de las librerías de Windows, haciendo todo “manualmente”. Surge la inquietud de ¿por qué hacer este tutorial, si podría hacerse más fácilmente con GLUT, AUX o cualquier otra librería?, la respuesta es porque este tutorial permite conocer mejor la estructura de un programa de Windows, que es útil si se necesita algo mas de control (y problemas) sobre la aplicación. Además, es divertido “ensuciarse” un poco las manos con el API de Windows de bajo nivel.

PROGRAMANDO ORIENTADO A EVENTOS

Windows y en general los sistemas operativos GUI utilizan una arquitectura orientada a eventos para manejar la interacción usuario – sistema – aplicación de manera organizada y eficiente. El modelo es bastante simple, cada vez que el usuario realiza una acción, el sistema determina sobre que aplicación se realizó y le envía un mensaje describiendo la acción, el programa lee y procesa el mensaje, si es que este le interesa (un clic sobre el menú por ejemplo) y realiza los cambios pertinentes.

Un ejemplo con un clic podría ser como este:

Continuar Leyendo… »

July 20th, 2006

Este tutorial aborda la creación una aplicación simple en OpenGL de dos formas diferentes, a través de las librerías aux y glut. Como ejemplos estilo “Hola Mundo” están orientadas a mostrar en pantalla aplicaciones simples que introduzcan al uso de una tecnología nueva para alguien, en este caso OpenGL, por esto mismo no se explican en profundidad, extensión o detalle todos los conceptos relacionados con el código fuente.

Los dos programas fueron probados en el Visual Studio .net 2003, pero es de esperar que funcionen en versiones anteriores (2002, 6) y en entornos diferentes (devcpp). En otros lenguajes como Java o c#, el código variará dependiendo de la sintaxis del lenguaje, la forma en que se realice el binding (ligadura) con el API (OpenGL esta escrito orientado al lenguaje c) y el sistema operativo.

Continuar Leyendo… »

July 4th, 2006

Este tutorial cubre los primeros conceptos previos a la creación de aplicaciones con OpenGL y en general a la creación de contenido 3d. Es necesario aclarar que el tutorial, por simplicidad y extensión se enfoca sobre la especificación 1.1 de OpenGL, es decir, solo se menciona la funcionalidad de la llamada “Fixed Pipeline” (ahora con la entrada de OpenGL 2.0 y la introducción de los shader al estándar, la estructura cambio).

En el tutorial se mencionan algunas palabras en ingles, acompañadas de su traducción al español, solo para conservar el término original (en ingles) y facilitar la búsqueda posterior del término, tanto en español, como en inglés.

Continuar Leyendo… »

June 17th, 2006

En el mundo real todas los objetos al ponerse en “contacto” reaccionan: chocan, se deslizan, rebotan, se rompen y todas los otros comportamientos que observamos a diario. En el caso de los videojuegos es muy importante tener un método (o varios) para saber cuando ocurre esto y actuar de manera adecuada, puesto que como se trata de una aplicación en tiempo real, no podemos precalcular en la mayoría de casos dichos eventos. Cuando estemos implementando propiamente un método es importante tener en cuenta los siguientes factores:

  • Uso de recursos: Se refiere a cuanta memoria y uso de procesador requieren las operaciones que estamos realizando para calcular si existe o no la colisión.
  • Colisiones falsas: Cuando utilizamos aproximaciones a las colisiones puede que estas no sean correctas gráficamente, aún cuando el algoritmo reporte una colisión.
  • Colisiones faltantes: El algoritmo fallará al intentar hallar estas colisiones (no las reporta).
  • Escalabilidad: Qué numero de objetos puede llegar a abarcar el algoritmo sin que falle en alguno de los casos anteriores.

Continuar Leyendo… »