Achtung!

Wolfenstein 3D

hadoukenWolfenstein 3D se jacta de haber sido el juego que popularizó el género de los FPS (First Person Shooter), y uno de los primeros en levantar alarmas sociales, tanto por la violencia explícita que lo adornaba (sangre, cadáveres, posibilidad de matar perros, ...) como por la polémica simbología nazi que daba vida al mundo de Wolfenstein (por no hablar de que el enemigo final es el mismísimo Adolf Hitler). De echo, el uso de simbología nazi provocó que el juego fuese prohibido en Alemania, y para que Nintendo cediese a a proporcionar los derechos necesarios para portar el juego a NES, se tuvo que eliminar tanto la simbología nazi como los detelles violentos del juego (lo cual, por cierto, generó mucho resquemor en id Software contra Nintendo).

Castle Wolfenstein (versión de Commodore 64, con gráficos mejorados!)

Como curiosidad, mencionar que el juego está basado en uno de los juegos preferidos de los chicos de Id: Castle Wolfenstein, pero el título de Id ha superado de tal manera a su predecesor que éste se pasó a llamar por muchos como "Wolfenstein 2D", para evitar confusiones.

Wolfenstein 3D

Antecedentes

Catacomb 3D

En el motor gráfico del Hovertank 3D (abril del 1991) ya se utilizó la técnica del Rayscasting, que se utilizaría más tarde en otros juegos como Catacomb 3D o Wolfenstein 3D, con la única limitación de que las paredes eran dibujadas de un color sólido, sin textura.

Catacomb 3D (noviembre de 1991) al igual que Wolfenstein 3D (mayo de 1992) ya explotaban al máximo la limitada capacidad de dibujado de la técnica de Raycasting, dibujando las paredes utilizando texturas, aunque continuando con el dibujado sólido de los suelos y los techos.

Hovertank

Motor gráfico

Raycasting

El Raycasting es una técnica utilizada para proyectar en 3 dimensiones un modelo trazando rayos desde el punto de vista al volumen de vista. Está considerada como la versión pobre del Raytracing. Los rayos son proyectados en grupos basándose, normalmente, en la resolución del dispositivo en el que se proyecta la imagen. Este algoritmo no calcula las nuevas tangentes producidas por la intersección del rayo con un objeto, por lo que no se pueden calcular efectos como reflexiones, refracciones, etc. Esto nos permite una proyección muy rápida del modelo y no necesitamos a penas memoria, en cambio obtenemos poco realismo y una limitación en las formas representadas (solo formas geométricas simples).

En Wolfenstein 3D, se construyen los escenarios a partir de una base cuadrada con paredes de altura uniforme y pintando los suelos y techos de un color sólido, sin texturas. Se emite un rayo para cada columna de pixels que, al intersecar con algún objeto, nos sirve para escoger la textura que vamos a utilizar para ese objeto. Una vez escogida la textura, se escala. Con esto cumplimos el objetivo de una gran velocidad en la proyección (las intersecciones de los rayos son muy predecibles) y el de cargar muy poco la memoria.

Para la utilización de este algoritmo debemos tener en cuenta que el ángulo entre las paredes y el suelo y techo debe ser siempre de 90º, por lo que no podemos girar el punto de vista sobre el eje Z, porque variaríamos este ángulo y perderíamos las ventajas de pintar en columnas verticales. A pesar de que el Racasting nos permitiría el movimiento del punto de vista arriba y abajo, en el Wolfenstein no se utiliza, permitiendo sólo movimientos laterales.

Para profundizar sobre la técnica de raycasting, recomendamos la guía de F. Permadi.