Prozedurale Erzeugung der Galaxie

8

Ich möchte eine Galaxie mit Samen erzeugen, wobei sich die Form etwas ändert und die X-Anzahl der Sterne positioniert wird.

Ich möchte es (wie möglich) realistisch machen. Aber ich habe absolut keine Ahnung, wie ich das machen soll. Ich spreche nicht über die Erzeugung von prozeduralen Inhalten, ich weiß ein bisschen darüber und ich kann danach suchen, wenn ich es brauche. Ich spreche über Formeln, die zur Erzeugung von Galaxien verwendet werden sollen, und platziere dann Punkte (Sterne), damit sie echt aussehen können.

In meinen Gedanken sehe ich das so:

1) Platzieren Sie eine Mitte

2) Tentakel erzeugen (den genauen Begriff nicht kennen) (ich möchte die Anzahl der Tentakel einstellen)

3) Platziere zufällig Punkte um diese Tentakel.

Bonusfrage: Ich möchte das Galaxie-Ingame bewegen (wie es sich in der Realität bewegt), und ich verstehe nicht, ob eine Rotation ausreichen würde und ob die Bewegung komplexer ist.

Eephyne
quelle
4
Sie werden Spiralarme genannt , während die meisten Galaxien Spiralen sind (ungefähr 3/4). Es gibt andere Formen , die berücksichtigt werden müssen.
MichaelHouse
Denken Sie in Bezug auf "realistisch" daran, dass eine Spiralgalaxie mehr als 200 Milliarden Sterne haben kann, da die Milchstraße etwa 200-400 Milliarden Sterne hat, unser Nachbar, die Andromeda-Galaxie, 1000 Milliarden Sterne hat. Wenn Sie so tun, als wäre es eine flache Galaxie und die Schwimmer wären präzise genug, könnten Sie mit 2D-Koordinaten und 2 Schwimmern davonkommen, sodass 8 Byte pro Stern für 200 Milliarden Sterne 1,6 Terrabyte benötigen. Konzentrieren Sie sich also eher auf ein gutes Aussehen als auf ein realistisches :) Je nachdem, was Sie tatsächlich benötigen, würde eine Textur die Arbeit viel besser machen
Maik Semder
Etwas verwandt und sicherlich inspirierend: Googles fantastische "100.000 Sterne" -Visualisierung unserer Milchstraßengalaxie (benötigt WebGL)
Maik Semder
@Maik ja natürlich hätte ich es sagen sollen, ich möchte, dass es auf grafische Weise realistisch aussieht. Ich habe nicht vor, die tatsächliche Anzahl der Sterne einzufügen. Gerade genug, um gut auszusehen (wenn man bedenkt, dass jeder erzeugte Stern Planeten haben könnte, die ich auch verwenden werde). Eine Textur ist nicht möglich, da dies zu einer interaktiven Karte wird.
Eephyne
2
Denken Sie daran, dass selbst Astrophysiker die Physik hinter der Bildung und Rotation von Galaxien noch nicht vollständig verstanden haben.
Philipp

Antworten:

11

Ähnlich wie bei Ihrem Algorithmus ist dies der Algorithmus, den ich vorschlagen würde.

Stellen Sie Ihre Variablen ein. Wählen Sie die armCountArme, radiusRadius, spinFactorfür Spinnfaktor, armRfür Armradius, starCountfür Sternzahl und pointMittelpunkt.

  1. Platzieren Sie die armCountArme direkt von einem zentralen Punkt aus point. Diese sollten ungefähr gleich weit vom Umfang des Kreises entfernt sein (mit einem Radius von radiuseingegeben point), aus dem die Galaxie besteht.
  2. starCountIn ungefähr gleiche armCountTeile teilen .
  3. Platzieren Sie für jeden Arm starCount/armCountzufällig Sterne in dem Zylinder, der dem Arm mit einem Radius von folgt armR. Die Platzierung der Sterne sollte folgendermaßen gewichtet werden:
    1. Es ist wahrscheinlicher, dass es in Richtung des Kerns als in Richtung der Armspitze platziert wird.
    2. Es ist wahrscheinlicher, dass sie näher an der Mitte des Zylinders als an der Außenseite des Zylinders platziert werden.
  4. Jetzt haben Sie eine Galaxie in Form eines Sterns mit armCountArmen. Mit mehr Sternen im Kern und den Armen etwas deutlich. Zeit sich zu drehen. Nehmen Sie für jeden Stern seinen Abstand vom Zentrum und multiplizieren Sie diesen mit spinFactor, um a zu erhalten rotationAmount.
  5. Drehen Sie jeden Stern um den Drehbetrag im oder gegen den Uhrzeigersinn um den Mittelpunkt.
  6. Bestaunen Sie die resultierende Spiralgalaxie.

Sie könnten wahrscheinlich die Rotations- und Platzierungsschritte kombinieren und den Start zunächst an ihrer gedrehten Position platzieren. Ich würde es zunächst in separaten Schritten tun, damit Sie sehen können, wie sich die Dinge entwickeln, ohne dass alles verdreht ist.

Bonusantwort: Menschen hatten die Technologie der Sternbeobachtung nicht lange genug, um zu sehen, wie sich eine Galaxie dreht, daher wissen wir nicht genau, wie sie aussieht. Aus den Betrachtungssimulationen geht jedoch hervor , dass es sich in der Mitte mit höherer Geschwindigkeit dreht als außen. Sie können versuchen, auf jeden Stern dieselbe Drehung anzuwenden wie in Schritt 5. Oder Sie können einfach die gesamte Galaxie langsam drehen und sehen, wie sie aussieht.

MichaelHouse
quelle
2
Tatsächlich haben wir Beobachtungsergebnisse, dass die Rotationsgeschwindigkeit innerhalb und weit außerhalb der Galaxie ziemlich gleich ist, auch bekannt als das Rotationsproblem der Galaxie . Die derzeit am meisten akzeptierte Erklärung für die enorme Diskrepanz zwischen dem erwarteten und dem beobachteten Ergebnis ist Dunkle Materie.
Maik Semder
OK, ich habe gerade gesehen, wie die Jahre in dem von Ihnen angegebenen Link gezählt wurden. Ich dachte, es bewegte sich viel schneller! In Anbetracht dessen, dass ich keine Rotation simulieren werde.
Eephyne
@eephyne Ja, das Drehen dauert sehr lange. Das galaktische Jahr der Milchstraße ist ungefähr 230 Millionen Jahre. Es dreht sich sehr schnell, es hat einen sehr, sehr langen Weg vor sich.
MichaelHouse
@ MaikSemder Danke, ich hatte gelesen, dass die Geschwindigkeiten nicht den Erwartungen entsprachen, wusste aber nicht, dass sie fast gleich waren. Interessant.
MichaelHouse