El otro día estuve mirando un libro de Escher que tengo desde hace tiempo. Hojeándolo llegué hasta uno de los dibujos que siempre me había sorprendido por su regularidad: “Cubic Space Division” . Este dibujo se puede representar a mano con un poco de paciencia, cosa que les sobra a las computadoras. Así, que decidí realizar un pequeño programa que representara escenarios parecidos a ese dibujo.
Cómo mostrar el espacio sin más es aburrido, decidí representar un enrejado acotado por la superficie de un objeto. Para ello utilicé una herramienta que codifiqué hace más o menos un año. La herramienta (una clase en C++) determina si un punto está dentro o fuera de un objeto cerrado. Esta herramienta se pensó para determinar el volumen de un objeto amén de utilizarse para obtener otras interesantes características como el tensor de inercia del sólido rígido que representaría. Para determinar el volumen, normalmente se eligen puntos aleatorios acotados dentro de una superfice que engloba el objeto y se haya una relación entre los que están dentro y los totales. Si esta relación se multiplica por el volumen acotado de la superficie englobante tenemos una aproximación del volumen. Estas técnicas de integración numérica son muy útiles cuando es muy complicado o imposible obtener una función analítica que represente la función de superficie que se desea integrar.
Para realizar este modelo simplemente hay seleccionar puntos equiespaciados en los tres ejes espaciales y almacenar los que están dentro del objeto a analizar. Analizando la vecindad de los nodos (ver si tiene vecinos en los tres ejes y sus dos direcciones) se pueden añadir empalmes que parejas de éstos. Es necesario elegir cautelosamente los tamaños de los nodos y de los empalmes para que el armazón no englobe todo el espacio.
Dejo por aquí algunos renders. Una vista interior:
Otras exteriores…
Y una exterior más de cerca:
Tags: escher, Lattice, partition, render, space, subdivision





July 4, 2008 at 9:51 pm |
Fantastica, impresionante.
Es una renderizacion fantastica, ya no solo por el render en si, sino por la idea de la celosia con forma de mujer sentada.
Esta es una de las mejores imagenes q he visto en muchos sitios de internet
July 6, 2008 at 3:26 pm |
Gracias, me alegro mucho de que te guste (ese era el plan!) :>. Además por debajo (desde un punto de vista de programación) hay bastante curro. Eso sí, si se reaprovecha bien el código se puede montar una imagen con otro modelo 3D en menos de 10 minutos sin contar el tiempo de render. Que bueno, debido a la poca optimización, puede llegar a ser de 15 a 20 horas.
November 13, 2008 at 9:14 am |
Me ha encantado la última imagen, esas sombras y esas diferencias de luz te da una sensación muy relajante de flotar en ella. La verdad es que me encantaría entrar y estar durante horas descubriendo distintos ángulos de luz y sentir esa soledad que desprende la estructura… Es como si fuesen los restos de una antigua civilización extinguida que nadie ha descubierto hasta ahora y que se presenta ante mí con deseos de que alguien la descubra, la observe, la valore… para no caer en el olvido del tiempo…
Es genial, en serio. Un saludote!
November 13, 2008 at 2:49 pm |
Gracias!! Me ha gustado mucho tu comentario. Se podría ver en tiempo real, pero le costaría un poco tirar. De todas formas investigaré un poco más a ver si puedo hacer algún otro render de la misma temática. Un saludo!.