Señor Ventura escribió:Joder con las texturas que llega a marcar la N64... ¿podría mejorarse a ese nivel el resto de texturas del perfect dark? (escenarios, y todo eso).
Pues Perfect Dark tiene poco margen de mejora, pero lo tiene. El mayor limitante sería la memoria RAM porque los niveles están tan cargados de texturas, polígonos, objetos, enemigos, animaciones, sonidos y luces (sin contar modos a pantalla partida y alta resolución) que de no ser por la existencia del Expansion Pak nos hubiésemos quedado sin juego como ya advirtieron los desarrolladores.
No sé muy bien si lo que destaca
BMBx64 de la entrevista de Factor 5 podría ayudar en este aspecto porque me genera algunas dudas eso de hacer streaming desde el cartucho:
¿Hace streaming directamente del cartucho sin pasar por RAM? ¿A qué velocidad respecto a la RAM? ¿Va llenando y vaciando la RAM al vuelo sin interrumpir el juego? ¿Afecto esto al rendimiento negativamente? ¿Es una técnica muy compleja? ¿Por qué nadie lo intentó antes? ¿Es realmente la panacea el streaming desde el cartucho?
Si nos imaginamos que la RAM no es ningún problema porque queda suficiente o porque con el streaming podemos dejar de preocuparnos de ella, entonces podemos centrarnos en mejorar la resolución de las texturas de Perfect Dark. En un mensaje anterior dije que estaban hechas en la mayor resolución posible para caber en la caché y permitir el filtrado trilinear, pero aunque esto sí se cumple para un gran número de casos, hay otro gran número de casos en los que no es así.
Como dije anteriormente, la paleta te gasta la mitad de la caché (no importa si es una paleta de 4 o de 8 bits) y si quieres que la consola te genere mipmaps para el filtrado trilinear entonces la caché se vuelve a dividir dejando el tamaño efectivo de la textura en 1KB. O sea, 1024 bits.
Perfect Dark utiliza una gran cantidad de texturas de 32x48 con paleta de colores de 4bits tanto en personajes como en escenarios. Si hacemos las cuentas veremos que estas texturas tienen un tamaño de 768 bits. Estas texturas podrían alcanzar un tamaño de 32x64, pero ya estarías ocupando un 25% más en RAM y cartucho. Claro que estas texturas son demasiado rectangulares y habría que adaptar el diseño del escenario.
En las texturas de los personajes se podría optar por texturas de 56x36 y girándolas 90 grados al mapearlas. Así mantendríamos casi la misma proporción. ¿Por qué 56x36 y no 36x56? La resolución horizontal de las texturas tiene que ser múltiplo de 8 (hasta un máximo de 256), mientras que la resolución vertical puede ser cualquiera.
¿Por qué no usar texturas de 56x36 en los escenarios? Porque para poder repetir una textura correctamente en un mismo polígono su resolución tiene que ser potencia de 2 (1, 2 ,4 ,8 ,16 ,32 ,64 ,128 ,256) en esa dirección o se generará basura. Las texturas de 32x48 se repiten horizontalmente mientras que en vertical se usa una textura nueva que también se repite horizontalmente.
Pero hay un método de conseguir todavía mayores resoluciones. Si en lugar de dejar a la consola generar los mipmaps los tenemos generados de antemano, nos ahorramos una división de la caché y podemos usar 2 KB (2048 bits) para alojar al textura principal y tantos niveles de mipmaps como nos quedan. De este modo, es posible lograr texturas de 64x48 con paletas de 4 bits de color. Pero estas texturas ocupan más del doble en RAM y en el cartucho que la original de 32x48.
Claro que podríamos olvidarnos del filtro trilinear y hacerlo todo texturas de 64x64 con paletas de 4 bits.
![por aquí! [poraki]](/images/smilies/nuevos/dedos.gif)
Pero al ver esas texturas en la distancia o ladeadas (arrimándote a una pared, o incluso a dos pasos de ti en el suelo) se iba a ver un baile de píxeles muy molesto.
Y es que lo que hace que las texturas de Perfect Dark se vean tan nítidas no es sólo su resolución, sino que el tamaño del téxel (píxel de la textura cuando se rederiza en 3D) es muy pequeño comparado con lo que habíamos visto anteriormente en Nintendo 64.
Las texturas están hechas de forma que puedan encajarse entre sí fácilmente sin estirarse y manteniendo el mismo tamaño de los téxels. Los escenarios también están divididos modularmente para facilitar el encaje de las texturas.
Personalmente yo dejaría las texturas de los escenarios como están. Habría que rediseñar la geometría para adaptar texturas de mayor tamaño. No se puede simplemente cambiar las texturas por unas de mayor resolución y ya.
Sin embargo en los personajes sí que veo margen. Bien aumentando la resolución como he explicado antes o bien usando el método de los mipmaps pregenerados para poder tener texturas de 32x48 a 8 bits de color. Incluso podríamos descartar los mipmaps y buscar el máximo de resolución posible. Si dependiera de mí yo haría esto último. Sin límite de RAM, claro.
La verdad es que GoldenEye debe de hacer algo parecido al streaming desde el cartucho. Perfect Dark igual hace lo mismo
Sé que carga casi todas las texturas desde el principio. Las únicas que se cargan más tarde son las de los agujeros de las balas en las superficies y las de el icono del cargador.
Los escenarios sin embargo no sé muy bien como funcionan. Parece que no está cargado todo desde el principio si no que carga y descarga las partes según las ve el jugador. Puede darse el caso de que no hay memoria suficiente y no carga un trozo del escenario quedando vacíos en el mapa. Luego si mueves la cámara para dejar de ver algunos trozos, ese que no cargaba antes al final aparece.
Tanto GoldenEye como Perfect Dark permiten delimitar la memoria que se va a usar para determinados aspectos. Generalmente texturas y geometría. Si la memoria reservada para geometría es baja entonces ocurre lo que he mencionado anteriormente. Si es demasiado baja el nivel ni siquiera incia. Si superamos el límite tampoco funciona.
Cada vez que se carga un trozo de mapa hay una micropausa. En consola no se nota, pero en emuladores cuando se cargan muchos trozos a la vez sí se aprecia que todo se para por un instante. Y si se cargan muchos trozos a la vez puedes incluso ver como aparecen de la nada.
Si la memoria para las texturas es baja el nivel funciona pero la texturas se empiezan a corromper. Primero los iconos y el cielo, luego las texturas de los objetos y personajes, finalmente el escenario también.
-------------------
Aquí la entrevista a Factor 5 de donde
BMBx64 extrajo los comentarios del streaming desde el cartucho.
http://www.ign.com/articles/2000/11/10/ ... ndy-to-n64Otra cosa importante a destacar de la entrevista es que renunciaron al Buffer-Z porque limitaba el fill-rate y no los permitía tener mucho framerate a la alta resolución que ellos querían.
In terms of weaknesses we fought hard against the fill-rate limitations of the N64. We loved Hi-Res on Rogue because of its crisp look, but the framerate was questionable. So when starting the engines for both Indy and Naboo, the main goal was to get a high framerate in Hi-Res. This meant not using the Z-Buffer, because it alone uses quite a bit of the N64's fillrate.
He encontrado más entrevistas a Factor 5 de cuando empezaban a desarrollar en Nintendo 64. Hablan de un juego llamada Thornado del que no había oído hablar en la vida. Lo único que he encontrado de él es un vídeo de youtube con una pieza de la banda sonora, pero podría ser de una versión posterior en Gamecube. En una de las entrevistas mencionan un mp3 para descargar que podría ser la misma música. La verdad es que suena de lujo.
https://www.youtube.com/watch?v=fSMDkZ4a7lMParte 1Parte 2Parte 3 (parece que se he perdido)Parte 4Sobre compresión de audio-------------------
Todo esto hace que te plantees qué cosas podrían haberse llegado a ver en Nintendo 64 si toda la experiencia, buen hacer y tecnología que se desarrolló se hubiese juntado en un sólo título el final de su vida. Imaginad un cartucho de 512 Mbits, un juego que requiriese el Expansion Pak y lo exprimiera a tope, sin Buffer-Z para obtener una tasa de imágenes alta y constante a una resolución de 640x480 o algo menor, un diseño de escenarios y texturas tan bueno o incluso mejor que en Perfect Dark, efectos de luz como en Jet Force Gemini o Conker's Bad Fur Day (¿hay algún juego que los tenga mejores?), compresión mp3 para el audio como en Perfect Dark o las herramientas de Factor 5 (que nunca me terminó de gustar cómo sonaban, pero seguro que comprimen que da gusto), las FMV de Resident Evil 2...