Naima escribió:No quiero dar malas noticias, pero creo que los chicos de Sony se perdieron el episodio de Barrio Sésamo en el que Coco explicaba la diferencia entre aliasing y anti-aliasing, es decir, que podemos esperar sentados a que incluyan el filtro en la consola. Como mucho que algunos desarrolladores programen e incluyan un filtro en sus juegos, con lo cual tendremos juegos con aliasing y otros sin él.
Espero equivocarme y que Sony incluya el filtro de serie en una futura firmware, porque ya les vale no hacerlo... pues fueron ellos los que decidieron que la gráfica nvidia de la ps3 no lo llevase incorporado por hardware...
Uff, hasta aquí lo hiciste bien, pero con este párrafo es que no has dado pero ni una.
Aliasing es el problema que tienen todas las imágenes que se generan por ordenador. Eso ocurre porque estás dibujando un elemento con resolución infinita (por ejemplo una línea) en un dispositivo matricial con resolución finita (un monitor).
Dicho de otro modo, si dibujas una línea en la pantalla no puedes representar los infinitos puntos de los que consta la misma, sino que sólo se dibujan los puntos que existen en la pantalla (píxeles) por los que pasa la línea, que son finitos, lo que significa que hay una pérdida de información que no puedes recuperar.
Sin embargo, hay una manera de disimular el aliasing aprovechando nuestra percepción visual, que consiste en mezclar el color de los píxeles adyacentes de la línea representada en pantalla con el color de fondo.
Por ejemplo:
Ahora bien, no existe un "filtro" que proporcione anti-aliasing, ni es cosa de sony, es algo inherente a todo elemento gráfico representado en un ordenador. Luego olvidaos de un firmware que cree un filtro mágica y automáticamente, porque eso es imposible. La manera de solucionar el aliasing es en el momento de crear la imagen en el ordenador.
En los juegos se reduce el aliasing de la misma manera, pero con el problema de que no sabes a priori dónde estará la línea ni el color que habrá de fondo en esa línea, con lo que hay que aplicar algunas técnicas, actualmente implementadas en TODAS las tarjeta gráficas por hardware, incluída por supuesto el RSX de ps3, para reducirlo, pero ello suele tener un coste de rendimiento que es mayor cuanta más calidad pretendas obtener.
Por ejemplo, aunque ahora existen algoritmos de mezcla más optimizados, lo que se hacía al principio era lo que se conoce como "supersampling" que es renderizar la imágen internamente a mayor resolución de la que se representaba en pantalla realmente (ejemplo: 4 veces más resolución == 4xAA seguro que esto os suena más). Con esa información redundante puedes reducir la resolución a la hora de representarlo en pantalla y aprovechar la información de los píxeles de más que generas para conocer los colores adyacentes en cada línea y mezclarlos, y paliar así el aliasing.
¿El problema? Si estas renderizando a una resolución de pantalla de 640x480, en realidad internamente tenías una resolución de 2560x1920, cuatro veces más, con lo que no había dios que moviera aquello. Además en las primeras implementaciones tenías un ligero efecto borroso, ya que casi casi lo que hacían era un reescalado habia abajo, de mucha resolución a menos.
Como digo ahora hay algoritmos más optimizados tanto en rendimiento como en calidad de imagen, por ejemplo, en vez de hacerlo para toda la pantalla, sólo lo haces para los píxeles en los que exista una línea, que es el multi-sampling que se usa en hardware actualmente, pero aún así siguen acarreando una carga sobre todo en ancho de banda de memoria con lo cual a veces se desactiva porque si no la tarjeta no puede con ello. Por ejemplo, el famoso Antialiasing "gratis" de la 360, en realidad lo que hace es reducir enormemente el ancho de banda usado para esta técnica.
Personalmente creo que a una resolución de 1280x720, el anti-aliasing no es tan necesario.