Anda mungkin beruntung dengan pendekatan yang mirip dengan gambar genetik Karl Sims .
Dia menggunakan seperangkat operator sederhana dalam bahasa seperti LISP sehingga keluaran operator apa pun dapat digunakan untuk memengaruhi gambar, seperti halnya dalam beberapa bahasa shader (mis. Skalar akan menjadi nilai skala abu-abu, vector3
akan RGB
, dll.) ).
Meskipun saya kira itu hal implementasi, jadi yang mungkin Anda inginkan adalah kata kuncinya, yang (iirc) berisi semua dasar-dasarnya:
- fungsi trigonometri (
sin, cos, tan
, dll.)
- posisi (
x, y
)
- operator matematika dasar (
sqrt, pow, abs, inverse
)
- fungsi kebisingan (
fBm, noise2, noise3
)
- fraktal lainnya (
mandelbrot, julia
)
- fungsi interpolasi (
lerp, quad, step, smoothstep
)
(Beberapa hal di atas mungkin tidak dalam implementasinya; Saya menemukan pekerjaannya sejak lama dan sebenarnya telah melakukan beberapa upaya pada apa yang Anda gambarkan selama bertahun-tahun - jadi kenangan mungkin bocor :)
Menjaga agar tetap menarik (dan cepat)
Saya memiliki sedikit keberuntungan dengan pendekatan berlapis-lapis yang secara besar-besaran mengurangi jumlah evolusi yang mati.
- satu set rentang dihasilkan untuk setiap operator (atau bermutasi dari putaran sebelumnya)
- ini idealnya menjaga nilai-nilai dalam rentang "waras" untuk setiap fungsi, tetapi dapat berevolusi menjadi rentang yang memiliki hasil yang sangat berguna, yang tampaknya seperti hal yang "tepat" untuk dilakukan
- menghasilkan beberapa pohon algoritma
- untuk masing-masing menghasilkan beberapa peta ketinggian pada posisi acak dan mengevaluasi kebugaran
- jika kita memiliki banyak kecocokan yang baik maka berevolusi sedikit ke cabang ini, mengganggu rentang dari langkah 1 sedikit di setiap anak
- jika tidak, kami mungkin memiliki rentang yang buruk, kembali ke langkah 1
Namun...
Sekarang saya telah dengan mudah melewati algoritma kebugaran , saya kebanyakan menggunakan pendekatan Karl Sims tentang "seleksi tidak wajar" di mana Anda melihat generasi saat ini di tengah-tengah sekelompok keturunan (dipopulerkan oleh Kai's Power Tools di masa lalu - inilah sebuah gambar apa yang saya maksud ) ..
Namun Anda mungkin dapat memiliki satu set gambar pelatihan, mungkin beberapa dari citra satelit dan beberapa gambar buatan dengan kualitas tertentu dan kemudian mungkin menggunakan wavelet atau analisis FFT 2D pada mereka vs medan yang Anda uji?
Ini adalah topik yang menarik, tetapi saya ragu apa yang Anda butuhkan jawabannya :)
EDIT: ahh. harus menghapus banyak tautan karena saya pengguna baru: - |