Bienvenidos, oh amigos, lectores y oyentes del gigantesco compendio que es Game Over, próximamente con un nivel de expansión similar al de la corporación Umbrella. Inicio mi andadura por estos lares (Pues es sabido que hasta ahora no había encontrado ni tiempo ni una excusa sólida y creíble para escribir por aquí) ampliando lo que vendría a ser el contenido tratado en mi sección, la ya conocida como La caja de LOS fusibles.
En efecto, yo soy Koopa, como indica el nombre del autor del post, situado al final de toda esta parrafada.
Bien, ¿qué encontraremos por aquí? Básicamente será el guión de la correspondiente sección convenientemente editado y ampliado, añadiendo imágenes, bibliografía y demás complementos molones que ayuden a mejorar esta “experiencia multimedia” que es Game Over: No sólo de podcast vive el aficionado.
Puestos en materia, dejo paso al tema tratado el sábado pasado, el antialiasing. ¡Disfrútenlo hamygos!
Llegados a este punto, hay que imaginarse a Koopa subiendo a lo alto de un estrado, lleva un traje elegantísimo, porta un micro y sostiene unas tarjetas, cual mezcla entre monologuista y maestro de ceremonias en la fiesta de graduación de un instituto americano.
Empezamos esta sección divulgativa hablando del antialiasing. Es un término que oímos muchas veces, aunque seguro que más de uno nos hemos preguntado alguna vez qué es exactamente. Al menos yo me lo he preguntado, pero al acabar la sección ya tenía mis dudas despejadas.
El antialiasing, pues, es una técnica que permite evitar el aliasing. Obvio, ¿no? Cualquiera con un mínimo de luces y conocimiento de prefijos puede saberlo.
Bien, el mencionado aliasing, en gráficos generados por ordenador (Hay todo un mundillo alrededor de este efecto, no solo en imágenes, es una comunidad muy viva y con cientos de seguidores y varios clubs de fans), es un efecto producido cuando intentamos representar en una superfície finita (Que vendrían a ser los píxeles) algo con una cantidad infinita de puntos.
Hagamos matemáticas para ejemplificarlo: Si recordáis la secundaria, una curva tiene infinitos puntos, aunque no la podemos representar con esos infinitos puntos. Para ello, hacemos una cosa que se llama “discretizar”, que vendría a ser coger valores lo suficientemente pequeños como para que, grosso modo, la cosa que representamos parezca una curva. Aunque lo que tenemos en realidad es un montón de líneas rectas que una al lado de otra, crean ese efecto.
Obviamente, a más rectas usadas para representar esa curva, más curva parecerá. Imaginad la gráfica de una parábola representada con tres rectas y luego representadla con tres mil, la diferencia salta a la vista.

Véase el ejemplo en esta imagen. Aparentemente es una parábola, pero si nos acercamos vemos que solo son un montón de líneas rectas “pegadas” una al lado de otra. Puesto que no hay suficientes puntos para representar una curva, al discretizarlo lo representamos “como buenamente podemos”.
Si ahora cogemos un polígono y lo empotramos en un mundo 3D, dicha figura pasa por un proceso llamado rasterización. Lo que hace la rasterización es, a partir de las líneas que lo delimitan, convertirlo en cuadros de una rejilla en dos dimensiones. Los llamados Dientes de sierra ocurren cuando la discretización no es tan discreta como querríamos, y eso es el aliasing, que la rasterización nos convierta nuestro triángulo en un horrible ser deforme surgido de las pesadillas de Lovecraft.

Los puntos del espacio van a parar a la rejilla, que detecta los cuadraditos con o sin puntos, marcándolos así como “llenos” o “vacíos”. El problema surge cuando un cuadrado está totalmente marcado, ¡y la recta que lo cruza indica que solo debería estarlo parcialmente!
Llegados a este extremo, tenemos nuestro entorno gráfico representado y allí en medio un polígono con más sierras que el taller de Bricomanía, ¿Qué hacemos? Obviamente eso da un aspecto irreal al juego. Pues invocamos al antialiasing para que haga su magia.
Lo que haremos será reducir y suavizar esos bordes. Ya que por limitaciones tanto de hardware como de que alcanzar una cifra de puntos infinitos es imposible, pues no podemos quitar ese aliasing, echaremos mano entonces de distintas artimañas para “engañar” al jugador y que crea que eso es tan realista como Matrix.
Existen varias técnicas en lo que a antialiasing se refiere, aunque para no comeros el tarro con verborrea sobre gráficos y empezando porque yo no soy ningún experto y un poco más y me pierdo en un mundo de píxels de octarino, comentaré algo sencillo, fácil, y rápido, la técnica del Supersampling.
Si cogemos nuestro triángulo y lo rasterizamos, lo que estamos haciendo es ponerlo en una cuadrícula y decir “Este cuadradito forma parte del triángulo, píntalo del color del triángulo”. Cuando más pequeños son los cuadraditos, mejor representada está la figura, así que si tuviésemos infinitos cuadraditos, el triángulo tendría realmente tres lados. Pero no nos sobran los cuadrados, así que lo que haremos será hacer los cuadrados el doble de pequeños.
¿Qué ganamos con eso? Un triángulo no presentará el mismo color en un cuadradito del borde que en uno del centro. Aunque sea de un color plano y las sombras se hayan tomado el día libre. Si un cuadradito prácticamente no está dentro del triángulo pero ha sido marcado como tal, lo lógico es que sea de un color más claro. (El patrón para establecer si un cuadrado está dentro o no del triángulo también puede variar, creando así supersamplings de todas las formas, colores y sabores).
Pues al hacer cuadrados más pequeños lo que conseguimos, al fin y al cabo, es tener una gamma de colores más amplia para crear el efecto “Aquí se acaba el triángulo”. Eso es el supersampling: Haciendo la rejilla más grande y “encogiendo” luego la figura se consigue un efecto mejor que haciéndola directamente a su tamaño final.
Hay que decir que el rendimiento no es el punto fuerte de esta técnica. Existe, por ejemplo, el llamado Multisampling, que en lugar de tratar subpíxeles se centra en píxeles enteros, mejorando así el rendimiento.
Resumiendo:
- El aliasing es el producto de meter algo con puntos infinitos en un mundo de píxeles finitos.
- El antialiasing es el compendio de técnicas usadas para mermar esta situación de cara al observador.E
- El supersampling es un tipo de técnica que hace menos brusco el ver unos bordes de sierra que harían emmudecer a un fakir.
O como dijo el amigo Volcano: El antialiasing es la LIMA para las sierras de los bordes.
Bibliografía variada:
- El antialiasing. Recomendado artículo que me sirvió como base para la sección. Incluye ejemplos con imágenes varias de “los cuadraditos” y “la parrilla de rasterización”.
- Multisampling y supersampling. Varias imágenes de varios juegos con y sin estos filtros.
Y esto es todo por hoy, queridos conciudadanos y colegas del pad. El próximo día hablaremos del Modo 7, también llamado Esa Cosa Rara De La SNES Que Permitía Hacer Virguerías Con Los Fondos. En la misma bathora, en el mismo batcanal!





¿He leído Super Size Me? Ah, no. Supersampling…
Sí, es malo.
¿Soy yo o ése primer gráfico está hecho con el Matlab?
Koopa sensei, lo digo y lo diré, se agradece que comparta su koopaduria con los legos. aprendo tremendamente, uno pegado al mando y sin saber nada de lo que hay detrás de los gráficos.
Nooooo! Matlab noooo! Por diox >_<
Me pareció muy didáctico en el programa aunque los gráficos los vi mejor por el podcast :-P
Hombre, en texto todo esto del antialiasing se entiende mejor que por la radio. Estoy ansioso por ver que nos presenta esta semana y si hay cambios visibles en la explicación o sigues necesitando estar en segundo curso de una carrera de ciencias (estoy empezando con los algoritmos…malditos).
Por cierto estoy con Funs, el Matlab contra más lejos mejor.
Odio el Matlab. He odiado pocas cosas más que al Matlab. Ojala despellejaran vivos a todos los que colaboraron en su desarrollo. Lo odio, lo odio, lo odio, lo odio, lo odio…
Me parece increible que vaya a decir esto (teniendo en cuenta que la sección la hace Koopa), pero… me gustó bastante xD. Supongo que no te hará mucha falta info sobre el mode 7, pero por si acaso echale un ojo a esto:
http://www.pixfans.com/el-mitico-modo-7-de-super-nintendo/
http://www.coranac.com/tonc/text/mode7.htm
Amh, y enhorabuena por el programa. Llevo un año riendome con vosotros, así que que me menos que agradeceroslo :)