Landscape mehr dreiecke geben

    • Offizieller Beitrag

    Zu deiner Frage solltest du einige Hintergrundinformationen haben. Das Terrain sollte idealerweise nicht skaliert werden.

    1. Auf das Terrain wirst du später Texturen anwenden, wie zum Beispiel eine Gras-Textur. Wenn du das Terrain skalierst, musst du auch das Tileing der Texturen anpassen. Anders ausgedrückt, wenn du die Skalierung änderst, musst du alles so anpassen, dass die anderen Elemente in deiner Szene immer noch korrekt sind.
    2. Das Gleiche gilt auch für den Vertex-Paint-Pinsel. Dieser hat sowohl eine maximale als auch eine minimale Größe. Wenn du das Landscape zu winzig klein skalierst, kannst du den Pinsel nicht klein genug einstellen, um in angemessener Auflösung zu malen. Ist dein Terrain zu groß, kannst du den Pinsel nur in maximaler Größe verwenden, was dazu führen kann, dass der Pinsel auf dem Terrain winzig erscheint.
    3. Es ist besser, das Terrain selbst nicht zu skalieren, sondern die Größe des Terrains anzupassen.
    4. Visuell betrachtet, erscheint das Terrain wie ein 3D-Mesh, aber technisch gesehen ist es das nicht. Technisch gesehen ist das Terrain nur eine flache Ebene, die aus nur einem Viereck besteht und keine Dreiecke hat.

    Da das Terrain riesig ist, kann nicht einfach eine riesige Textur darauf gemappt werden. Angenommen, dein Terrain ist 4096 * 4096 Meter groß, und du verwendest eine 4k-Textur (4096²), hättest du pro Quadratmeter genau einen Pixel. Minecraft hat meiner Meinung nach 32² oder 64² Pixel pro Quadratmeter :)

    Aus diesen Gründen gibt es bei Terrains drei wichtige dinge:

    1. Die Heightmap: Das Terrain ist technisch gesehen flach, aber die Höheninformationen werden durch die Heightmap erzeugt, im Gegensatz zu einem 3D-Mesh, bei dem die Höheninformationen aus den Vertices stammen.
    2. Die Tesselierung: Dies kann als automatische Unterteilung betrachtet werden. Wenn du näher an das Terrain herangehst, wird es weiter unterteilt, und es entstehen mehr 3D-Ecken. Dadurch ist die Auflösung in deiner unmittelbaren Umgebung höher als weiter entfernt im Terrain.
    3. Das Vertex Paint: Statt eine riesige Textur auf das Terrain zu legen, wird das Vertex Paint auf das Terrain angewendet. Eine Wiesentextur wird dabei in kleinere Abschnitte aufgeteilt und überlagert sich. Welche Textur an welcher Stelle sichtbar ist, wird über das Vertex Paint definiert. Wenn du mit deinem Pinsel arbeitest und eine Wiesentextur aufträgst, malst du technisch gesehen keine Wiese auf das Mesh, sondern du erstellst eine Maske, die in den Vertex-Informationen gespeichert wird. Damit bestimmst du, welche Textur an diesem Vertex sichtbar sein soll.

    Du kannst beispielsweise einstellen: 50% Wiese, 25% Erde, 25% Stroh, um eine Mischung aus allen drei Texturen zu erhalten.

    Zusammengefasst änderst du nicht die Skalierung deines Terrains, sondern die Größe des Terrains, damit die Auflösung und die Tesselierung konstant bleiben. Wenn du dein Terrain riesig skaliertest, würde die Tesselierung nicht mehr korrekt sein, da deine Kamera im Vergleich zum Terrain winzig wäre. Du müsstest dann die Tileing aller Texturen entsprechend anpassen. Letztendlich sollte es möglich sein, deine Unreal-Texturen auf das Terrain anzuwenden, ohne die Texturen in irgendeiner Weise bearbeiten zu müssen. Nur so macht der Arbeitsablauf Spaß.


    Einfach zu skalieren ist übrigens immer keine gute Idee. Der Skale-Faktor bleibt im Mesh bestehen kann zu Fehler führen.

    In 3D prorammen kann man einen Faktor auf 1 Setzen. Sprich du skalierst ein Mesh von 1 auf 1, 4546 und setzt den Skale danach auf wieder auf 1. Unreal behandelt das Mesh dann nicht mehr als wäre es skaliert was weniger Probleme machen kann.