Gerrard escribió:¿porque las texturas de los juegos de N64 se ven como difuminadas? si era una especia de filtro para que no se vieran pixeles, prefiero los pixeles mil veces....
Hay varias cosas que afectan a la apariencia de las texturas de N64. Lo primero es que al usar emulador, con mayor resolución en pantalla y filtros demasiado bestias, ese efecto difuminado empeora mucho. Eso no significa que en el hardware original no se viesen difuminadas también, aunque algunos juegos tenían más gracia que otros para disimularlo.
Como ha dicho
sgonzalez, el principal motivo es la pequeña memoria caché de 4KB, lo que hace que las texturas tengan muy poca resolución y que haya que escalarlas mucho para cubrir la superficie de los polígonos. Eso, unido al filtro bilinear que tenía por defecto la N64 para suavizar las texturas, les daba ese aspecto.
4 KB es poco, pero es que encima N64 usaba mipmapping (una técnica que crea iteraciones de la textura más pequeñas para que no se creen dientes de sierra en la propia textura mientras te acercas a ella), que usa parte de esa caché también. El mipmapping aumenta la necesidad de memoria en un 33% más o menos, pero creo que en N64 no estaba optimizado del todo y prácticamente tenías la mitad de memoria para la textura.
Por ejemplo, una textura de 8 bits de color (256 colores), podía alcanzar tamaños de 64x32 píxeles como mucho (64 x 32 x 8 bits de color x 2 por el mipmapping / 8 para convertir en bytes = 4096 Bytes = 4 KB). Una técnica muy común era usar texturas de 4 bits de color (16 colores) que solían ser de 64x64 (64 x 64 x 4 x 2 / 8 = 4096 Bytes = 4 KB) y después "pintarlas" con vertex shading.
Había formas de superar esas limitaciones u ocultarlas. Se podía eliminar el mipmapping para permitir más resolución en la textura, pero se debía hacer en casos muy específicos (menús o fondos que se vieran más o menos desde la misma distancia en todo momento) para que quedase bien. Rare incluso hizo un microcódigo para simular mipmapping, creando las diferentes iteraciones de la textura como texturas independientes y usándolas en el momento adecuado.
Otro truco fue hacer texturas multicapa. En realidad son varias texturas superpuestas (normalmente dos, y ahora no recuerda casos en los que se utilicen 3 o más texturas, o si la técnica lo permite). Pueden ser de la misma resolución pero de distinto tamaño en el modelo. Por ejemplo, el suelo la Campiña de Hyrule (Hyrule Field) usa dos texturas de 32x32 píxeles pero mientras una textura ocupa 1 metro cuadrado (por ejemplo) la otra ocupa la cuarta parte; y entre ambas disimulan muy bien la repetición.
Con la aparición del Expansion Pak y la mejora de los motores gráficos que permitían más polígonos en pantalla, lo que se hizo fue formar texturas más grandes a partir de texturas pequeñas. Ya se hacía antes (como en los cuadros de Super Mario 64), pero no se podía abusar de eso porque sólo se disponía de 4 MB de memoria que había que llenar con texturas, modelos, sonido, animaciones, etc. Con los 4 MB extras del Expansion Pak había mucho más margen para emplear este método.
De todas formas hay más métodos para conseguir texturas más grandes. Yo de temas más técnicos ni idea, pero dejo este mensaje (en inglés) que explica más cosas:
http://www.shootersforever.com/forums_m ... 1485#51485Ahí dice que Pokemon Stadium usaba algunas texturas de 320x240 y Ogre Battle 64 incluso mayores.
Lo que siempre me he preguntado es cuál es el límite más común del tamaño de las texturas de PSX (y ya de paso Saturn), ya que nunca he encontrado información sobre eso. Al final llegué la conclusión de que puedes hacer texturas tan grandes como te quepan en la memoria que tiene asignada para ello, pero claro, sólo podría mostrarse una textura.
(Creo que, mientras N64 tenía 4 MB de memoria para meter todo ahí dentro, PSX tenía varias memorias dedicadas para cada cosa, y que para texturas era de 1 MB, por lo que se podría hacer una única textura de 1024x1024 píxeles a 256 colores).