FYI.

This story is over 5 years old.

diseño

Un código hermosamente sencillo genera terrenos realistas con fractales

Loftis desarrolló un método asombrosamente simple para generar bello terreno, y lo está compartiendo con todo internet.

Construir un mundo no es un trabajo fácil, para construir este en el que vivimos se necesitaron de 6 días a 13 billones de años, depende de a quién le preguntes. Sin embargo, si preguntas a Hunter Loftis, autoproclamado yonqui del JavaScript, puede que recibas una tercera opinión. Loftis desarrolló un método asombrosamente simple para generar terreno bello y realista y ahora lo está compartiendo con todo internet.

Publicidad

En un proceso que utiliza tan solo 120 líneas de código, las órdenes de Loftis convierten una cuadrícula plana en una complejidad casi infinita. El código se basa en imágenes fractales, un concepto geométrico en el que cada sección de la forma tiene la misma naturaleza estadística que la forma completa. Se trata de una de las mejores formas de modelar de forma matemática patrones aparentemente caóticos, como la formación de cristales o la erosión del litoral. En este caso, Loftis lo está utilizando para modelar pedazos enteros terreno. Aquí hay una demostración de la generación aleatoria de terreno. Refresca la página para ver cómo se generen nuevas combinaciones alucinantes de colinas, montañas, cañones y valles.

Sin embargo, la modelación de terreno realista en sí no es lo más importante de este proyecto, lo verdaderamente impactante es la simplicidad del código. Funciona cogiendo una simple cuadrícula y dividiéndola sucesivamente en otras cuadrículas más pequeñas. A medida que se van creando las cuadrículas más pequeñas, la función de aleatorización divide las cuadrículas alternativamente en cuadrados y diamantes. A continuación, crea un nuevo terreno aleatorizado para el siguiente grupo de cuadrículas basado en los puntos de datos del previo cuadrado o diamante. Puedes leer la explicación de Loftis con todo detalle aquí.

El resultado es un terreno aleatorio, pero con áreas de aleatorización graduadas. Este algoritmo impide que el terreno generado aleatoriamente pueda alzar torres gigantes de un píxel de amplitud al lado de una llanura llena de agujeros profundos pixelados. En definitiva, hace que el terreno parezca natural.

Publicidad

Loftis concluye su explicación con un reto: “Si eres un poco como yo, los resultados de este simple algoritmo te dejarán picándote el gusanillo para construir un Terragen online, un juego de disparo en primera persona basado en una mochila cohete, un simulador de pesca, un juego MMORPG, etc. Esta demo prácticamente nos está pidiendo una extensión”.

Y los usuarios del script están respondiendo:

@HunterLoftis El primer paso hacia una versión interactiva de tu demo de terreno realmente buena - http://t.co/UaWGBS9uhz - gracias por compartir.

— Callum Prentice (@callumprentice) May 13, 2014

Puerto de procesamiento de terreno realista: http://t.co/GKHNZKnhGf por Jerome Herr

— Hunter Loftis (@HunterLoftis) May 14, 2014

Hice una "impresora 3D de terreno" basándome en el trabajo de @HunterLoftis: http://t.co/Sc2dhTp4Tv

— Andrei Kashcha (@anvaka) May 20, 2014

Soluciones simples y elegantes como esta plantean una interesante serie de preguntas: ¿es el mundo en que vivimos realmente de naturaleza fractal? ¿podría el código básico del universo ser únicamente un puñado de líneas simples? Quién sabe, pero seguramente será alguien como Hunter Loftis quien lo adivine.

Artículos relacionados:

Artist Brings Historic Battle to Life With 3D Rendering

Drive Into the Ocean with These Maps App Glitches

These iOS Map Glitches Show The Warped Beauty Of Machine Error