2d Prosedürel evren üretimi


16

İlk önce tüm evrenin boş olduğu düz bir evren yaratmak istiyorum.

Bu bir paralaks kaydırma bulutsusu arka plan görüntüsü ile temsil edilir.

Yapmak istediğim şey, gezegenleri evrende disk şekilli nesneler olarak temsil etmektir. Çeşitli boyutlarda olabilirler.

Disklerin içi bir kara kütlesinden oluşacak, daha sonra dışarıda bir su kütlesi ve bu havadan sonra olacak.

bu karoları prosedürel olarak oluşturmak için en iyi yol ne olurdu, örneğin hava çeşitli gazlardan ve çeşitli mineral ve kaynaklardan oluşacaktır.

İlk düşüncem, doku görüntüleri oluşturmak ve daha sonra daireleri bu dokulardan damgalamaktır, ancak sorun şu ki, bu dokuların yatay ve dikey olarak sarılması gerekir. Bunu yapmanın tam bir prosedürü var mı?


Bunun gibi sorular, neyin peşinde olduğunuzu açıklamak için bir tür görselle daha iyi yanıtlanır. Aşağıdaki iyi cevap ya çok teknik olabilir ya da yeterince teknik olmayabilir.
Richard Fabian

Yanıtlar:


14

Prosedürlü dokular, özellikle gürültü temelli dokular, karoya yapılabilir. Tartışmanın yanı sıra bu günlük girişi için GDNet'teki bu konuya bakın . Ben de onun doğruluğu için konuşamam da ilginç gelen bu bağlantı da var .

Prosedürel olarak dünyayı üretmeye gelince, Infinity'yi geliştiren adam tarafından yazılmış bu makale var . Onun sistemi 3D'dir, ancak teknikleri yeterince kolayca adapte edebilirsiniz.

Prosedürel içerik oluşturma konusunda da bir wiki var .


1
Pff. Daha hızlı yazmayı öğrenmem gerekiyor. Temel olarak aşağıdaki editör penceresinde sahip olduğum şey budur ... +1 size efendim.
bummzack

şerefe ben bir deneyeceğim.
Joseph Le Brech

2

Bana hava geliyor ve altta kir olan dikdörtgen dokular istiyormuşsun gibi geliyor. U doku koordinatının dairenin etrafındaki açıyı ve V doku koordinatının dairenin merkezinden uzaklığını temsil ederek dikdörtgen dokuları dairelere eşleştirebilirsiniz. Daha büyük gezegenler için, U gezegenin etrafına birkaç kez sarılabilir.

Normal 2B koordinatlarından XY'yi yukarıdaki UV koordinatlarına dönüştürmek için şu şekilde matematik yapabilirsiniz:

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

Bunu gezegenlerin merkezine çok yakın hesaplamaktan kaçınmak için özen gösterilmelidir ...


Daha evren gibi dikey bir enine kesit çizgisi boyunca düşünüyorum i.imgur.com/gpCTc.jpg kara, deniz, hava, boşluk. vb.
Joseph Le Brech

Bu, alanı türlere ayırmanın makul bir yoludur, ancak küresel gezegenlere benzemesini sağlamak zor olacaktır.
bmcnett

bir gezegene çok fazla benzemesine gerek yok. yeterince rasgele toprak, su, hava doğru oranda ve altıgen bir ızgara üzerinde ve bu ızgaradaki diğer gezegenlerle.
Joseph Le Brech

Ah daha sonra altıgen doku karoları oluşturmak isteyeceksiniz, kara / hava vb. Arasındaki kenarın bitişik karolar arasında öngörülebilir bir yerde gösterdiği kısıtlamasıyla?
bmcnett

evet, küresel bir şekilde. böylece her katmanın boyutu (toprak, su ..) rastgele seçilir ve daha sonra bu toprakta gezegen için rastgele toprak karoları yerleştirilir ve her katman için aynıdır.
Joseph Le Brech
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.