Terrain mit ~10x20 km

  • Moin :)

    Bin neu in UE5 und fange gerade mit dem Terrain an, der mir bereits Kopschmerzen beschert...
    Ich habe bereits diverse Tutorials durch - aber nichts was mir weiterhilft.
    Wenn ich das richtig gelesen habe, dann ist die Maximalgröße für ein Terrain 8x8 km. Somit bräuchte ich 3 Terrains um meine Fläche abzudecken.
    1. kann man die 8x8 nicht hochskalieren wie man es möchte? z.B. auf 16x16 oder 20x20? Eine Face-Kantenlänge von 50 cm würde mir völlig ausreichen.
    2. ist es möglich 3 Terrains zu platzieren? Habe dazu nichts finden können..alle arbeiten immer nur mit einem Terrain in den Tutorials.

    Gruß
    Paul

  • Sleepy

    Hat das Thema freigeschaltet.
  • 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.


    Such mal nach den Stichworten World Partition. Das dürfte das sein, was du suchst.

    • Offizieller Beitrag

    Möglich ist das schon allerdings ist es eher Empfehlenswert realistische Maße zu verwenden dass hat technische Gründe.


    Auf ein Normales Mesh kommt eine Textur mit einer bestimmten Auflösung. Man kann auf ein riesen Terrain KEINE riesige Textur legen, hier wird mit einem anderen Verfahren gearbeitet. Dem sog. Vertex Paint. Im Grunde werden unterschiedliche Texturen übereinander gelegt und ein Farbklecks wird als Maske in jedem Vertex gespeichert. Umso mehr Vertecies dein Terrain hat, umso hochauflösender wird diese Maske. Skalierst du das Terrain entsprechend, sind die Abstände zwischen den Vertecies unnatürlich größer. Das bedeutet deine Vertex Paint Auflösung wird in Mitleidenschaft gezogen.


    Nicht nur die Textur wird so gespeichert, auch die Höheninformationen des Terrains werden so gespeichert. (Eine Heightmap ín Tabellen Form) in den Vertecies.


    skalierst du dein Terrain, so veränderst du im grunde auch die gesamte Auflösungen aller Maps dahinter.


    Gehen tut das schon ist aber im Endeffekt so als wenn man mit einem Schraubenzieher einen Nagel in die Wand schlägt.


    Ich würde dir grundsätzlich empfehlen nur in Ausnahmefällen zu skalieren das führt nur zu problemen.

  • 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.


    Such mal nach den Stichworten World Partition. Das dürfte das sein, was du suchst.

    Schaue ich mir an - danke! :)

    Ich würde dir grundsätzlich empfehlen nur in Ausnahmefällen zu skalieren das führt nur zu problemen.

    Möglich ist das schon allerdings ist es eher Empfehlenswert realistische Maße zu verwenden dass hat technische Gründe.


    Auf ein Normales Mesh kommt eine Textur mit einer bestimmten Auflösung. Man kann auf ein riesen Terrain KEINE riesige Textur legen, hier wird mit einem anderen Verfahren gearbeitet. Dem sog. Vertex Paint.

    OK - danke :) D.h. dass ich dann mehrere hinlegen müsste. 8192 meine ich war die Heightmap-Texturgröße. Bei 8 km sind das ja dann ~1m Kantenlänge pro Face. D.h. die Größe ist ja dann auch schon am Anschlag... oder ist die Anzahl der Faces höher als die der HM?

    • Offizieller Beitrag

    Gute Frage dazu musst du verstehen wie ein Terrain funktioniert.

    Wenn man im Edit Modus die Höhe des Terrains verändert, verändert man eigentlich die Heightmap aber das weißt du vermutlich schon man Sculptet nicht wirlich ein Terrain sondern malt in die Heightmap.

    Das Terrain ist eigentlich flach wie eine Flunder und wird nur im Viewport als "3D Objekt" angezeigt. Im Playmode wird das Terrain immer nur im Frustum (Sichtbarer Bereich) als 3D Objekt angezeigt.

    Hinter deinem Rücken und was du nicht siehst ist das Terrain komplett Flach. (Ja das ist verarsche) Es wird nur Performance für den sichtbaren Bereich verplempert.

    Du kannst auch Terrains aus terrain generatoren wie Worldmaschine übertragen dabei sind die Heightmaps oft viel Detaillierter als du Sie in Unreal Painten könntest. Jetzt kommt nochmal ein Trick dazu, nämlich die Tesselierung. Durch die Tesselierung kann ein Polygon weiter unterteilt werden.

    Wie weit Unreal unterteilt werden darf, kann man einstellen.


    oder ist die Anzahl der Faces höher als die der HM?

    Wenn du die Tesselation auf 0 setzen würdest, dann hättest du wirklich nur eine Plane egal was in deiner Heightmap steht.

    Erst du eine höhere Tessellierung können mehr Details darstellt werden. Ich weiß nicht wie die Default Settings sind aber die Tessellierung lässt sich einstellen.


    Wenn du dir im Playmode den Polycount bzw das Wirefirame anzeigen lässt, siehst du außerdem die Unterteilungen und siehst den Polycount des Terrains. Wie gesagt, das wird je nach Distance und Tessellierung mehr oder weniger.

    Das machen die Terrains so performant.
    Wenn dus mit der Tessellierung übertreibst, bekommst du auf jedenfall jeden Rechner in die Knie.


    Auch wenn die Beschreibung sehr alt ist (UE3) kann man denke ich die Idee dahinter gut verstehen:

    UDK | TessellationDX11


    Ich hatte mir damals extra eine Grafikkarte gekauft die DirectX 11 und somit Tesselation unterstützte.

    Man war das Cool.

  • Hinter deinem Rücken und was du nicht siehst ist das Terrain komplett Flach. (Ja das ist verarsche)

    Uh..danke für die ausführliche Beschreibung :) Tesselation ist mir natürlich ein Begriff. Wusste nicht dass man den hier beim Terrain zusätzlich mit drauflegen kann.


    ist das tatsächlcih so dass im Hintergrund der Terrain flach ist..? Wie ist das da n bei Spiegelungen wo sich der Hintergrund hinter einem dein Spiegeln soll/muss?

    • Offizieller Beitrag

    Wie ist das da n bei Spiegelungen wo sich der Hintergrund hinter einem dein Spiegeln soll/muss?

    Du meinst reflection probes ? Reflection Probes filmen ja im grunde von einem bestimmten Punkt die Umgebung ab, Kameras in alle Richtungen und projezieren das gesehene auf Objekte.

    Eine Wirkliche Spiegelung im Sinne von Raytracing ist das nicht. Wie fasst alles in der Spieleentwicklung nur ein riesen Fake wobei sich dies bei der UE5 und dem path tracer wahrscheinlich ändern wird damit ist dann auch echtes Raytracing möglich.

  • Das meine ich ja...wenn du meinst dass ein Berg der hinter der Kamera liegt "flach" ist dann würde man den in der Spiegelung nicht sehen. Ich habe eine 3060Ti - Raytracing wird natürlich auch eingebaut bzw aktiviert.

    • Offizieller Beitrag

    Normalerweise werden nur SSR (Screen Space Reflections) unterstützt. Wenn du vor einem Spiegel steht, wirst du deinen Charakter nicht im Spiegel sehen. Auch hier gibt es wieder Tricks.


    Hier siehst du wie sich das Terrain entsprechend anpasst:

    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 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.


    Es gibt keinen Grund warum man das komplette Terrain anzeigen lassen sollte, Unreal regelt dies automatisch.

  • Normalerweise werden nur SSR (Screen Space Reflections) unterstützt. Wenn du vor einem Spiegel steht, wirst du deinen Charakter nicht im Spiegel sehen. Auch hier gibt es wieder Tricks.

    Ich kann ja hier beim Anlegen eines neues Projekts Raytracing aktivieren, was ich auch gemacht habe.
    Versuche es gerade mit einem Blank Projekt, da das Car-Projekt nach dem Generieren zum Absturz führte...


    Habe eben auch noch paar Videos zu Terrains geschaut. Es gibt ja zwei Methoden: entweder Heightmaps nutzen oder direkt meshes. Heightmaps sollten theoretisch performanter sein, da die von der Engine generiert werden und die LODs hier besser funktionieren sollten bzw. besser einstellbar als bei einem fertigen Mesh. Beides in Verbindung mit World Partition.
    Da mein Level auf realen DEM Daten basieren wird, ist es für mich auch einfacher, da die DEM-Daten als Bilder vorliegen.

    • Offizieller Beitrag

    Raytracing geht auf jedenfalls ich hab allerdings keine Ahnung wie weit die Shader für Echtzeit Reflektionen schon entwickelt sind. Da kommt in der Zukunft mit Sicherheit noch geileres Zeugs.


    Ein Terrain sollte niemals ein Mesh sein da du ja dann auf alle oben genannten Möglichkeiten verzichten würdest.

    LODs machen auch wenig sinn. LODs sind abhängig von der Entfernung zwischen dem Mesh und dem Player. Du läufst ja auf dem Terrain bist also immer gleich nah am Terrain dran.

    Was aber gemacht wird, ist eine Mischung aus Terrain und Meshes. So sind Klippen beispielsweise Meshes. Felsen sind meist ebenfalls Meshes und kleinere Steine sind beispielsweise Mesh Decals.


    Was dann eher noch ins Spiel kommt sind verschiedene Culling verfahren, zb werden durch das Camera Occlussion Culling Meshes ausgeblendet die nicht vom Spieler angeschaut werden. Das ist ähnlich wie mit dem Terrain.

    Deswegen kann es Problematisch sein wenn man Performance Einsparungen zu Wörtlich nimmt.

    Ein Beispiel:

    Du hast ein Haus gebaut (1 Mesh) das Kostet dich 1 Drawcall (goil) aber befindest du dich im Haus oder siehst auch nur ein ganz kleiner Teil vom Haus, so muss immer das ganze Haus berechnet und angezeigt werden. Würdest du das Haus aus verschiedenen Hausteilen bauen wie beispielsweise Fassadenteile, Inneneinrichtung der verschiendenen Räume so könnte immer alles was nicht gesehen wird ausdgeblendet werden und es müssten nicht riesige Meshes angezeigt werden.

    Wenige Meshs dafür aber ein hier Polycount vs Viele Meshes die aber jeweils ein geringeren Polycount haben.


    Bei Handyanwendungen und auch manche uralte Grafikkarten, können nur FBX Dateien bis zu einer bestimmten Größe verarbeiten. Hast du bei einem IPAD ein 2 GB Mesh, so fliegt dir die Engine um die Ohren.

    Es ist also keine gute Idee alle Meshes auf einer Karte zu einem Mesh zu mergen 8o

  • Wenn ich beim Projekt Raytracing aktiviere, dann werden > 1000 Shader neu kompiliert. Also irgendwas ist da schon eingebaut :)

    Das ist schon komisch, da so jedes zweite Tutorial zu Terrain ein Terrain mit irgendwelchen Weltgeneratoren oder aus DEM ein Mesh generieren und einbauen. Mir ist das schon klar, dass das dann hier mit dem LOD bei großen Terrains nicht funktionieren kann - außer man hält die Tiles sehr klein (500x500 m z.B.).
    Ich werde daher auch Heightmap mit DEM-Daten nutzen. Da ist meine ich "fließendes" LOD innerhalb der Terrains.

    Das ist mir schon bewusst :) Ich bin seit 94 im 3D Design und hatte mich schon mit 3D Engines vor gut 15 Jahren beschäftigt, wo man noch viel mehr optimieren musste als heute. Das hatte mich bei Spielen schon auch immer sehr interessiert, weshalb mir Grundbegriffe bekannt sind. UE ist neu für mich.

    Da ich einen Simulator plane ist Mobil sowieo Außen vor. D.h. nur PC (Mac/Linux), da Lenkrad & Co. Voraussetzung sind. Daher auch keine Einsparungen nötig, da man von der Hardware 2021/22 ausgehen kann :D

    • Offizieller Beitrag

    Man weiß ja nie wie viel andere weiß. Ich erinnere mich daran dass wenn ich früher in einem Forum Fragen gestellt hab ich Antworten bekommen habe die ich komplett nicht verstanden habe und teilweise waren den Fragen die ich gestellt hatte auch zu einfach jedenfalls kamen auch mal dumme Antworten. Wenn man die Grundbegriffe nicht kennt machen komplexe Unterhaltungen über Terrain und Shader wenig Sinn und wenn man die Keywords nicht kennt, kann man auch Google nicht fragen. Ich gehe halt immer vom Dau aus . (Nicht böse gemeint)

    Auch ist es für es fürs Forum nicht verkehrt wenn Posts für alle verständlich sind und nicht nur die Cracks verstehen um was es geht.

    Ich weiß aber auch, das Antworten bei denen man denkt "basic knowledge" sehr nervig sein können weil man immer das Gefühl hat der andere hält ein für bekloppt.

    Wie gesagt: Ich gehe auch immer davon aus das anderen deine Frage ebenfalls weiterhilft die vielleicht nicht deinen Wissensstand haben. Aber in Zukunft werd ich nicht mehr so in die Tiefe gehen, versprochen.

  • Klar, so gesehen macht das Sinn. Und stimmt - bin ja auch nicht der einzige der hier mitließt. Dass jemand ähnliche Probleme hat und hier irgendwann auch nachlesen kann ohne Nachfragen zu müssen spart zumindest in der Zukunft Zeit :)