Puede tener suerte con un enfoque similar a las imágenes genéticas de Karl Sims .
Utiliza un conjunto simple de operadores en un lenguaje similar a LISP, de modo que la salida de cualquier operador puede utilizarse para influir en la imagen, de manera similar a en algunos lenguajes de sombreado (es decir, un escalar sería un valor en escala de grises, un vector3
sería RGB
, etc.) )
Aunque supongo que eso es material de implementación, entonces lo que probablemente quieras son sus palabras clave, que (iirc) contienen todos los conceptos básicos:
- funciones trigonométricas (
sin, cos, tan
, etc.)
- posición (
x, y
)
- operadores matemáticos básicos (
sqrt, pow, abs, inverse
)
- funciones de ruido (
fBm, noise2, noise3
)
- otros fractales (
mandelbrot, julia
)
- funciones de interpolación (
lerp, quad, step, smoothstep
)
(Algunos de los anteriores pueden no estar en su implementación; encontré su trabajo hace mucho tiempo y en realidad he hecho algunos intentos de lo que estás describiendo a lo largo de los años, por lo que los recuerdos pueden estar perdiendo :)
Manteniéndolo interesante (y rápido)
Tuve un poco de suerte con un enfoque de varias capas que redujo enormemente la cantidad de evoluciones muertas.
- Se genera un conjunto de rangos para cada operador (o mutado de rondas anteriores)
- estos idealmente mantienen los valores dentro de un rango "sensato" para cada función, pero pueden evolucionar en rangos que tienen resultados sorprendentemente útiles, lo que parece ser lo "correcto"
- generar algunos árboles de algoritmos
- para cada uno de estos generar algunos mapas de altura en posiciones aleatorias y evaluar la forma física
- si tenemos muchas coincidencias buenas, evolucione un poco hacia abajo en esta rama, perturbando ligeramente los rangos del paso 1 en cada niño
- de lo contrario, probablemente tengamos rangos malos, regrese al paso 1
Sin embargo...
Ahora he omitido convenientemente el algoritmo de acondicionamiento físico , en su mayoría usé el enfoque de Karl Sims de "selección antinatural" en el que ves a la generación actual en el cuadrado medio de un grupo de descendientes (popularizado por las herramientas eléctricas de Kai en el día: aquí está una imagen de lo que quiero decir ) ..
Sin embargo, probablemente podría tener un conjunto de imágenes de entrenamiento, tal vez algunas de imágenes satelitales y algunas artificiales con cualidades particulares y luego tal vez usar wavelet o análisis FFT 2D en ellas en comparación con el terreno que está probando.
Este es un tema interesante, pero dudo de qué necesita una respuesta :)
EDITAR: ahh. tuve que eliminar un montón de enlaces porque soy un nuevo usuario: - |