If you like my projects

domingo, 15 de noviembre de 2015

the best pixel-art interpolation filter -- el mejor filtro para pixel-art

Unos meses atrás, mientras utilizaba el emulador de maquinas de videojuegos "maquinitas" o arcades, Final Burn Alpha. Por la sencilla razón que desde hace mas de un año, llevo usando una computadora, que a comparación de la que anteriormente usaba, es más avanzada. Además al ser laptop viene con un monitor LCD por defecto. No soy muy fan del look del LCD, preferiría el look borroso del CRT.

Entonces, me puse a ver opciones para mejora de imagen. Ningúno de los típicos filtros "para mejorar el pixelart" (como Eagle, SuperEagle, Scale2x, HQ2x, HBX, etc.) me convencía en lo más minimo, e iba de Pre-Scale a Interpolation/Bilinear, intercambiandolo segun mis gustos. La razón de esto es que la mayoría de los juegos de maquinitas o arcade, salieron en una epoca en donde las resoluciones mas comunes eran CGA, EGA, que utilizaban monitores CRT con frequencia de 15khz y resolucion de pantalla de hasta 240p o 480i (modo entrelazado, utilizado mayormente en las TV).

Para poder soportar ver los juegos a una escala mayor de la cual fueron originalmente creados, alargando la imagen o haciendole "zoom", de una resolución de 240p a 768p por ejemplo, es necesario utilizar alguna clase de filtro de interpolacion. Si no configuras el emulador y le dejas todos los ajustes por defecto, consigues una imagen muy borrosa (bilinear) o distorsionada (nearest-neighbor) con pixeles dobles. Y esto es debido a que no todos los juegos utilizaban pixeles cuadrados. Ya que utilizando un monitor CRT, que es una pantalla raster, los pixeles son transmitidos por un haz de luz que atraviesa toda la pantalla creando linea por linea. Y no tenían una resolución impuesta. Como 640x480 o 320x240.

Además no todos los juegos usaban la misma resolución y todos deben de verse ocupando todo el espacio de la pantalla, estiradas, sin ningúna clase de overscan visible. A comparación de los monitores de ahora que tienen aspect ratio de 16:9 o 16:10 e incluso si pensamos en un celular o una tablet 3:2, estos juegos se verían distorsionados, ya que 4:3 era el estandar de la epoca. Y ocurre que los monitores que no tienen frequencia de 15khz, no soportan resoluciones menores, y menos si no son estandar como 320x240, los CRT modernos (que ahora ya están extintas) tenían frecuencias de 25khz~31khz. Y con la tecnología LCD, ni con sus chips avanzados de video, que hasta eso, solo las pantallas de TV los incluyen, se pueden ver resoluciones menores con efectividad. Y de hecho algunos monitores ni si quiera las reproducen.

Para evitar esta clase de problemas, en los emuladores, se utiliza la interpolación para crear la información que no existe, y se pueda expandir la imagen en toda la pantalla, aunque si eres purista como yo, NUNCA querrías ver un juego que originalmente tenía un aspect ratio de 4:3, estirado completamente a 16:9. O como por ejemplo: Pac-Man; que utilizaba monitor vertical con un aspect ratio de 3:4, que básicamente era un monitor CRT girado 90º  o en modo vertical.

Super Mario World (SNES-SFC/NTSC/U) original size

Super Mario World (SNES-SFC/NTSC/U) cubic Catmull-Rom Spline interpolation resize (3x/4:3)


Los filtros más conocidos de interpolación son: 

Nearest Neighbor: funciona bien cuando se trata de juegos con resolucion de pantalla que usa pixeles cuadrados, pero si no, cada ciertas lineas tendran pixeles de doble grosor con pixeles de 1 solo. Es completamente ineficiente con pixeles cuadrados.

Pre-Scale: basicamente es un super sample a una resolucion mayor que la resolucion a la cual va a ser mostrada, y posteriormente se reduce a la resolucion final (imagen de 320x240 original > se aumenta a 1024x960 > se reduce a 640x480). Es eficiente con pixeles no-cuadrados, como por ejemplo los juegos de arcade CPS2 de Capcom y su resolución de 384x224. Es como un Nearest Neighbor optimizado. Pre-Scale , a diferencia de los demás filtros, solo se utiliza en aplicaciones en tiempo real, aunque es muy costoso en terminos del procesador y la memoria, ya que utiliza muchos recursos al manejar mucha información.

Bi-Linear: Utiliza los 4 pixeles alrededor para crear pixeles nuevos. Tiene un aspecto muy borroso,, como si se le hubiera puesto blur a una imagen. Mucha gente dice que es el mejor, pero yo detesto que no respete los pixeles individuales (los pixeles claros pierden brillo al lado de pixeles oscuros), y que destruya el contraste. Bi-Linear se utiliza en conjunto con otros filtros para adaptarlos a distintas resoluciones o corrección de aspecto.

Bi-Cubic ó Cubic: (en realidad cubic convolution) Este filtro es el que más problemas da a la hora de reconocerlo, porque cubic se puede a referir a diversos tipos de filtros, como: Bell, Mitchell-Netravali, Sinc(3), incluso otros que son parecidos como: Hermite y Lanczos(2). Básicamente es una version mejorada de Bilinear, que toma 16 pixeles alredor del nuevo pixel para crear colores nuevos.
De entre todas las versiones la que más encuentro, que da mejores resultados es Cubic Catmull-Rom, que es matemáticamente parecida a Lanczos(2) jjj. hhh

Ventajas de Cubic Catmull-Rom: no perder el aspecto pixelado (esto es importante, más adelante, menciono porqué), tener mezcla de colores de manera uniforme (como si lo vieras en una pantalla de television), y preservar el contraste (tambien un punto importante de porque es el mejor), el halo que aparece cuando hay un contraste alto de colores (ringing), que incrementa la acutance (segun wikipedia).

Programas conocidos que usan Cubic Catmull-Rom son: Gimp que lo tiene como Cubic, Google Chrome lo utiliza como su filtro de interpolación por defecto para hacer zoom. Internet Explorer 9 lo utiliza tambien para zoom.

Para ver como se ve este filtro pudes bajar cualquiera de estos programas y verlo por ti mismo, aumentando el tamaño de la imagen o aumentando el zoom en Google Chrome o Internet Explorer (utilizando "CTRL" + "+" y "CTRL" + "-", utiliza: "CTRL" + "0" para regresar a la escala original).

Pero lo mejor que podrías hacer sería verlo en tiempo real utilizando el emulador Final Burn Alpha y algún rom (de algún arcade que tengas suelto por ahí). Lo configuras así: Video > Select blitter > Experimental (DirectX Graphics 9).

Luego, dentro de Video vas a: > Blitter options > Enable cubic filtering. Despues dentro de Blitter options > Cubic filter quality > Sharpened lightly (Catmull-Rom Spline). y de ahí cargas cualquier juego y lo puedes ver en acción (recomiendo ir a Audio > Plugin options > Use Low-pass filter, para ese efecto de maquinita)

Más al rato pondré algunas screenshots, y comparaciones.

Así se ve Street Fighter II' Champion Edition con Cubic Catmull-Rom:
Street Fighter II' Champion Edition Cubic Catmull-Rom Spline interpolation filter 3x(672p)/4:3
El contraste natural de los juegos retro nunca se había visto tan bien.

World Heroes Perfect, Neo Geo, SNK, Cubic Catmull-Rom Spline interpolation filter 3x (672p)/4:3
Se puede apreciar el brillo del color se preserva y el contraste natural. Ademas de que los pixeles blancos mantienen su tamaño y aspecto pese a estar rodeados de negro, con linear interpolation, pierden brillo .

The King of Fighter '97, Neo Geo, SNK Playmore, Cubic Catmull-Rom Spline interpolation filter 3x(672p) 4:3
Dithering, se preserva su aspecto y textura, y no se deforma como Eagle o SuperEagle, etc.

jueves, 20 de agosto de 2015

Resumen 2015

Desde que entré a trabajar no he hecho nada, o mas bien poco he avanzado de mis proyectos. todo se lo debo a:
  • la falta de motivación por consecuencia de: mucho trabajo/poco dinero, lo cual me genera mucho estrés que me limpio gastando mi tiempo en puro entretenimiento/ocio. Hago todo, menos lo aburrido, ya que mi trabajo me cansa y solo llego con ganas de entretenerme.
  • El hecho de ganar una misería que solo me alcanza para comer y "dar gracias por que me fue bien?" (el que escribe esto, no está de acuerdo con dicha frase).
  • Falta de organización de direccion, de como empezar, el que hacer, el actualmente ¿Cómo seguir?
  • Querer abarcar mucho y apretar poco, tener muchas ideas de proyectos y no decidirse por una o pocas, y establecerla, proyectos muy grandes para ser llevados a cabo
  • Ademas de que dejé la carrera para la licenciatura, por trabajar, para supuestamente juntar dinero y volver a estudiar, pero de ninguna forma pude juntar nada y todo se va en gastos. Asi que no hay escuela, ni nada.
  • Y ademas la inflación actual que vive el país, con el pendejo presidente impuesto por las asquerosamente ricas, elites, que todo lo consiguen con manipulacion, extorsion, asesinato, mafia, cohersion, engaño, degradacion, difamacion, abuso de confianza, juego sucio, abuso del poder, privacion de los derechos, desmoralizar, asaltar, creacion de carteles, espionaje, mentira, monopolizando, robando, etc.
Pero bueno, pese a todo esto voy a hablar de las cosas que he vivido ultimamente:

El renacer del manga en México
¡Gracias a Panini y a Kamite! Panini es la editorial que se extiende alrededor del mundo y Kamite es lo que quedo de Editorial Vid (famosa editorial de México). Panini está sacando actualmente en su catalogo Naruto, One Piece, Bleach, Saint Seiya The Lost Canvas, Dragon Ball, Berserk, etc. Y van a traer Sailor Moon a México. ToT (recuperada la fe en la humanidad)

Tambien Streaming en México
Ademas de que en México podemos ver anime de manera legal, por medio de Crunchyroll crunchyroll.com con membresía gratuita, y la premium (la cual no he pagado... =() y en su catalogo, se puede revivir el Saint Seiya clásico, o Los Caballeros del Zodiaco. Y principalmente Sailor Moon Crystal, el cual es lo más apegado al manga posible. Actualmente ya acabó su transmisión con 26 episodios y se concluyo los dos primeros arcos argumentales del manga. Y la verdad me encantó. Aunque debo aclarar que antes de ver el anime de Crystal, todavía no veía el anime de Bishoujo Senshi Sailor Moon (1991). Así que no tenía ningún lente rosa de nostalgía que afectara mi sensibilidad(?). Ademas de que ultimamente estoy viendo los capitulos de Sailor Moon (1991) y ya estoy en la temporada de Super S, del arco argumental Dreams con los enemigos Deadmoon. Hasta ahora me va gustó lo que ví.

Gaming en general
De que me he vuelto un mejor jugador de juegos de pelea, xD

De The King of Fighters XIV no hay novedades. Por otro lado, Capcom se junto con Sony y van a sacar Street Fighter V, el cual, debido a su gameplay, se ve prometedor.

De rpg's que me interesen. Ultima es un juego que me encantá por su charm particular que tiene, en algún otro momento hablaré de ello. Pero, Richard Garriot (el creador de Ultima), está desarrollando una secuela espiritual de Ultima (o màs bien Ultima Online) llamada Shroud of the Avatar, la cual fue financiada utilizando la plataforma Kickstarter. Encuentro interesante la jugabilidad, pero definitivamente los graficos se deben de mejorar, es algo indispensable. Ademas de que me desagrada los estereotipos que utilizan en la estetica femenina y masculina de los avatars... se debería poder cambiar. Y ademas siento que los desarrolladores en Estados Unidos no manejan un mismo estilo grafico que seea cohesivo, no parecen tener un look distintivo y muchas veces utilizan elementos que no tienen el mismo estilo artistico. No hay un balance.

Mighty No. 9, creado por Keiji Inafune, despues de salir de Capcom, y financiado por medio de Kickstarter. Tambien la secuela espiritual de Rockman (Mega Man)

Remakes: Final Fantasy VII (finally!), Resident Evil 2 (¿vuelven los juegos de PS1?), creo que algún Metal Gear Solid, escuche por ahí; no recuerdo por el momento que otros juegos y van a ser remakeados...

Madou Monogatari 1-2-3 / Puyo Puyo, ahora son juegos favoritos mios, me encantan sus personajes. Madou Monogatari 1-2-3 Es una saga de juegos de la compañía COMPILE que salió por primera vez para el MSX 2 /2+ la cual tuvo un spin-off que lo hizo famoso, que tambien salió para el MSX 2 /2+ llamado Puyo Puyo (pu pu pu pu pu pu pu puyo puyo), el cual introdujo las mecanicas de puyo puyo que todos conocemos, como por ejemplo el puyo kesu, que es limpiar los puyos juntando cuatro puyos del mismo color, horizontal o verticalmente, y el rensa que es crear una reaccion en cadena, donde los puyos se van eliminando uno a uno (video de combo). Luego, en 1992 y con la ayuda de Sega, sacaron para arcades la version que todos conocemos de Puyo Puyo, que tomo los personajes de Madou Monogatari y creo el modo de juego de batallas por el cual el juego es más conocido. Sin duda lo mejor de COMPILE es la musica (Sticker of Puyo Puyo). Por su parte, Madou Monogatari son Dungeon RPG's en primera persona como Arcana/Card Master Rimsaria (SNES), Shining in the Darkness (Genesis/Megadrive), Legend of Grimrock (PC), En los tres juegos tu controlas a Arle Nadja, de 16 años (6 años en el primer juego), una hechicera que dependiendo el juego debe recorrer ciertos lugares como por ejemplo: en el primer juego, debe recorrer una torre para poder graduarse del kinder =D; combatir extraños  y locos enemigos, resolver puzzles, etc, este video lo explica todo: ([DS#14] Madou Monogatari 1-2-3 (Demo)). Y lo vuelvo a repetir la musica (Open the door), la musica (Try out) es lo que mas destaca este juego. La versión de PC 9801 agregó musica de batalla (An enemy aproaches) , ademas de que es más oscura y violenta (Schezo). Lo que hace unico a este juego es que no existe indicador de HP o MP, la unica forma de saber la salud y el mana que tiene tu personaje es con los mensajes que aparecen despues de recibir daño o usar un hechizo (respectivamente), los cuales, están en japonés. Ademas, otro indicador que tiene el juego es la cara del personaje, la cual refleja su estatus mostrando una cara así "=D" cuando tiene full hp y esta cara "=(" cuando le queda poco. Otro detalle es que no hay un comando de ataque, por lo tanto no existen ataques fisicos, ni tampoco puedes equipar armas, ni nada por el estilo. El unico comando que tienes es el de mahou (magía), en donde puedes elegir hechizos para combatir al enemigo. Sin embargo, esta no es una limitación ya que tienes dos hechizos que puedes utilizar indefinidamente que no gastan mana, "Fire" y "Ice Storm". Aunque definitivamente no te quieres quedar sin mana, por que los enemigos pegan duro y te pueden hacer añicos en 3 turnos. Asi que es recomendable mantener el mana al 100% y llevar items que recuperen el mana en el inventario.

PS4, Xbox One.. mmm 1080p a 60fps, excelente, no pido más. Mas por el 60 fps que por 1080, ya que si los desarrolladores intentan utilizar una resolución mayor, van a joder el frame rate, y sus juegos se van a ver horribles como los que han salido de 30fps

DOOM (2016) desarrollado por id Software, otro desarrollador veterano que vuelve a sacar juegos. Lo que he visto está muy bien, aunque tiene más Brutal Doom que DOOM (DOS, 1992). Y no veo los miles de enemigos que le daban ese look Gauntlet (inspiración de DOOM y Wolfenstein 3D). Hablando de id Software. Wolfenstein The New Order y Rage no estan tan mal que digamos. El engine id Tech 5, id Software es hermoso, me encanta la giga texture (o como se llame), básicamente te permite pintar cada textura manualmente, sin tener que crear texturas para cada objeto, mesa, superficie, poly, etc. Por lo tanto, los juegos que utilizan id Tech 5 no tienen texturas repetidass y son mas realistas.

Hasta aquí voy a escribir, por que ya es mucho, y quiero subir todo lo que escribo lo más rápido posible.

jueves, 15 de enero de 2015

Quiero actualizar mi blog. hecho

Con esta entrada actualizo mi blog............





Todavía no tengo nada preparado, solo muchas ideas, y ganas de escribir, para que otras personas puedan leer lo que escribo y entretenerse. Y sobretodo hablar de muchos temas,que ocurren en el mundo.


Lo ultimo que voy a mencionar es que en ese lapso de tiempo de no-actualizaciones, cambie una o dos veces de compu. Y, ahora sí tengo compu propia. Que es algo más rápida.

Ya lo actualizé