Landscape Material

  • Displacement = Verschiebung. Tesselation = Polygonzerlegung (Kachelung).


    Die beiden Begriffe haben nichts gemeinsam. Displacement gehört zu den Texturen und Tesselation gehört zu den Polygonen (Meshes (2D/3D)).


    Displacement bestimmt die Verschiebung eines Punktes relativ zu einem einheitlichen Ausgangspunkt. Typischerweise erziehlt man damit den Eindruck von Tiefe (3D-Effekt).


    Tesselation ist eine rechenbasierte Methode (meist nahen) Objekten mehr Polygone und damit mehr Struktur zu geben. Die Unterteilung eines Meshes wird dadurch erhöht weshalb sich feinere Details (insbesondere Rundungen) darstellen lassen.


    Bei einem LandscapeMaterial hilft dir Displacement gerade kleinere Steine, Sand, Blätter und Äste auf dem Untergrund darzustellen, ohne das ein eigenes Objekt dafür verwendet wird. Die meisten Anfängerbeispiele zeigen es anhand von Steinen oder Straßen, aber eben auch Sand oder Kies. Anstatt Millionen von Steinen zu modelieren und auf der Karte zu verteilen damit ein 3D Effekt entsteht erreicht man das selbe Ergebnis übers Displacment.


    Tesselation verwendet man auf dem Gitternetz der Landscape selbst damit Hügel oder auch Uferstreifen detaillierte Dargestellt werden können. Gerade wenn es um Rundungen im LandscapeGitter geht, hilft dir Tesselation ungemein damit keine eckigen Kanten entstehen.

  • Displacement = Verschiebung. Tesselation = Polygonzerlegung (Kachelung).

    Jetzt bin ich auch wieder schlauer^^


    Bei einem LandscapeMaterial hilft dir Displacement gerade kleinere Steine, Sand, Blätter und Äste auf dem Untergrund darzustellen, ohne das ein eigenes Objekt dafür verwendet wird.

    Tesselation verwendet man auf dem Gitternetz der Landscape selbst damit Hügel oder auch Uferstreifen detaillierte Dargestellt werden können

    Das Problem damit ist nur, dass dann die Füße im Boden versinken, was auch nicht mehr wirklich gut aussieht...

    • Offizieller Beitrag

    Das Problem damit ist nur, dass dann die Füße im Boden versinken, was auch nicht mehr wirklich gut aussieht...

    Der Collider wird nicht tesseliert und bleibt auf dem 0 Punkt des Terrains/Meshes.


    Im Prinzip musst du aber einfach nur den Collider etwas erhöhen, dann passt es wieder. Wenn ich mich nicht täusche geht das über den Bound Scale in den Rendering Einstellungen.

    • Offizieller Beitrag

    Kann es sei das die Appends ursprünglich einmal anderst aufgebaut und eingestellt waren ?


    Wenn du mal genauer hinschaust dann siehst du dass die Appends eigentlich "Append Vector" heißen .

    Sie sind also eine Node um einen Vecor zu bilden.


    Was ist den ein Vector? Die Kurzform: Ein Wert der aus 2 oder 3 Zahlen besteht.

    zb ist XYZ ein Vector.


    Nun mutmaße ich einmal:

    RGB ist nämlich auch ein Vector. DIe Normal RGB Farbe ist R = 0,5 G = 0,5 B = 1 (RGB = 0,5 , 0,5 ,1) oder (127, 127, 256)


    Verbindest du diese Zahlen mit zwei Apends, dann kommt die Normalfarbe als RGB Wert raus.


    Dann macht es zumindest durchaus Sinn die Vorhandene Normal aus der Textur mit der Normalfabe zu multiplizieren.


    Hier mal ein Beispiel:


    Also Ja. So wie dein Material jetzt aufgebaut ist, kannst du die Appends löschen.

  • Weder der Workflow noch die Engine von Rockstar sind öffentlich zugänglich, von daher können wir da mutmassen aber nichts konkretes sagen. Wenn du nur an einer Stelle der Textur einen dunklen Fleck haben willst im gegensatz zum original kannst du in UE4 mit decals arbeiten, dann sparst du es dir dein Projekt mit nahezu identischen Texturen aufzublähen.

    • Offizieller Beitrag

    Andere Engines kochen genau so mit Wasser wie die Unreal Engine auch dort können keine geheimen Tricks verwendet werden.


    Ich mutmaße mal:


    Wahrscheinlich wurde einfach nur Vertex Paint verwendet.

    Auch möglich wäre, das die Texturen in alle Richtungen kachelbar sind. So kannst du eine Textur die ja 4 Seiten hat um 90 grad drehen. so gibt es mit einer 2k Textur theoretisch 16 Möglichkeiten die ein und die selbe Textur zu verwenden.


    Für wahrschienlicher halte ich es aber das Vertex Paint verwendet werden. Die unterschiedlichen Vertexpaint Texturen können dabei sehr ähnlich sein und passen dabei trotzdem zusammen (sind kachelbar)

    zb 2 m² (2048 * 2048 px) mit holz. Die selbe Textur nochmal mit Äste mit Kratzer und ohne Kratzer. so werden über Vertexpaint einfach mehrfach mit ähnlichen Texturen übermalt und die gesamte Textur sieht sehr individuell aus.


    EDIT: Decals sind performant da sie einfach nur eine Fläche mit einer Textur sind. Auch Meshdecals solltest du dir mal anschauen.

    1000 Decals siind im grunde so performant wie ein 3D Modell mit 1000 Quads. Was aber auf die Performance geht, sind das es 1000 Objekte also jeweils 1 Drawcall ist. sofern alle 1000 gleichzeitig sichbar sind.

  • Kommt auf die Menge und die Größe der decals an. Decals können zwar potentiell auf die Performance gehen, aber wenn es nur ein paar Dutzend sind merkst du meist gar nix. Pauschal schwer zu beantworten. Probiers es doch mal indem du zur Laufzeit ein paar Tausend über deine Landschaft spawnst und auf die fps schaust. Merkst du nix dann kannst du die sicherlich ohne Probleme verwenden. Andererseits wenn du 1000 nahezu identische texturen verwendest haust du den Grafikkarten RAM zu, Du willst ja nicht daß man dein Spiel nur mit ner RTX 3090 mit 24GB spielen kann.

    • Offizieller Beitrag
    • Hilfreich

    würde ich gerne nur einen Berg per Automaterial anmalen.

    Im Prinzip malst du nicht das Terrain an, sondern du malst verschiedene Layer als Vertexpaint (Farbe).


    Beispiel:

    Rot ist Gras

    Grün ist Erde

    Braun ist anderes Gras

    usw


    Dein Terrain ist quitsch bunt und deine Materials werden einer Farbe (Colorid) zugewiesen. (Diese Farbenmap nennt man auch Splatmap)

    https://nickelcitypixels.com/w…ds/2020/01/splatMapEg.jpg


    Das Automaterial macht diese Splatmap nach bestimmten Kriterien automatisch.


    Die unterschiedlichen Materalien kannst du dir wie Layer (bekannt aus Photoshop) vorstellen.


    Willst du also das etwas nur in einem bestimmten Bereich passiert, solltest du dir die Layer genauer anschauen.

    https://docs.unrealengine.com/…cape/Materials/index.html

  • Gibts irgendwie weitere Gründe, dass Texturen nicht gezeigt werden, außer dass man nicht alle texture im Material shared wrap zuzuweist? Ich hatte bei meinem Material nur eine minimale Änderung gemacht unzwar die Intensität geändert, ich hatte vorher diesen Baustein mit Lerp nach der Textur die hab ich gelöscht und stattdessen ein scala genommen, dass ich durch multiply mit Textur verbunden habe. Dann kompiliert und auf einmal kompiliert er nur noch 3000shader anstatt 25k. Habe dann die alten Bausteine wieder genommen, also vorherigen Zustand komplett wieder hergestellt aber der Fehler bleibt...


    Bei Paint werden jedenfalls zwei Layer in diesem ue4 karomuster angezeigt


    Habe die Material dann mit der aus einem Backup ersetzt und da ist alles mit dem selben Layer vollgemalt, der bei der alten Material kaputt ist, deswegen wohl alles Grau. Kann man die malinformation aus nem älteren Backup importieren?