Himmelskörper rendern in Originalgröße
Ich will ein Spiel programmieren, in dem man das ganze Universum bereisen kann (generiert) und
alle Himmelskörper (Planeten, Sterne, Asteroiden, etc.) in Originalgröße bereisen kann (theoretisch).
Es ist natürlich nicht möglich einen Himmelskörper im hohen Detail direkt als Mesh abzubilden.
Wenn man z.B. die Erde nimmt (mit einem Radius von 6,387 km) und für jeden Meter 4 Byte benötigt, kommt man auf ca. 7 Petabyte an benötigten Speicher.
Der größte bekannte Stern hat einen Radius von 150 Lichtjahren.
In meinem Spiel will ich den Spieler diese Größen "spüren" lassen. Er soll wirklich begreifen was diese Werte bedeuten.
Daher suche ich nach einem Algorithmus bsp. eine Kugel entsprechend generieren zu können.
Desto näher man dem Himmelskörper kommt, desto weniger sieht man davon. Aber das wenige sollte dafür mehr Details aufweisen.
Bisher habe ich zwei Techniken kennengelernt eine Kugel zu generien..
edit: ich habe die Screenshots verbummelt, tut mir leid :/
Kennt ihr noch andere Techniken bei denen man teile der Kugel mit höherer Auflösung abbilden kann?
Und dazu eine Möglichkeit dort noch Berge entstehen zu lassen. Kein Planet ist glatt.
edit: ich habe die Screenshots verbummelt, tut mir leid :/
Den Algorithmus den ich bisher gefunden habe, der dauert zu lange (208 Sekunden bei 1.000.000 Vertices, 4 Kerne @2,33 GHz, 6 Threads).
Bei diesem wird eine zufällige Ebene erzeugt, welche die Kugel schneidet und alle Punkte auf der einen Seite etwas höher macht (läge erhöht) und auf der anderen Seite etwas kleiner. Im Beispiel Bild werden 10.000 Iterationen verwendet.
Kennt ihr noch andere schnelle Algorithmen für Terrains auf Kugeln, die sich idealerweise kombinieren lassen mit einer Kugel mit verschiedenen Auflösungen?
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann
Man verkauft die Erde nicht, auf der die Menschen wandeln.
- Indianerweisheiten
Ich bin auch ein einhornimmond
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DarioFrodo« (29.07.2019, 17:45)