Landscape Layer zurücksetzen

  • Wieso malst du das Terrain nicht einfach wieder in der Ursprünglichen Farbe ?


    Der Trick beim Terrain ist folgender:


    Dein Terrain besteht zb aus: Wiese, Erde, Sand...


    Technisch:Der Trick ist nun das alle Texturen unendlich oft über das Terrain gelayert werden.

    WIese befindet auf einer Ebene, Erde auf einer Ebene und Sand auf einer Ebene.


    Durch den Pinsel trägst du nicht die Textur auf, sondern du sagst im Prinzip nur an welcher Stelle welche Textur sichtbar sein wird.


    Im Grunde zeichnest du also nicht die Textur auf das Terrain sondern du zeichnest eine Maske.

    Dieses Maskenzeichnen kennst du vielleicht aus Photoshop oder Gimp. Dort gibt es diese klassischen Schwarz/weiß Masken. Beim Terrain sind das RGB Masken damit man mehr als 2 Texturen definieren kann.

    Anderst wie beim UV Mapping wird die Maske nicht in Pixel gespeichert sondern als Vertex Position.

    Bildlich kannst du dir das wie eine xcell Tabelle vorstellen in der steht welches Material an welchem Vertex Punkt angezeigt werden soll., dort entsteht dann ein Farbklecks (die Maske)


    Das besondere ist: DU brauchst keine UV map, die Position wird über die Vertex Position bestimmt und man das das Terrain tesselieren also Gitternetz des Terrains verfeinern wenn man sich zb einem Hügel nähert. Durch das tesselieren des gitternetzes wird dann auch die Textur Darstellung verfeinert auch dass wäre mit einer UV so nicht möglich.


    Wenn man das Terrain bearbeitet hat man immer das gefühl man würde sculpten oder aufs Terrain direkt aufs Terrain malen. Aber im grunde tut man das nicht :)


    Die Lösung ist: Das Terrain einfach in der Farbe zu bemalen die es bekommen soll.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Okay ich habe jetzt eigentlich auch gehofft, dass sich noch ein Problem löst indem ich den Layer quasi zurücksetze. Ich habe das jetzt übrigens geschafft indem ich die Layer alle gelöscht habe, also neben der Info auf das X gedrückt habe. Und zwar ist das andere Problem, dass der Gras Layer nicht so ausschaut wie er sollte, hier am Screen ist er einmal auf einer kleineren Plane rechts korrekt dargestellt und auf der großen Plane, eine Heightmap, schaut er irgendwie anders aus:

  • Ich weiß nicht genau was du vor hast aber wenn ich dich richtig verstehe geht es um den Vergleich:


    Terrain vs Mesh ( Sieht nicht gleich aus) oder ?


    Der Unterschied ist, ist das deine Auflösung nicht gleich ist.


    Du könntest das Terrain beispielsweise exportieren und die Texeldensity vom Terrain auslesen und die selbe texeldensity auf die UVs des Meshes anwenden.


    Texeldensity heißt folgendes:


    1.Nehmen wir du hast eine Wand die ist 200cm hoch und 200cm Breit

    2.Du hast eine Textur die hat 2048 * 2048 Pixel.


    Jeder cm bekommt also ungefähr 10 Pixel oder ca 1000 Pixel pro Meter


    Verwendest du eine Wand die nur 100cm hoch ist und 100cm Breit und darauf die 2048² Pixel Textur mappst dann bekommt jeder der qm doppelte so viele Pixel.

    Deine Auflösung ist zwar bei einem kleinen Objekt doppelt so gut wie bei einem großen Mesh aber die Unterschiede sieht man eben.


    Damit beide Objekte gleich aussehen darf die UV des kleines Objektes nur halb so groß sein wie die UV des großen Objektes.



    Objekt1 = 2m hoch 2 Meter breit die UV ist 2048* 2048 Pixel Die UV ist 2048*2048 Pixel groß)

    Objekt2 = 1m hoch 1 Breit breit dann kannst du die selbe Textur mit 2048 verwenden die UV darf aber nur 1000 Pixel groß sein.

    Die hälfter der 2k Textur für das kleinere Objekt.


    Dann ist Pixel dichte (Texeldensity) der Meshes identisch.


    Ich weiß´klingt kompliziert hoffe du hast es trotzdem verstanden.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Meinst du aus mehren Terrains oder aus mehreren Meshes ?


    zu der Terrain Variante:


    Du kannst ein großes Terrain aus mehren kleineren Terrains bauen, das Problem ist das die Terrains nahtlos ineinander übergehen. Auch hierfür gibt es sog. Stiching womit das gut funktiniert.

    Die Frage ist dann eher warum ?

    Egal wie groß das Terrain ist, es ist unabhänig von der Texturaurauflösung da Terrain nicht per UV aufs Terrain projeziert wird.


    Bei der Mesh Variante hast du wieder das problem mit der Auflösung. Bei einem Terrain das 4 * 4 km groß wäre, hättest du selbst bei einer 4096 *4096 Pixel Textur nur ein Pixel pro m²

    Das ist viel schlechter als Minecraft :)


    Du könntest zwar eine gekachelte Textur verwenden und die kacheln aber dann kannst du keine anderen Texturen wie Erde etc verwenden.


    Der große Vorteil des Terrains ist die möglichekeit viele Texturen verzerrungsfrei und ohne UV-Mapping zu benutzen.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Ja ich denke ein Terrain, also eine Map die sich aus mehreren Hightmaps zusammensetzt. Ich schau mir das Stiching an, sonst hätte ich einfach Steine genommen um Unregelmäßigkeiten zu verbergen. Es schaut gerade wirklich nicht gut aus, man sieht auch ein bisserl ein schachbrettartiges Muster, auf einer kleineren Plane tritt das nicht auf.

  • Mal ein paar Tipps:


    1.Achte darauf das du Textur verwendest die große Maße hat. (Ich meine nicht die Auflösung)

    Nehmen wir an du Fotografierst ein Stück wiese mit einer gesamt Größe von 30 * 30 cm als 2k Textur.

    Deine Texutur hat zwar ne gute Auflösung und du erkennst jeden Käfer aber du siehst auch sofort dass sich Textur wiederholt. Deswegen: Achte darauf dass die Fläche auf deiner Textur einer möglichst großen Fläche entspricht.


    2.eine 2 * 2 Meter Fläche kann eine 2 * 2 Meter textur sein, diese muss dann zb auf eine 2k Textur (2048 * 2028px groß sein. Bitte nicht 2m auf 512² pixel quetschen. Dabei gehen so gut wie alle Details verloren.


    3.Speichere deine Textur als PNG oder TGA das sind Formate nicht nicht komprimiert wird. Bitte kein JPG oder ähnliches verwenden.


    4.Damit man die WIederholung nicht erkennen kann, sollte die Textur keine muster haben die rausstechen. Wenn du zb in der Mitte der Textur ein Stein hast wird man sehr schnell als Wiederholung erkennen.


    5.Es geht einfach nicht anderst! Texturen müssen sich wiederholen und dann erkennt man eben auch die Wiederholung. Du kannst aber zb verschiedene Wiesentexturen verwenden und an den Stellen wo man die Wiederholung sieht eine andere Wiese drübermalen. Du kannst naürlich auch 5erlei verschiedene WIesen verwenden.


    6. Auch ein Tipp: Benutze die Opacity der Materialien zb SandTextur1 mit 90% Opacity, diese Textur übermals du mit Sandtextur2 mit Opacity 50% und dann nochmal eine mit 30%


    Dadurch entstehen neue texturen die man so leicht erkennen kann.


    Als Profitip: Mach das vor allem den Rändern von Wiese zu Sand oder Wiese zu Erde oder sein.

    Dann hast insgesamt schönere Übergänge.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Und zwar ist das andere Problem, dass der Gras Layer nicht so ausschaut wie er sollte, hier am Screen ist er einmal auf einer kleineren Plane rechts korrekt dargestellt und auf der großen Plane, eine Heightmap, schaut er irgendwie anders aus:

    Das ist ziemlich einfach woran das liegt^^



    "LandscapeCoords" ist nur für die Landscape gedacht, nicht für Meshes, es heißt ja "Landscape"-Coords...

    Daher sieht es in meinen ersten beiden Beispielen genau so aus wie bei dir:


    Wenn du da noch ein Constant mit rein packst, kannst die Textur skalieren:


    Um wirklich keine Probleme mit der UV-Map zu haben, benutzt du am besten WorldPosition, dann werden die Coords der Welt genommen um die Textur zu platzieren, wodurch du ein Mesh beliebig skalieren kannst und die Textur trotzdem gleich aussieht (vergleich mal die Textur des Meshes auf dem ersten und letzten Bild an der Kante), egal ob Landscape oder Mesh:


    Damit jetzt noch die Z-Achse richtig angezeigt wird, ist ein bisschen mehr Setup nötig:

    Das obere und untere "WorldAlignedTexture" ist übrigens das gleiche, das untere ist nur mit copy&paste drin^^


    "WorldAlignedTexture" passt automatisch die Textur für 3 Achsen an, damit ist es z.B. auch möglich, die Textur um nen Berg rum laufen zu lassen (wie z.B. Sediment), statt einfach nur darüber, frisst dafür aber auch bisschen mehr Performance...

    Persönlich bin ich immer bereit zu lernen, obwohl ich nicht immer belehrt werden möchte.

    Winston Churchill

    3 Mal editiert, zuletzt von Butter Fly Games ()