En general, el mundo es un mapa de muchos triángulos, y el mapa es una lista de estos triángulos y la ubicación en el mundo de cada vértice. El proceso para dibujarlos es:
- Configura la posición de la 'cámara': si estuvieras parado en el mundo, aquí es donde estarías en la posición mundial
- Transforma los vértices triangulares en 'espacio de cámara'
- Transforme los triángulos de 'espacio de cámara' a 'espacio de pantalla': aquí es donde ocurre el efecto perpectivo (las cosas distantes son más pequeñas). Los triángulos se convierten en 2D en este punto.
- Dibuja el triángulo 2D en una pantalla oculta.
- Cuando se hayan dibujado todos los triángulos, muestre la pantalla al jugador.
El último paso generalmente está vinculado a la velocidad de fotogramas del monitor, de modo que el proceso de mostrar la pantalla oculta se realiza durante el intervalo de v-blank, un concepto derivado de los monitores de tubo de rayos catódicos que permitió que el haz catódico se moviera de abajo a la derecha hacia arriba a la izquierda, esto requería rápidamente, pero no instantáneamente, cambios de voltaje en las bobinas de desviación en la parte posterior del tubo de rayos.
Este es un método realmente simple. Para obtener un alto rendimiento, debe agregar elementos como la eliminación de superficies ocultas, la ocultación, la determinación de conjuntos visibles, etc. Hay muchos algoritmos involucrados en la decisión de qué dibujar.
Además, dije que el mundo está formado por triángulos, pero que podría no estar almacenado en el disco de esta manera. A menudo, los triángulos que se dibujan en la pantalla se definen en tiempo de ejecución a partir de primitivas de orden superior, como mapas de altura, splines, teselación, primitivas geométricas (por ejemplo, una esfera, un recuadro, etc.), etc.
El hardware dedicado no es necesario: muchos de los primeros juegos 3D lo hicieron todo en software (incluso en CPU de 8 bits sin FPU). Simplemente lo hace más rápido y fácil de hacer.
Una pregunta tan simple. No hay respuesta fácil.