Éste tema está dirigido a aquellos que tengan un poco de curiosidad de las razones por las cuales el Doom3 utiliza tantos recursos computacionales para animar la escena a través de su motor gráfico, aparte de las meramente visuales, que saltan a la vista por si mismas.
Hay muchas razones por la cual el motor gráfico del Doom3 utiliza tantos cálculos, pero aquí expondré la principal y la verdaderamente revolucionaria, la técnica que los chicos de IdSoftware emplean en el modelo de iluminación del escenario y que nadie antes habia implementado en un juego en tiempo real.
La mayoría de los videojuegos actuales, tanto para PC como para Consola, utilizan un modelo de iluminación llamado GORAUD.
El GORAUD calcula las normales de cada vértice de cada polígono, en base a este cálculo recalcula la iluminación correspondiente a ese punto donde está el vértice, y hace otro cálculo más iluminando un cierto rango de distancia a partir de la normal en la textura.
Así, cuando ya ha iluminado todos los vértices, la sensación que queda en la textura es una sensación de suavizado entre todos los pixels iluminados y todos los rangos de distancia de la textura, produciendo el efecto de un sombreado de calidad media/alta en todo el objeto poligonal iluminado.
Esto se aplica tanto a personajes en el escenario, como en el escenario en si mismo.
Notese que esto no tiene nada que ver con el ver o no los pixels de una textura cuando se está cerca/lejos de ella, este método se denomina Interpolación Trilineal que evita el efecto Popping del Mipmapping.
Pues bien, los chicos de IdSoftware han implementado el modelo de iluminación en el motor gráfico del Doom3 llamado FONG, rompiendo con todos los esquemas de los desarrolladores de juegos ya que nadie se había atrevido a realizar tal hazaña ( siempre hablando de juegos en tiempo real 3D, en las peliculas de animación utilizan este método pero con un algoritmo mejorado ). A raíz de la progresión de potencia de las tarjetas gráficas aceleradoras 3D éste metodo ha podido ser implementado, lo cual era impensable hace 2 años, debido a los requisitos que necesitaba la gráfica en cuestion para calcular toda la escena y la impresionante complejidad de programación que conlleva programar este algoritmo de iluminación.
El algoritmo FONG interpola para cada pixel su normal, si, habeis leido bien, para CADA PIXEL DE LA PANTALLA, en base a este cálculo hace los calculos propios del GORAUD, es decir, calcula la iluminación en ese punto y recalcula el rango de distancia a partir de ese punto en el cual va a iluminar. Pero FONG no se para ahi y realiza el calculo definitivo, que básicamente es sacar la media de cada iluminacion/sombreado de cada pixel animado y de el rango de iluminación de todos los pixels que le afectan en su propio rango, creando asi una iluminacion/sombreado de calidad ALSTÍSIMA, pero muchísimo más costosa de calcular.
Teneis que comprender que esto lo hace para cada momento de la escena, o para entendernos todos para cada frame de la escena, así que os podeis imaginar el gigante cálculo que tanto la CPU del ordenador como la GPU (Graphic Process Unit) de la gráfica tienen que hacer.
He aquí las razones técnicas por las cuales el Doom3 pide tanta maquina y gráfica para funcionar =).
NOTA: Hay otro modelo de iluminación/sombreado aún mejor que el FONG, que los desarrolladores de juegos esperan tener implementado alrededor del 2010, que simula TOTALMENTE la iluminación/sombreado de la vida real. Si quereis saber como funciona este método y su nombre solo pedirlo que lo explicare gustosamente otro dia pero ahora estoy cansado de escribir =). Solo para que os hagais una idea, este método en la mejor tarjeta gráfica actual en el mercado, sacaria un rate de 1 fph, sí, un frame por hora.