Terrain Bleibt Schwarz?

  • Oder hier: Texturierung von Landschaften


    Man muss verstehen wie Splatmaps funktionieren. Bei einem normalen 3D Mesh werden Pixel durch die UV Map auf das Mesh übertragen. Die UVMap ist hierbei im Prinzip nichts anderes als eine visuelle Tabelle wo alle Koordinaten gespeichert sind. Deswegen heißt es auch UV Koordinaten.


    Die Maschienen Spache versteht immer 2 Zuständen nämlich an und aus und deswegen werden alle Informationen auf einem PC in zwei Potenzen gespeichert. 16 Bit, 32 Bit, 64bit, 16 GB, 32GB und bei Texturen zb 1024 * 1024 und bei Minecraft zb 16* 16 Pixel.


    Deswegen können Texturen nur in diesen größen gespeichert werden alles andere wäre Platzverschwendung. Gäbe es 15,4 GB Arbeitspeicher bräuchte dieser genau soviel Platz wie 16 GB.


    Für Terrain sind deswegen Texturen und das UV-Mapping wie man es bei 3D Modellen kennt nicht zu gebrauchen. Bei einem 16km * 16km großen Terrain bräuchte man eine 16384 Pixel mal 16384 Pixel Textur und selbst dann hätte man genau einen Pixel pro qm. Was du brauchstest wäre eine Textur die mindestens 16384000 Pixel* 16384000 Pixel groß ist.


    Aus diesem Grund bedient man sich bei Terrains an einem kleinen Trick. Man Layert beliebig viele Materialien wie beispielsweise: "Stein, Erde, Grass, Asphalt" usw übereinander und kachelt diese ganz oft. Ganz viele Materials sind nun übereinander gestapelt.
    In Photoshop kennst du doch sicherlich diese Schwarz/weiß Masken womit man sichtbar oder unsichtbar machen kann. Diese Maske besteht aus 2 Farben nämlich schwarz und weiß.


    Bei Terrains kann man beliebig viele Masken verwenden die auf eine übereinander gestapelten Materials angewendet werden können. Dieses Maskensystem funktioniert dann nicht nur mit schwarz und weiß sondern mit Farbe.
    Rot kann zb Grass sein, Blau kann zb Sand sein usw bei der Farbvergabe gibt es keine Logik und Grün ist nicht gleich grass oder Blau ist nicht Wasser dass spielt wie gesagt keine Rolle.


    Im Klartext heißt das also: Materialien werden übereinander gelayert. Wenn man nun Wiese irgend wo hinzeichnet, zeichnet man nicht wirklich Wiese dort hin sondern sagt der Maske nur an welche Stelle die Wiese sichtbar sein Soll.
    Technisch gesehen zeichnet du im Hintergrund keine Wiese sondern einfach nur eine Farbe die sagt das an dieser Stelle Wiese sichtbar sein soll und alles andere dort unsichtbar.


    Das besondere daran ist nun, das diese Informationen nicht in einer Map gespeichert werden sondern als Vertex Position. Das kannst dir so vorstellen als das du ein Bereich um ein Vertex zb einen Blauen Punkt stempelst. Technisch wird in einer Tabelle gestgeschrieben das der Vertex Position xyz = blau ist. Aus vielen diesen einfärbungen entstehen dann solche Splatmaps die aus Farben bestehen und die durch Materials ersetzt werden können.
    So kann gewehrleistet werden das Materials in in beliebiger größe ohne UV Map und durch Kachelung verzerrungsfrei dargstellt werden können.
    Mehr Vertecies im Terrain bedeut eine größere Resolution da hierdurch mehr Punkte (Splats) gespeichert werden können.
    Solche Splatmaps kannst du auch aus anderen Programme (als Map importieren) und in Vertex Paint Informationen umwandeln.


    Ich denke wenn man das verstanden hat, dann versteht man allgemein auch was mit Terrains möglich ist und was nicht.

    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.

  • Wirklich Super Forum hier :D
    finde es Klasse das man nicht einfach gesagt bekommt wie ich was ineinander stecke, sondern wie es genau funktioniert.
    Copy and Paste ist eine Sache, verstehen eine andere.
    Danke für deine Ausführliche Antwort "Sleepy".


    Wenn du das Terrain automatisch anmalen willst, guck dir das an:


    https://wiki.unrealengine.com/…Engine_4_-_In_Depth_Guide

    Super Sache. Auch ein Danke an dich



    ps:
    hoffe es steht nicht ganz so blöd da das ich fast Täglich neue Fragen habe, und selber nur einem Helfen konnte in seinem Thread^^

  • Das Forum existiert aus zwei gründen:


    1. Weil es hier viele schlaue Leute gibt die Fragen beantworten können.
    2. Weil es Leute wie dich gibt die diese Fragen stellen stellen.


    Gäbe es einer dieser beiden Personen nicht mehr, wäre das Forum sehr schnell tot.


    Du kannst so viele Fragen stellen wie du möchtest, du kannst auch gerne neue Threads aufmachen. Achte nur darauf dass alles übersichtlich bleibt du kannst auch die Suche verwenden den viele Fragen wurden auch schon beantwortet, so findest du vielleicht auch schneller die Antwort auf eine Frage ohne lang warten müssen.


    Manch ein frägt sich warum ich hier manchmal so einen riesen Roman schreibe, das liegt daran weil glaube das man so das gesamte Niveau des forums steigen. Das nächste mal wenn diese Frage jemand stellt, kannst du darauf antworten oder weißt wo du das nachlesen kannst.


    Nur weiter so :)

    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.