no son montañas, son polinomios aleatorios

He estado varias semanas sin escribir, por muchísimas más razones de las que contaré en este blog. Aún así, puedo desde luego contar que aunque me prometí no volver a hacerlo, hace tres semanas me embarqué de nuevo en una aventura terrible. Qué le voy a hacer, soy un liante, no me sé estar quieto. Hay cosas que son inevitables, y la mezcla de fórmulas, bytes, cumbres nevadas, música, y matemagias es una de esas cosas en las que me tenía que dajar caer conscientemente a pesar de que algo en mi interior me estuviera diciendo “no, no de nuevo cacho bruto”.

Esta vez tengo al menos la excusa de que me empujaron, de que el enmarronamiento fue parcialmente inducido por elementos externos. Y es que en Febrero hice unos experimentos sobre fórmulas y técnicas nuevas que me permitieran crear paisajes montañosos en menos de cuatro kilobytes al tiempo que fueran representables en tiempo real (que fueran fórmulas interactivas, en otras palabras, como un videojuego), y durante estos experimentos un amigo danés al que enseñé algunos de los resultados intermedios me animó a continuar y colaborar con él. La idea era que yo haría las matimágenes y formulanimaciones, y él se encargaría de la matemúsica y aplicar un poco de magia negra hexadecimal. Y como yo andaba liado y sin tiempo, como siempre, dije que sí.

Y así quedó la cosa, hasta que hace tres semanas caí en la cuenta de que si quería hacer algo digno de podio en el concurso de demos del que acabo de llegar este fin de semana, teníamos que ponernos las pilas. Así que por dos semanas y media, todas las noches non stop he estado sumergido en polinomios, cosenos y algún logaritmo, pintando texturas, creando nubes, haciendo crecer montañas, y coreografiando cámaras.

Éste último punto fue interesante de hecho, porque esta vez intenté crear cámaras más naturales y menos trigonométricas (suaves y derivables a más no poder, es decir, aburridas). También intenté dar a la imágen el brillo central, el parpadeo natural, el desplazamiento de color y el grano característico de las imágenes analógicas tomadas por una cámara real. Además busqué con esmero los parámetros de las fórmulas que dieran como resultado perspectivas lo más espectaculares posibles, e intenté evitar tomas completamente estáticas que resultan irreales (pues las cámaras de verdad tienen peso e innercia).

Me faltó tiempo, y mucho, para dejarlo todo como yo habría querido, pero el resultado es de todos modos más que decente, y como experimento ha salido estupendamente bien. Después de todo la gente “ve” montañas donde en verdad sólo hay unos polinomios. Así que tendré que decir aquello de “misión cumplida” (aunque sólo de momento).


No son montañas, son polinomios aleatorios

43 thoughts on “no son montañas, son polinomios aleatorios

  1. pera

    “como experimento”? jajaj es mucho mas que eso! 😀

    una de las cosas que más me sorprendió (ademas de todo xD) fue el efecto de la costa, es un detalle impresionante y mas para un 4k.

  2. Dark Sylinc

    Recién entro por primera vez a tu blog.
    Aún después de tantos post en GD.Net

    Cuando se trata de 3D, nunca queda exactamente como uno hubiese querido, pero si se es bueno, es más que decente (y, al decir eso, me quedo muy corto), tal y como has dicho.

    Ya lo he dicho, y lo repito, felicitaciones.

    Personalmente, el efecto de la costa es el que menos me sorprendió. Pero el resto es impecable y eso que mis estándares son muy altos.
    Además ese efecto de las cámaras analógicas es perfecto.

    Todavía hay algo que no me entra: Generás texturas utilizando matemática, o el coloreado de las montañas es el resultado matemático de un pixel shader al dibujar en la pantalla?

    Cuántos vertices tiene el terreno?

    Además tengo otra duda: después de tanta matemagia, eso significa que al terminar te retirás a tu matecueva? 😀

    Suerte y felicitaciones

  3. admin

    hehe, estoy bastante contento con la reaccion de le gente, no me esperaba tanto hpye. Creo que a la segunda semana de coding ya perdi las perspectiva de lo que estaba haciendo. Quiero decir que la mirada a la intro era local, solo queria mejorar y mejorar las cosas, seguir inclinando la derivada hacia arriba, pero sin darme cuenta de donde estaba ya de alto. Y parece ser que subi alto. Solo hasta que llegue ahora otra Texas o Atrium claro. Luego habra que empezar de nuevo.

    Dark Sylinc, el terrno tiene un millon de triangulos nada mas (nada mas, porque no es lo suficientemente densa, deberia ser 5 veces mas para quedar bien). Tuve un sistema de LOD pero lo tuve que quitar por problemas de tamanio. Sobre las texturas, las respuesta es que no hay texturas. El color de cada pixel se calcula en un shader que aplico a dos triangulos que recubren toda la pantalla.

    Ahora supongo que volvere, no se si a la cueva, pero al real life si. A seguir bailando, de terrazas, viajando y arreglando mi casa. Tambien espero poder codear algo de nuevo (hey, estuve casi 6 meses sin codear), pero suavemente (“suavementeeee, co-de a re, que quiero ganar los premios, y las compos otra ve eeeez”)

  4. Dark Sylinc

    Gracias por la información Iñigo!

    Si, lo del Lod me lo imaginé cuando dijiste que las optimizaciones obvias debieron ser excluidas por el peso del ejecutable.

    También sorprende que sean solo 1 millón de vértices y se vea tan bien.

    Y a juzgar por lo rápido que funciona el color aplicado en forma de postproceso, creo que subestimado esa técnica en cuanto a real time (ya estaba al tanto de cómo funciona debido a tus whitepapers anteriores, especialmente la de la presentación de NVSCENE 2008)

    Debido a esto estoy empezando a dudar si el futuro de las escenas exteriores de alta calidad debería de estar en esta técnica y no en la tradicional textura gigante, con lightmaps preprocesados o generados al cargar el ejecutable, de 4096×4096 o más.
    Más que nada, porque es bien sabido que la velocidad de procesamiento se incrementa mucho más rápido que el ancho de banda de memoria.
    Si corre así de fluido y así de lindo SIN ninguna optimización…. no me imagino si te dedicaras a eliminar la limitación de 4kb e incluir severas mejoras de performance.

    Son solo mis pensamientos…

  5. xTr1m

    Hey Iñigo,

    otra vez felicidades por la intro, de veras que te quedo estupenda. Y como siempre tu nunca estás satisfecho aunque ya sobresaliste (otra vez mas) de todos las demas 4ks 🙂 Espero que tu pronto cambio de RL te traiga mucha satisfacción, y que no te olvides de este lado del mundo (como lo quieras interpretar, europa o demoscene).

  6. LTAngel

    W O W !

    Aunque No Entiendo Nada De Programacion [Todavia] Esto Sobresale De Todo Lo Que Habia Pensado

    Habia Visto Un Juego Con Muchisimo Detalle En 128 KB

    Pero 4 KB?

    Eres El Amo

    Cada Vez Mas Ganas Me Dan De Estudiar Programacion

    Saludos Desde Mexico

  7. Aluciante

    Hola, pues te felicito es increible hasta donde has llegado, y es impresionate que decir alucinante la animacion y quisiera preguntarte que herramientas has utilizado para realizar esto.

    Fecilitaciones por tu trabajo

  8. Nixon

    Sin duda todo lo que habeis hecho me ha gustado a pesar de no enterder el cómo. Lo visto aprox 3:36min en 4k me mueve a felicitarte y al equipo al cual seguro construyo con vos esta plus+ animación. Muchos éxitos espero ver más eh?

  9. jose luis

    te animo a que no dejes de hacer cosas y de seguir investigando es impresionante a donde has llegado y mas aun a donde puedes llegar.
    Bravo y muchas felicidades.

  10. Josh

    La animación 3D es todo un mundo aparte pero te has salido del margen, nunca imagine que montañas tan reales trabajadas por polinomios fuera posible, muy buen trabajo el que haz realizado.

    Felicitaciones.

  11. Sara

    Hola Íñigo,

    Yo hablo como mera espectadora de películas 🙂
    Con total sinceridad: parece que está grabado con una cámara! El resultado es IMPRESIONANTE.

    En lo único que noto yo el poco peso es en la cantidad de colores (poca gama cromática). Corrígeme si me equivoco.

    Enhorabuena y gracias (por regalar un poco de tu talento a la humanidad).

    Saludos,

    Sara
    http://www.enladiana.com

  12. Iñaki

    Zorionak Iñigo!
    Has hecho un excelente trabajo! No se cómo narices puede entrar todo eso en 4KBs! es increíble. Sigue así!

    Un saludo desde Gasteiz

  13. José

    Felicitaciones!!!! Da gusto ver gente que con poco hace mucho. Por favor no dejes de programar, sería desperdiciar tu talento. Seguí así!!!!!.

  14. Arkadoel

    He de darte mi enhorabuena, me ha impresionado mucho el programa. Despues de verlo me han pasado dos cosas por la cabeza:
    1.- Cuanto rendimiento estaremos desaprovechando mediante las herramientas que usamos actualmente.
    2.- Tios como tu deberian ser los que enseñasen y asi el mundo del software evolucionaria, no como actualmente que esta muy atascado en lo conservador y el bajo rendimiento.

    Buen trabajo.

  15. Sebastian

    Yo soy programador hace 5 años aproximadamente y la verdad que tu trabajo
    me dejo sin palabras, es increible como con solamente 4 Kb se pueda hacer
    tantas cosas.

    Me quito el gorro ante ti..

    Felicitaciones por tu trabajo.

  16. Guillermo

    Me encanta el trabajo. Creo que es la mejor 4k que he visto.

    Es curioso lo que cuentas de que te embarcaste en esto un poco a lo loco. Para mi la gente más valiosa que hay en el mundo de la informática es la que está constantemente desarrollando proyectos personales. Gente apasionada y con talento.

    Esta 4k es una carta de presentación de lujo.

    Saludos y mucha suerte en el futuro.

  17. Oscar

    Felicidades por este 4KB, has hecho un estupendo trabajo. Yo hace tiempo que me desentendí de la escena (intenté llegar a algo, pero me quedo como mero programador de cuarta jeje) pero aún a día de hoy sigo quedando anonadado con las demos que hacéis algunos.

    Para la próxima no te limites en tamaño, y sorpréndenos con algo acojonante, como hacía Farbrausch antes xD.

    Un saludo.

  18. Félix

    Simplemente Impresionante!.

    Eres un artista de la programación y las matemáticas, es increíble!.

    Un gran saludo desde Venezuela and keep working!!

  19. facuttE

    Saludos desde Argentina…tu trabajo es impresionante,,,imagino las horas de trabajo y la paciencia,,,es simplemente fuera de este mundo (>_<) la animación es por demas hermosa.
    Experimento decente??? Es mas que eso,,,
    Sos el mejor en esto,,,,aunque se me hace que el único (O_o)
    Felicitaciones….por cierto mis partes favoritas son cuando se acerca a la montaña casi rosandola y desciende o se eleva bruscamente….que genial ese efecto….
    No veo los polinomios y por mas que digan que lo son,,,sigo viendo montañas,,,,es mas parece ser filmado en un lugar,,,jajaja ,,se ve tan real^^

    Bye Bye

  20. JCFireBoy

    Me dejaste sin palabras!!!!
    Creo que todos los comentarios anteriores y me incluyo, nos quedamos cortos en decirte lo excelente trabajo que hiciste, simplemente felicidades, y yo que a duras penas y puedo con las matemáticas….
    Felicidades!!!
    Estaré esperando para ver las mejoras que planeas hacer, aunque para mí eso ya es demasiado!!!!

  21. Ricardo

    Me parece excelente.
    Tu frase “La gente ve montañas donde en realidad solo hay polinomios” me hizo pensar enseguida “la gente ve materia donde solo hay energía y así con muchas otras cosas”.
    Hasta donde modestísimamente entiendo, todas las cosas de la vida son mucho más sutiles de lo que parecen ser.
    ¿No es cierto?
    Incluso afirmar que los sentidos trabajan en la superficie de las cosas, sería atribuirle a los sentidos una importancia excesiva porque en realidad los sentidos crean solo una ilusión.
    ¿Estamos viendo algo que en realidad no existe o la existencia en sí misma no es lo que creemos?
    En otro orden de cosas, los 4K versus el tiempo que dura el video me despierta una serie de pensamientos que ya pasan a la categoría de delirio.
    ¿Habrá algo así como 4K de código detrás del tiempo y del espacio?
    ¿Será 1K?
    ¿Será ese K de código tan diferente del tiempo y del espacio como tus 4K de formulas lo son de las imágenes que producen y del tiempo que les lleva reproducirse?
    Bueno… está bien.
    Perdón.
    Juro no leer más a Lobsang Rampa.
    El trabajo que han hecho con tu amigo me parece genial.
    Saludos y respetos.

  22. Alenca

    FELICITACIONES! Matemágico, excelente trabajo, No dudo que alguna empresa grande de animación te esté tentando (y con justa razón) porque simplemente has abierto mentes.
    Sólo por cuirosidad, cuantas líneas de programación tiene tu trabajo?
    Gracias por tu matearte!

Leave a Reply