Generasi alam semesta prosedural 2d


16

Saya ingin menciptakan alam semesta yang datar, di mana pada awalnya seluruh alam semesta kosong.

Itu akan diwakili oleh gambar latar belakang nebula bergulir paralaks.

Yang ingin saya lakukan adalah mewakili planet sebagai objek berbentuk cakram di alam semesta. Mereka dapat dari berbagai ukuran.

Bagian dalam cakram akan terdiri dari daratan, kemudian di luar yang akan menjadi badan air dan setelah udara itu.

apa yang akan menjadi cara terbaik untuk membuat ubin itu secara prosedural seperti misalnya udara akan terdiri dari berbagai gas dan tanah dari berbagai mineral dan sumber daya.

Pikiran pertama saya adalah membuat gambar tekstur dan kemudian menghapus lingkaran dari tekstur tersebut, tetapi masalahnya adalah bahwa tekstur tersebut harus membungkus secara horizontal dan vertikal. Apakah ada cara prosedural sepenuhnya untuk melakukan ini?


Pertanyaan seperti ini lebih baik dijawab dengan semacam visual untuk menggambarkan apa yang Anda cari. Jawaban yang baik di bawah ini mungkin terlalu teknis atau tidak cukup teknis.
Richard Fabian

Jawaban:


14

Tekstur prosedural, terutama yang berbasis kebisingan, dapat dibuat menjadi ubin. Lihat utas ini di GDNet untuk beberapa diskusi, serta entri jurnal ini . Ada juga tautan ini , yang kedengarannya menarik meskipun saya tidak dapat berbicara karena kebenarannya.

Adapun untuk menghasilkan dunia secara prosedural, ada artikel ini ditulis oleh orang yang mengembangkan Infinity. Sistemnya adalah 3D tetapi Anda mungkin bisa mengadaptasi teknik dengan cukup mudah.

Ada juga seluruh wiki tentang pembuatan konten prosedural .


1
Pff. Saya perlu belajar mengetik lebih cepat. Ini pada dasarnya adalah apa yang saya miliki di jendela editor di bawah ini ... +1 untuk Anda, Tuan.
bummzack

Cheers saya akan mencobanya.
Joseph Le Brech

2

Kedengarannya bagi saya seperti Anda ingin tekstur persegi panjang dengan udara di atas dan kotoran di bagian bawah. Anda dapat memetakan tekstur persegi panjang ke lingkaran dengan membuat koordinat tekstur U mewakili sudut di sekitar lingkaran, dan koordinat tekstur V mewakili jarak dari pusat lingkaran. Untuk planet yang lebih besar, U dapat mengelilingi planet ini beberapa kali.

Untuk mengkonversi dari koordinat 2D biasa XY ke koordinat UV di atas, Anda dapat melakukan perhitungan seperti:

y -= planet_center.y;
x -= planet_center.x;
u = atan2( y, x );
v = sqrt( y*y + x*x );

Kehati-hatian harus diambil untuk menghindari menghitung ini terlalu dekat dengan pusat planet ...


Saya berpikir lebih banyak di sepanjang garis penampang vertikal alam semesta seperti ini i.imgur.com/gpCTc.jpg tanah, laut, udara, batal. dll.
Joseph Le Brech

Itu cara yang masuk akal untuk mem-partisi ruang menjadi tipe, tetapi akan menjadi tantangan untuk membuatnya terlihat seperti planet berbentuk bola.
bmcnett

tidak ada persyaratan untuk membuatnya terlihat seperti planet. hanya cukup tanah acak, air, udara dalam proporsi yang tepat dan semua di grid hex bersama dengan planet lain di grid itu.
Joseph Le Brech

Ah maka Anda akan ingin menghasilkan banyak ubin tekstur heksagonal, dengan kendala bahwa tepi antara tanah / udara dll muncul di tempat yang dapat diprediksi antara ubin yang berdekatan?
bmcnett

ya, secara bola. jadi ukuran setiap lapisan (tanah, air ..) dipilih secara acak dan kemudian dalam tanah itu, ubin tanah acak akan ditempatkan untuk planet ini, dan sama untuk setiap lapisan.
Joseph Le Brech
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.