2d Prozedurale Universumsgenerierung

16

Ich möchte ein flaches Universum erschaffen, in dem zunächst das gesamte Universum leer ist.

Dies würde durch ein Hintergrundbild des Parallaxen-Scrollnebels dargestellt.

Ich möchte die Planeten als scheibenförmige Objekte im Universum darstellen. Sie können verschiedene Größen haben.

Das Innere der Scheiben besteht aus einer Landmasse, das Äußere aus einem Gewässer und danach aus Luft.

Was wäre der beste Weg, um diese Kacheln prozedural herzustellen, da zum Beispiel die Luft aus verschiedenen Gasen und das Land aus verschiedenen Mineralien und Ressourcen besteht.

Mein erster Gedanke ist, Texturbilder zu erstellen und dann die Kreise aus diesen Texturen herauszustempeln, aber das Problem ist, dass diese Texturen horizontal und vertikal umbrochen werden müssten. Gibt es eine vollständig prozedurale Möglichkeit, dies zu tun?

Joseph Le Brech
quelle
Fragen wie diese lassen sich besser visuell beantworten, um zu beschreiben, wonach Sie suchen. Die gute Antwort unten könnte entweder zu technisch oder nicht technisch genug sein.
Richard Fabian

Antworten:

14

Prozedurale Texturen, insbesondere solche, die auf Rauschen basieren, können zu Kacheln verarbeitet werden. In diesem Thread bei GDNet finden Sie einige Diskussionen sowie diesen Journaleintrag. Es gibt auch diesen Link , der interessant klingt, obwohl ich nicht für seine Richtigkeit sprechen kann.

In Bezug auf die prozedurale Generierung der Welt gibt es diesen Artikel , der von dem Typ geschrieben wurde, der Infinity entwickelt. Sein System ist 3D, aber Sie könnten die Techniken wahrscheinlich leicht genug anpassen.

Es gibt auch ein ganzes Wiki zur Erstellung von prozeduralen Inhalten .


quelle
1
Pff. Ich muss lernen, schneller zu tippen. Dies ist im Grunde, was ich im Editor-Fenster unten habe ... +1 an Sie, Sir.
Bummzack
Prost, ich werde es versuchen.
Joseph Le Brech
2

Es hört sich für mich so an, als ob Sie rechteckige Texturen mit Luft oben und Schmutz unten wollen. Sie können den Kreisen rechteckige Texturen zuordnen, indem Sie die U-Texturkoordinate als Winkel um den Kreis und die V-Texturkoordinate als Abstand vom Mittelpunkt des Kreises festlegen. Bei größeren Planeten kann sich U mehrmals um den Planeten wickeln.

Um die regulären 2D-Koordinaten XY in die obigen UV-Koordinaten umzuwandeln, können Sie folgendermaßen rechnen:

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

Es sollte darauf geachtet werden, dass dies nicht zu nahe an der Mitte der Planeten berechnet wird ...

bmcnett
quelle
Ich denke eher an einen vertikalen Querschnitt des Universums wie diesen i.imgur.com/gpCTc.jpg Land, Meer, Luft, Leere. etc ..
Joseph Le Brech
Das ist eine vernünftige Methode, um den Raum in Typen zu unterteilen, aber es wird eine Herausforderung sein, ihn wie sphärische Planeten aussehen zu lassen.
bmcnett
Es ist nicht erforderlich, dass es zu sehr wie ein Planet aussieht. gerade genug zufälliges Land, Wasser, Luft im richtigen Verhältnis und alles auf einem Hex-Gitter zusammen mit anderen Planeten auf diesem Gitter.
Joseph Le Brech
Ah, dann werden Sie eine Menge hexagonaler Texturkacheln erzeugen wollen, mit der Einschränkung, dass die Kante zwischen Land / Luft usw. an einer vorhersehbaren Stelle zwischen benachbarten Kacheln auftaucht?
bmcnett
ja, auf kugelförmige Weise. Also wird die Größe jeder Ebene (Land, Wasser ...) zufällig ausgewählt und dann werden in dieser Landmasse zufällige Landplättchen für den Planeten platziert, und für jede Ebene die gleichen.
Joseph Le Brech