Blender UV-Channels

  • Hey < 3,


    wollte mir eine kleine futuristische Stadt zusammenbauen und hab mir als erstes die Shooter Multiplayer Map angeschaut. Hab dann ein Hochhaus genommen und in Blender importiert (erst in 3DS Max, hab dann aber festgestellt, dass das Mesh tatsächlich in Blender erstellt worden ist). Hab mich dann aber ein wenig gewundert wie die erste UV-Map zustande gekommen ist. Hier mal ein Bild dazu:


    http://imgur.com/a/gjAbG


    Anscheinend werden 3 UV Maps für das Gebäude benutzt. 1x Lightmap, 1x UV Map für die Fenster und 1x UV Map für den Rest (weißer Beton). Das Mesh hat auch 2 Materials assigned. Hier meine Frage, wie bekomme ich dieses Szenario hin, ohne das dabei mir diese "UV Suppe" angezeigt wird? :D

  • Das die Texturen nicht in den UV Koordinaten sind.
    So wie ich das sehe, wird ein kompletter UV Space nur für Fenster benutzt. D.h. in der UE hast du 2 Materials, jeweils mit einer Textur, die jeweils die beiden UV Koordinaten repräsentieren. Ein Material hat also eine kachelbare Fenstertextur (+roughness, + metalic etc.) die nur auf den UV space projiziert wird, wo das Mesh auch seine Fenster hat.

    2 Mal editiert, zuletzt von Ninjin ()

  • Es geht hier nicht um Texturen, sondern lediglich um die UV's. Schau dir das erste Bild an, die Projektion ist nicht im UV Koordinatensystem, sondern liegt außerhalb.

  • Wie DarkFaces schon sagte, ist es bei kachelbaren Texturen völlig OK, wenn die UVs über das Quadrat hinausragen.
    Würde man die UVs jetzt herunter skalieren, würde das dazu führen, das weniger Textur verwendet wird.
    Auf dem Modell würde das dann echt mies aussehen und die Beton Poren, falls vorhanden würden unnatürlich groß werden.


    Ich nehme mal an, dass das Model in Bezug auf den Player sehr groß ist. Von daher wäre es keine gute Lösung das neu abzuwickeln und eine Textur zu erstellen die Glas UND Beton enthält.
    Dieser Weg führt nur zu einem qualitativen Ergebnis, wenn man das Modell in viele Teile zerlegt (zB. Stockwerke) und diesen dann jeweils eigene Abwicklungen und Texturen spendiert.


    Für ein Konzept mit kachelbaren Texturen ist das Modell mit seinen beiden Materialien eigentlich OK.

    • Offizieller Beitrag

    Es gibt im übrigen auch einen Trick wie ihr eure UV Kacheln könnt.


    Ein Beispiel:


    Ihr habt einen Holzpfosten der ist 2m Hoch und 25cm * 25c, Breit/Dick.


    Auf Ihn macht ihr nur eine 1024 * 1024 px Textur!


    Da euer Balken 2 M hoch ist, brauchst ihr die komplette höhe des UV-Spaces. Eure Balken hat in der höhe also exakt 1024 Pixel.


    Euer Balken ist aber nur 25cm Breit. das bedeutet ihr braucht in er Breite nur 25 von 1024 Pixel. (Ihr könnt den Rest UV-Space für andere Balken nutzen)


    Wenn ihr nun den Balken aber nicht zwei Meter hoch haben wollt sondern zb 6 m dann müsst ihr die UV Shell der Höhe einfach nur 3 mal so lang ziehen !!!


    Ja die geht dann über den UV-Space hinaus aber das spielt keine Rolle. Ihr habt den Balken somit in der Höhe gekachelt.


    So ein Aufbau ist besonderst praktisch wenn Ihr euch einen Textur Atlas aus lauter Balken bauen wollt.

  • Hallo
    Wenn du kein 2D Offset nutzt brauchst du dein Mesh in UE4 immer im UV Space.
    Das kannst du einfach so skalieren (A-S) dass es ins Grid passt.
    Es scheint als hättest du zwei Meshes auf einer UV Map. Mit STRG J kannst du die Meshes (Fenster,Beton?) zusammenfügen, dann siehst du die komplette Verteilung.
    PBR funktioniert anders als die Old School Texturierung.
    Bei aktueller PBR Texturierung kannst du das Mesh als ganzes anzeigen, Texturieren und in die Engine stellen.
    Hast du herkömmliche Texturen, hast du die Möglichkeit diese in der Engine per Color ID zu Maskieren, separat zu tilen und zu einem Material zusammen zu fügen.
    Natürlich kannst du auch für ein Mesh mehrere Materialien verwenden.(In Blender, Editmode, Assign) Du hast dann für jedes Material einen Draw call.
    Wahlweise könntest du auch zwei Meshes (Glas,Beton ) erstellen und je ein Material zuweisen (Vermutlich dein aktueller Stand- zwei Meshes auf einer UV). Hier brauchst du ebenfalls zwei Draw calls.
    Rechnerisch bleibt es gleich.


    Gruß