danirod

Una explicación simplificada del algoritmo Wavelength Collapse →

Hace un tiempo encontré destacado en GitHub un repositorio con una implementación muy trabajada del algoritmo Wavelength Collapse, enseñando mediante vistosas imágenes cómo el algoritmo en el que se basa el programa compartido en el repositorio es capaz de transformar una pequeña imagen en una imagen procedural más grande, lo cual es de utilidad para fabricar mapas y otro tipo de imágenes.

Imagen generada de manera procedural
Ejemplo de uso del algoritmo generando un tablero más grande a partir de una imagen de entrada. (Fuente)

El repositorio contiene un README bastante exhaustivo donde detalla el funcionamiento del algoritmo, pero si buscas una aproximación más sencilla que te ayude a entenderlo, hace poco Robert compartió en su blog una aproximación al algoritmo utilizando ejemplos de andar por casa.

Imagine that you are planning your wedding. […] You need to design the seating plan for dinner. Your family can be very argumentative and volatile, so this will be difficult. Your dad can’t sit within 2 tables of your mum. Your cousin will get grumpy and lonely if she doesn’t sit with your other cousin. And it’s probably for the best if Uncle Roy doesn’t sit with the environmentalist wing of your partner’s family. – §

El algoritmo realmente no es complicado. Se trata de asociar a cada una de las posiciones del espacio disponible (como los píxeles de una imagen) el candidato que mejor se ajuste teniendo en cuenta una serie de restricciones. Esta entrada de blog explica fácilmente en qué consisten esas restricciones y cómo se pueden computar para una imagen, y muestra un ejemplo práctico de uso.

Disclaimer: este post forma parte de mi linklog. Haz clic aquí o en el título del post para ver el contenido original. La intención al compartir un enlace es informativa y no puedo garantizar la exactitud del contenido enlazado. Más información.

Enlace permanente Marcador presente en Linklog (ATOM)

Sindicado en: (¿qué quiere decir esto?)

Etiquetas: #algorithms #gamedev #procedural