Demo ganadora de la reciente competición "Revision 2021" que consigue efectos solo posibles en equipos de última generación como raytracing, zoom infinito, sombras progresivas y antialias, entre otros, para los sistemas Amiga de 1992, con una modesta configuración de solo 50mHz, 32MB de Ram, chip gráfico de 256 colores, y sonido de 8 bits que han conseguido transformar en 16 bits con una técnica propia. Algunos efectos usan técnicas tan nuevas que no se han conseguido identificar.
|
etiquetas: demo , amiga , demoscene , programacion , 3d , música
Al final del video dice que la CPU es una 68060, que unicamente se uso en el Amiga 4000T del 1996:
24-bit color palette (16.8 Million colors)
Up to 256 on-screen colors in indexed mode
262,144 on-screen colors in HAM-8 mode
Aunque la primera aceleradora montada sería aproximadamente del 96, el sistema salió en 1992 (tanto el 1200 como el 4000) y el procesador en el 94, pero no es determinante para ejecutarla porque también se puede correr en un 68040 de 1990, solo que irá un poco más lenta.
www.pouet.net/prod.php?which=88640#c920727
Eso sí: ya te aviso que es MUY técnico, para entenderlo necesitarás releerlo al menos un par de veces
"Some rant about the code in here.
The zoomer:
It is an infinite zoomer inspired by TBL's spectacular zoomer in Magia. Large images (up to 8192x8192) with lots of detail get converted to polar images. The bigger the polar image, the further we can zoom in. The neat thing about this conversion is that only the details that are important while zooming towards a single point are kept, while the rest of the details get discarded. The original filesize of some of these images maybe 200 MB or so.
The polar image gets mapped on your typical tunnel table of U,R coordinates. Instead of scrolling the r-coordinate, as you would in a tunnel, it is scaled by a zoom factor. To avoid choppy movement, there is some subtexel precision on the radius and angle coordinates allowing very smooth movement. Without the subtexel precision the slow movement is impossible. The LUT itself was made piecewise linear to avoid reading so much table data from RAM. The effect is embedded in the c2p to save further bandwidth.
At first we tried automatically stitching together multiple smaller images, but the seams between the images always turned out blurred. Painting these images is also a huge amount of work. I seem to remember TBL saying Louie spent a lot of effort on that Magia zoomer and I'm really impressed at how long it zooms and its seamless transitions.
In the end we came up with the idea of using gigantic fractal images and we called upon Evilryu to help out with coding these in Shadertoy. He tried several kind of fractal formulas and color combinations. The most detailed ones caused too much aliasing and in the end the techno world you see in the demo was chosen. The images are blurred before conversion to polar to reduce some aliasing. Since many images were made I'm tempted to release another demo just featuring all of these variations. Lots of cool stuff.
While this was going on Farfar modeled the mask object which fit very well inside this technomaze imagery.
Skybox:
6 fractal images rendered with 90 degrees field of view from a single point mapped on a cube.
The 3d-engine/exporter:
I really wish it was a movieplayer as suspected above as that would be more impressive… » ver todo el comentario
(CC #4 #0)
www.youtube.com/watch?v=ag1-By-4qfw
Y ya puestos: ¿puedes explicarnos perfectamente cada plano y técnica utilizados no? porque ningún "inutil" en Pouet (sitio trufado de programadores de alto nivel) ha podido explicarlo hasta ahora. Y de lo de la técnica de sonido sin descubrir en más de 30 años (el Paula es del 85) ni hablemos
He visto burradas rulando en un amiga con 2Mb de Ram....
Lo que los de pouet no saben es qué matemáticas hay detras y que valores se han usado en el array de datos pre-calculados, vamos que lo de ser precalculado no tiene por que quitar merito
la pregunta es si eso lo esta haciendo el amiga realmente o si la genialidad está en las formulas que han generado los datos que usa la demo
De todas formas no es mentira: se trata de "fakear" raytracing, parecido a lo que hacen las tarjetas para tiempo real aún hoy en día, porque simular raytracing "a pecho" no es posible ni una 3090, de lo que se trata es de que tenga el aspecto.
youtu.be/iw17c70uJes
La cosa es que juego de instrucciones y microprocesador tiene, eso es un amiga.
Siempre he preferido las demos que no son "lo máximo" en técnica, pero con mejor disenyo y sincro con la música. Pero bueno, cuestión de gustos.
La diferencia es que esa RAM está corriendo en el equipo original, de hecho, hay aceleradoras que permiten hasta 256MB, y ahora que se ha descubierto como usar una Pi como aceleradora, podrían hasta 4gb, pero no es el caso, han sido conservadores. El 060 tampoco es del 92, pero tanto eso como la ram son expansiones de la época (algo como decir que a tu pc le pones una soundblaster, o actualizas el 486 a pentium), asi que no es como para decir que "eso no es un Amiga"
youtu.be/jBREezbBs0I
¿Por qué no se usa esto siempre, aparte de en imágenes fijas o en efectos simples? pues porque tiene otras implicaciones, como un excesivo consumo de memoria, tener que calcular timings muy preciosos a la hora de generar las imágenes, etc.
Aquí pasa lo mismo, probablemente usar esos modos de muchos colores se coma toda la memoria y sea muy costoso en cuanto a ciclos y salvo cosas muy específicas no te sea adecuado.
La demoscene tiene mucho de ilusionismo y es como ser mago, parece que hace una cosa asombrosa cuando en realidad por dentro hace otra que una vez que la comprendes dice "ostia que chorrada de truco de magia"
Y no lo digo como algo negativo, al contrario es ingenio puro, al igual que los magos. Por eso algunos no quieren revelar los trucos. Y forma parte del pique casi siempre sano que tiene la demoscene.
La demoscene tiene mucho de ilusionismo, es cierto. Pero una cosa es que algo sea sencillo como concepto y otra que sea simple como implementación. Si la demoscene es tan impresionante no es tanto por lo bonitas que luzcan las demos o por lo vistoso que sean los efectos, sino por poder conseguir meterlos con todas las restricciones que hay en el sistema.
Y los Amiga, del primero al último, han soportado SCSI desde el principio, con la expansión adecuada (para eso están los puertos de expansión).
amiga.resource.cx/exp/blizzard1230mk1
Acepta hasta 64MB de RAM, con dos SIMMs de 32MB
EDIT: un Amiga "big box", hasta 2GB en ampliaciones en slots Zorro, como el A3000:
en.wikipedia.org/wiki/Amiga_3000
amiga.resource.cx/exp/proram3000
De 1991, el A1200 todavía no existía.
www.youtube.com/watch?v=_2a06AZVySw
www.youtube.com/watch?v=wdYbeqP5KPs
Engine nirvana unicamente para 128K
www.youtube.com/watch?v=gv_v4c1t_X0
Aquí tengo uno en mi colección personal de procesadores.
Para los AMIGA 1200 hay aceleradoras con 060, yo mismo tengo una Blizzard 1260 (amiga.resource.cx/exp/blizzard1260).
También la facilidad de depurar con un emulador, y que no se te cuelgues el ordenador entero al acceder directamente a registros gráficos del ordenador acelera bastante el tiempo de desarrollo.
Creo que esto es más cierto para ordenadores de 8 bits, que de 16, aunque incluso en la época se usaban ordenadores más potentes para precalcular operaciones costosas. Sólo digo que ahora esos cálculos pueden ser más complejos y con resultados más espectaculares
Te dejas unas cuantas cosas... programar en emuladores te expone a errores en los propios emuladores (y que luego no funcione en una máquina de verdad o en otro emulador diferente). Y una cosa tan tonta como no tener pantallas de tubo es una gran diferencia, porque muchos efectos se pueden realizar gracias a sincronizarte con los tiempos de trazado del rayo de luz o a las propiedades de la pantalla (muchos microordenadores tenían instrucciones para pintar el área de la pantalla... y para pintar por fuera del área de la pantalla. También dejas de poder usar o descubrir características no documentadas, que hay muchas.