Rendering de Modelos de Quake 2

Durante la semana pasada aproveché un par de días de ocio para trabajar en un proyecto personal.

La idea consistía en cargar un modelo de popular juego de 1996 1997 de Id Software “Quake 2” y dibujarlo en la pantalla.

El Quake 2 consistió en uno de mis juegos favoritos en la saga (que actualmente se compone de 4 juegos) y cargar sus modelos 3D y verlos animados fué como un viaje instantáneo a un pasado nostálgico.

El formato que utiliza el Quake 2 para sus modelos consiste en un archivo binario muy fácil de leer desde código C o C++.

En este archivo se definen una serie de vértices y triángulos del modelo organizados en “keyframes”: una serie de poses que permiten dibujar el modelo con animación. El archivo también referencia cero o más texturas en formato PCX a utilizarse como “piel” del modelo, en terminología del Quake 2.

Una vez que el modelo y su textura se encuentran cargados en memoria, utilizo OpenGL y GLUT para dibujarlo.

Les dejo un video que subí a YouTube con el renderer en acción. El video fue generado dibujando 10 frames por segundo y sin interpolar entre keyframes, lo cual hace que la animación sea un poco tosca y no tan suave como se podría haber hecho.




Disculpen por el final algo trunco, pero YouTube al parecer le cortó un par de segundos del final.

Esperen más información en los próximos días 😉

This entry was posted in C++, Computación Gráfica, OpenGL, Quake. Bookmark the permalink.

3 Responses to Rendering de Modelos de Quake 2

  1. Gabriel says:

    A partir de Quake3 utilizan modelos con esqueletos… cada vertice viene asociado a un “hueso” y los keyframes están dados en términos de la matriz de orientación de un hueso respecto a su “padre”. Lo usé en la famosa demo de Trinity. Fijate, te vas a divertir un montón con eso 🙂

  2. Varrojo says:

    Hola Gabriel,

    Sabía que el Quake 3 utilizaba huesos para representar sus modelos, pero no sabía que representaba la orientación en forma matricial.

    Hace algún tiempo estuve revisando el formato del Quake 4 y ví que la orientación se representa con Quaternions, así que cuando ví que el Quake 2 usaba keyframes me pareció más sencillo como para hacer un programa cortito.

    Lo genial de usar huesos es que debe ser mucho más fácil integrarse con un motor de física e implementar Ragdolls, no?

    Ale.-

  3. Pingback: Varrojo@Linux » Animación Interpolada para Modelos de Quake 2

Comments are closed.