Planetenoberfläche betreten

  • Hey Leute


    Ich erstelle gerade ein Weltraum - Survivalgame. Jetzt wollte ich einmal fragen, ob mir vielleicht einer erklähren könnte, wie ich das Betreten der Planetenoberfläche ähnlich machen kann wie bei "No Man's Sky", also das ich keine teleportation mit ladescreen brauche.
    Auf eine schnelle und hilfreiche Antwort bin ich dankbar.


    Freundliche Grüsse
    IngorHD

  • Folgende Idee hätte ich da.
    Solange du schon eine Runde Kugel hast(Landscape) müsstest du ja nur noch ein Post Processing Border um deinen Planeten Packen. Hier kannst du ja mehrere ineinander Packen, quasi als ein Übergang der verschiedenen Atmosphäre Schichten. Diese können ja auch schön zusammen Geblendet werden.
    Nur leider habe ich keine Ahnung wie du die Box in eine Spehre ersetzen kannst.
    hoffe das Hilft einigermaßen :D

  • @xXSmily98x
    Ich bin mir nicht sicher ob das funktioniert, denn ich möchte auch einen Ozean und so erstellen, was auf einer runden ebene nicht besonders gut geht. Vielleicht hat ja einer ein paar tipps, um ein normales landscape rund zu bekommen.


    Ich dachte auch schon an Level Streaming aber ich weiss nicht was ich machen muss, dass wenn man im universum ist, den Planeten in runder form sieht, und wenn ich dann näher zum planeten fliege, die Atmosphäre durchdringe und dann das Landscape in "map - form" also flach sehe.


    Ich hoffe es ist verständlich.


    Freundliche Grüsse
    IngorHD

  • Wenn du es so wie in No Mans Sky haben möchtest, musst du das ohne Landscape machen. Du bekommst das Landscape nicht rund. Nichtmal angerundet. Die Tools sind für eine Ebene ausgelegt.


    Also hast du 3 Möglichkeiten...


    1. eigene Engine schreiben
    2. Unreal Engine modifizieren
    3. Deine Planetenoberfläche komplett selber modellieren. (Man Fav.)

  • Ließe sich da nicht bisschen mit Illusionen arbeiten? Am Anfang fliegt man auf nen Planten zu, der zunehmend größer wird und wenn man dann die Atmosphäre und die Wolken durchdringt, tauscht man den Planeten gegen die Landscape aus.

  • Und wie möchtest du die Krümmung in 5 - 10 KM Höhe darstellen? Wie willst du den 50 Fuß über Boden Flug darstellen wenn man 1 mal um den Planeten rum fliegt?

    Da dachte ich irgendwie an einen Fisheye-Lense Effect, Distortion oder so etwas. Und das um den Planeten rumfliegen dann eventuell mit Level-Streaming.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • das beschreibt die berechnung ganz gut wie sowas funktioniert mit c++ und eventuell bissl modifizierung der engine würde das auch funktionieren.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    theoretisch könnte man eine lvlstreaming map nehmen und die halt damit in eine kugel umwandeln danach noch die Perspektive anpassen.
    wenn du vom weltraum zum planeten fliegst könnte man es so machen das der planet anfangs ne kugel ist mit ner textur. bist du näherdrann wird die kugel mit dem lvl streaming ersetzt + mehrere lod stufen

  • Danke für eure Antworten, für mich schwierig sich zu entscheiden, welche variante ich nehme, ich möchte nämlich eine etwas realistischere welt erstellen, als No Man's Sky oder Minecraft.
    Während meiner suche bin ich dann auf ein video gestossen, welches mich verunsicherte:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Ist in diesem Video eine Gebogene Welt zu erkennen, oder wird man da auf ein grosses flaches Landscspe geportet?

  • Ist es nicht möglich, aus dem All Quasi eine Kugel dazustellen. Sobald man in einer bestimmten Höhe ist, Lädt man mit Level Streaming das Landscape. Hierfür kann man bestimmt irgendwelche Effekte Anwenden um die Annäherung des Planeten dazustellen.


    Hier hätte ich ein Video:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Denke das es so in etwa auch in Space Engineers gemacht wurde.

  • @xXSmily98x
    Das problem dabei ist dann einfach die Grösse des Landscapes, denn je kleiner es ist, desto näher müsste ich dann den "spawnpunkt" an die oberfläche bringen, jedoch kann man auf den planeten mit flugzeugen fliegen, und das möchte ich nicht nur auf 100 metern höhe können.


    Ich hoffe du weisst was ich damit meine.


    Ein weiteres Prolem beim level streaming ist, dass wenn ich im universum bin, den planeten und das universum sehen muss und wenn ich auf dem planeten bin, dass landscape und denn himmel (nicht das Universum) sehen muss.
    Wenn du da eine gute lösung hast, wie ich damit einen guten übergang vom planeten ins universum habe, bin ich dir dankbar.

    • Offizieller Beitrag

    Denke das es so in etwa auch in Space Engineers gemacht wurde.

    Nein Bei spielen wie Space Enginieers, Minecraft, Seven Days to die sind Voxel basierte Spiele. Auch bei star citizen wird bei der Planeten Generieren ein voxel algorithmus verwendet.
    Manche denken vielleicht das Voxel immer eine schlechte Grafik und eckige Kanten bedeuten. Tatsächlich werden Voxel zb in der Medizin verwenden um um eine 3D Darstellung von Organen zu realisieren.
    Viele Glauben bei einem Spiel wie Minecraft werden einfach nur 6500000 * 6500000 * 6500000 Cubes generiert die bei der Kollision mit der Axt gelöscht werden. Das ist aus performance gründen nicht klappen kann wird jedem klar der Versucht solch ein Terrain schnell zu generieren.


    Voxel kann man sich wie folgt vorstelleln:
    Voxel sind leere Quader die mit Flächen gefüllt werden können. Man kann sich dies so vorstellen als würde man viele leere Gläse neben einander stellen in die unterschiedliche Menge an Wasser gefüllt werden.
    Man kann diese Cube sehr performant Komplett füllen, so entstehen klassische Minecraft Cubes. Hier sind die Cubes zu 100% voll. Man kann aber innerhalb von diesen Cubes aber auch komplexere und runtere Flächen Darstellen.
    Nun werden innerhalb von Voxel aber nicht einfach irgend welche 3D Mehses gezeichnet sondern der Innerhalb dieser Cubes wird aus einer Tabelle gelesen. Tatsächlich gibt ein bei Voxel nur eine bestimmte Anzahl an Informationen die mit Voxel gefüllt werden können bzw nur eine bestimmte Anzahl an Möglichkeiten wie ein Face ein Voxel durchqueren kann.
    Diese Anzahl an Möglichkeiten können stark reduziert werden in dem man beispielsweise die Füllung spiegelt. So muss man tatsächlich nur den halben Cube füllen und kann den Inhalt spiegeln.
    Das ist eine von sehr vielen Möglichkeiten warum Voxel so performant sind.
    Eine andere Möglichkeit ist das Culling und die Möglichkeit nur die Voxel mit Informationen zu füllen die auch tatsächlich vom Player gesehen werden. Somit wird zb niemals ein ganzer Cube angezeigt sondern immer nur eine Fläche. Sind mehre Cubes aber Identisch können auch mehre kleinere Cubes zu einem großeren Cube zusammengefasst.
    Sobald man ein Terrain abgraben kann, sind hier immer Voxel im Spiel. Aus Voxel können auch Planeten generiert werden die dann auch einmal umrundet werden kann.


    Wenn du mit einem Fisheye Effekt arbeitest, dann ist dein Terrain eine Scheibe die durch einen Effekt rund gebogen worden wobei das Terrain nicht wirklich rund ist. Du kannst das Terrain auch nicht so rund biegen das du den Planeten einmal umrunden kannst. Das große Problem sehe ich dann auch in der Physik den wenn du nach oben Schaust und dort einen Mond siehst, befindet sich der in xzy Postion zb auf 0,1000000,0. Läufst du einmal um den halben Planeten, so findet sich der Planet immer noch direkt über dir. den du bist ja nicht "rund" gelaufen sondern einfach nur gerade aus auf einer Fläche. Oben ist dann immernoch in + Y Richtung. Den wenn du den Planeten halb umrundest, müsstest du dann auf dem Kopfstehen und oben müsste nicht +Y sein sondern - Y. Da du aber nicht wirklich im Kreis gelaufen ist, ist +Y immer noch oben ;)


    Ich frag mich was du vorhast und was das genaue Ziel ist?
    Das was du vorhast ist auf jeden Fall sehr komplex und nicht einfach umzusetzen.

  • Solch eine Frage war doch schon mal im Forum.


    Da hatte man auch nach Lösungen gesucht, Es kommt drauf an ob man von Planet zu Planet Fliegen möchte um diesen zu betreten.


    Da ein Planet immer Rund ist, ist es ja auch Schwer sowas umsetzen wenn man gerne einmal um die Welt laufen möchte.


    Einfachste Lösung war, Deine Weltraum Planeten könnten eigentlich als Großes Object sein was man Optisch eine Struktur (Material) Verpasst wenn man angeflogen kommt oder als Flache Scheibe. Eigentlich eine Verasche fürs Auge ^^


    Deine Planeten sollten am Besten ein eigenes Level haben, wenn du aus den Weltraum ein Planeten anfliegst sollte hier wenn du nah genug bist ein neues Level geladen werden bsp dein Planet. Wenn dein Planet geladen ist solltest du Trotzdem noch im Weltraum sein um bsp. dein Anflug auf den Planeten selbst zu bestimmen.


    Dein Planet ist nun Flach, (Landscape) kannste hier verwenden. Da man aber gerne um den Planeten laufen möchte, muss man nun die Spieler Verarschen.


    Am Ende der Map muss ein Portal geschaffen werden, bsp an allen 4 Seiten.


    Im Internet findest du was über Portale wo man eigentlich durch eine Tür geht aber vor der Tür schon sehen kann was dahinter ist, weiß eben nicht genau wie man es nennt. Sowas müsstest du in Großformat umsetzen an allen 4 Außenflächen.


    Das soll bewirken das man das Gefühl bekommt um den Planeten zu laufen.


    Aber wie sich das auf die Performance auswirkt mit den großen Portalen keine Ahnung.


    Klar möchte man keine Ladezeiten haben, aber ob das alles so möglich ist, steht in den Sternen :)