EMaDeLoC escribió:pero ya dijo tu colega informático en otro hilo que la mayoría de juegos usaban enteros por tema de rendimiento.
Creo que no dejamos claro exactamente de qué generación de juegos estábamos hablando en general, ya que toda la fase de transformación de geometría e iluminación en un juego poligonal "decente" requiere casi obligadamente de cálculos en coma flotante, ya sea vía CPU (Ps2), o GPU (Ps4). Lógicamente si hablamos de títulos tipo Doom, Duke Nukem, o Blood todo eso tira de enteros exclusivamente.
Yo lo entiendo así:
- La PlayStation tiene una CPU + co-procesador matemático (una FPU "de pobres") con el que realiza toda la fase de transformación, y luego un chip gráfico dibujador de triángulos con el que renderiza/rasteriza todo lo que la cpu le da masticado.
- Los Pc a partir del Pentium tienen el core/CPU + FPU incluída de serie con la que realizan toda la fase de transformación en digamos un Quake II, además de un rasterizador (también mejor que el de una PS) con el que dibujan la escena en un frame-buffer en modo "software render".
Luego entrarían las aceleradoras, que literalmente "aceleran" toda la fase de renderizado añadiendo nuevas capacidades, y por último están las GPU's que ya se encargan de toda la fase de transformación y renderizado ellas solitas dejando la CPU libre para centrarse exclusivamente en la de aplicación. Tu querida Nintendo 64 fue pionera en ese sentido.
Paso de nombrarle ahora para que venga aquí de profesor a la mínima xD, pero yo creo que es así cómo va la cosa.
Edit, estoy estudiando el tema y quiero concretar:
Volviendo al tema, la FPU de un Pentium no esta preparada para trabajar con vectores y matrices
Sí que lo está, y sobradamente más capacitada que el GTE para dichos cálculos, de hecho un 486DX 2 bien montado + caché L2 externa también rebasa a la CPU + GTE de PlayStation. Las FPU's son empleadas intensamente en los universos totalmente tridimensionales para toda la fase de transformación en aquellos primeros videojuegos 3D de cierta calidad, ya que las GPU's aún no existían. O sea vamos a ver; para un Nascar cómo el de principios de los 90 cómo que tampoco hacían falta muchos cálculos en coma flotante, pero ya para un Quake II o Turok sí.
Respecto al chip gráfico de la PS es poco más que un rasterizador de triángulos planos con 1 MB de VRAM donde colocar un frame-buffer, que era exactamente lo que hacía un Pc sólo que con una rasterización más eficiente, y tarjetas de vídeo con generosa memoria (comparativamente). O sea la PlayStation era un hardware customizado y optimizado para videojuegos, pero que ultimadamente funcionaba cómo un Pc de ultra-bajo coste para las 3D: CPU aplicación, co-procesador transformación de geometría, rasterizador dibujado. El Pc: CPU aplicación, FPU transformación, rasterizador dibujado. Se diferenciaban en la calidad, y por supuesto en hardware cerrado - abierto. Saturn en cambio era más rarita al tener tantos procesadores, aunque ultimadamente se apoyase en el mismo principio. Nintendo 64 directamente se adelantó 4 o 5 años a la primera GPU
Luego llegaron las primeras aceleradoras 3D, pero que seguían sin ser GPU's aún, ya que toda la fase de transformación e iluminación se la seguía comiendo la CPU+FPU, con la diferencia de que ahora el renderizado alcanzaba un nivel superior de calidad gracias a los chips gráficos añadidos.
Finalmente, y hasta hoy, llegaron las GPU's, las cuales ya se encargaban al 100% ellas solitas de toda la fase de transformación y renderizado, dejando a las CPU's libres para otras tareas, por eso los "M/GFLOPS" en éstas comenzaron a tener menor relevancia. Luego ya evolucionaron a shaders unificados y esos rollos.
Sería algo así en consolas:
- Rasterizadores básicos; Jaguar, 3DO, PlayStation, Saturn (con matices).
- Aceleradores gráficos: Dreamcast, PlayStation 2 (con matices).
- GPU's: Nintendo 64 (primitiva y rudimentaria), Gamecube, Xbox, etc.