Materials richtig anlegen und erstellen

  • Hey,


    kleine frage, ich denke zwar das die recht einfach zu beantworten ist aber naja ich stell mich wenns um Texturen, Materials, Grafiken und Modelle geht eh weng an :D


    Undzwar hab ich mal versucht ein Material zu erstellen:


    Jetzt ist das Problem wie man links sieht, das sich die Texture Oben und Unten am Würfel natürlich auch abbildet. Wie kann ich das einstellen das sich eine extra Textur Oben und eine extra Textur unten am Würfel abbildet ?
    Ich möchte letztendlich auch einem Würfel wie in der Vorschau zu sehen dem Material zuweisen bzw. das Material dem Würfel.


    So als kleine Nebenfrage wenn dieses Problem gelöst ist, was kann ich in dem Materialerstellungen noch alles hinzufügen damit das Material an sich besser wirkt. Gibts da irgendwelche "secret" Tricks die ihr so drauf habt :D ?


    Vielen Dank schonmal :)

  • @'Zipfelbruder Sentino hat recht die UVs sind Schuld :)
    Auch den Link den er gepostet hast kannst du dir mal durchlesen.


    Auch das kannst du dir mal anschauen: UV Shells

    Puuh okay danke ersteinmal, hab mir bereits den wiki eintrag durchgelesen sowie DIESEN (jedoch via Übersetzer :D )


    Nunja gelesen hab ichs aber verstanden ?


    Also ich muss jetzt die .png Datei der Textur in Photoshop öffnen und dann über meine Textur diese Filter beispiele aus der Verlinkung oben zeichnen ? Oder ?? Aber wie finde ich heraus wie ich meine UV-Shell bei dieser Textur zeichnen muss ? Oder ist das egal ?


    Also meine Texturen für die "Blöcke" sind alle 128x128. Bei vielen Texturen ist es egal ob diese beim 3D Würfel oben und Unten ebenfalls "gespiegelt" werden nur bei manchen nicht. Und diese UV Shells muss ich dann nur bei den Texturen einbringen wo die Textur nur an den Seiten des Würfels kopiert werden soll oder ?


    Ich hab so den Gedanken das ich das garnicht verstehe :D

    • Offizieller Beitrag

    Gut dann von vorne:


    Eine UV-Map kannst du dir wie eine Excel tabelle du hast zb eine Textur mit 1024 * 1024 Pixel das heißt deine Exel Tabelle hat 1024 Zeilen und 1024 Spalten.
    In Jeder Zelle stehen nun Informationen drin ob ein Pixel vorhanden ist und welche Farbe dieses Pixel hat.


    Also du hast einen Viereckigen UV-Space (Bereich) wie großer dieser ist bestimmt du selbst im 3D Programm.
    Zuerst einmal musst du das Umwarp für diesen Cube machen, das bedeutet du schneidest ihn so auseinander das du ihn als 2D map verwenden kannst. (Vergleichbar mit einem Karton den du aufschneidest damit du ihn falch auf den Boden legen kannst)


    Nun hast du dein mesh aufgegallten dann sieht das ganze so aus:


    Du siehst den Cube und rechts die UV-Map vom Cube. Den 4 eckigen Kasten den du da siehst (hellgrau) ist der UV-Space also der Bereich in den deine UV und deine Textur rein muss. Deine sollte sich innerhalb dieses kastens befinden.
    Die UV kannst du nun zb mit 1024 * 1024 Pixel abspeichern und in Photoshop als schablone öffnen.


    So sieht der UV Layout export in Maya aus wie du siehst exportiere ich alles als 2k (2048 * 2048) Textur.




    Und so sieht das dann in Photoshop aus:



    Ich hab hier einfach mal in Photoshop Zahlen auf jede Seite den würfels gemalt.
    Nun blende ich das Layout aus und Speichere die fertige Textur ab.


    So sieht das in Photoshop ohne Layout aus( Wie du siehst fehlt der schwarze Rahmen)




    Nun kannst du in der Unreal dein Material wieder auf den Würfel ziehen, die UV wird in der OBJ oder FBX gespeichert. Und deine Textur wird extra importiert zb als PNG.


    Mesh + Textur in Maya oder in der UE4 sieht dann so aus:



    Rechts die UV wo die Zahlen quasi ausgelesen und aufs Mesh übertragen werden. Würdest du in Photoshop eine Zahl auf den Kopf stellen so würde sich die Zahl auch entsprechend auf dem Mesh ändern.


    Ich weiß das hört sich sehr kompliziert an aber ich hoffe du hast das Prinzip verstanden.

  • @Sleepy kurze Nebenfrage:


    Hab gestern Abend/Nacht noch eine UV-Map für den Würfel erstellt. in 128x128 je "Würfelseite". Bin grad in der Arbeit hab von da aus aber zugriff auf meine Texturen und die UV-Map sowieso Photoshop. Aber nicht zu Blender usw.


    Daher die Frage kann ich direkt in Photoshop die UV-Map nehmen und die größe verändern ? Also auf bps. 2k (2048x2048) ? Bzw. was muss ich dabei beachten ?


    Frag nur eben weil ich heut noch an den Texturen arbeiten will und nicht erst wieder warten bis ich daheim bin dann in Blender und das ganze UV-Mapping zeugs mit nem höher auflösenden Würfel machen :D

    • Offizieller Beitrag

    Daher die Frage kann ich direkt in Photoshop die UV-Map nehmen und die größe verändern ? Also auf bps. 2k (2048x2048) ? Bzw. was muss ich dabei beachten ?

    Ja das geht am besten in ein Smart Objekt umwandeln (Smart Objekt = Vector) und skalieren.
    Das UV Layout kannst du skalieren bitte aber hinterher nicht die Textur größer skalieren.


    Du kannst deine Textur auch als 4k bauen und dann runter skalieren, runter geht immer :)

  • (Smart Objekt = Vector)


    Das könnte zu Missverständnissen führen. Ein Smart Objekt kann sowohl Vektor wie auch Pixelbilder enthalten. Sie wandelt aber keine Rasterbild in eine Vektor Datei um. (Schön wäre es)
    Somit kann er, falls er eine png Datei hat, diese ohnehin nicht verlustfrei skalieren.
    Das Smart Objekt dient nur dazu ein Bild non-destruktiv bearbeiten zu können. (Klugscheiß Modus aus :) )
    @Zipfelbruder


    Du könntest natürlich auch in Blender einfach ein zweites/drittes Material zuweisen (2 UV Canel)
    und dir somit die ganze Arbeit in Photoshop sparen.
    Ich gehe davon aus das sich das aber auf die Performance auswirkt.
    Wobei das wahrscheinlich in Relation zum Arbeitsaufwand zu sehen ist. Aber da bin ich nun wirklich kein Experte.

  • @Sleepy :


    Hab ein Problem undzwar, hab ich eigentlich alles gemacht nach Anleitung bzw. Wiki eintrag. Meine UV-Map als .png sieht so aus:


    Importiere ich diese jedoch in Unreal Engine sieht es so aus: (Transparenz wird hier schwarz angezeigt)


    Warum ist da dieses graue und dieses weiße Fenster ?



    Und was ich noch fragen wollte:


    Kannst du mir sagen wie ich dann die UV im Blueprint des Materials einstellen kann ? Muss ich die "leere" UV-Map auch Importieren und im Blueprint hinterlegen ? Oder wie genau mach ich das ?


    Du hast ja geschrieben die "die UV wird in der OBJ oder FBX gespeichert" Wo ist das wo diese gespeichert wird ?


    Danke schonmal.

    • Offizieller Beitrag

    Da hast du natürlich recht ich versuche immer so zu erklären das es jeder versteht.

    Importiere ich diese jedoch in Unreal Engine sieht es so aus: (Transparenz wird hier schwarz angezeigt)

    PNG kann Tranzparenz speichern du kannst aber in deinem Grafik Programm auch sagen das die Transparenz nicht gespeichert werden soll. (hier musst du aufpassen)
    Als nächstes musst die Engine wissen das es sich um eine Textur mit Alpha Informationen handelt.


    Das tust du im Material Editor, wenn du dort die Diffuse anklickst kannst du unter Sampler Type von Color auf Alpha umstellen.


    Dann sollte es gehen.

  • @Sleepy nice habs hinbekommen! Danke :)


    Kann ich dich kurz fragen für was gibt es eigentlich diese normal texturen ? Also hab des schon in vielen Videos gesehen aber was haben die für einen Effekt ? bzw. braucht man die zwingend ?


    Wie kann man diese aus einem normalen Bild heraus erstellen ?


    :) :) :) :)

    • Offizieller Beitrag

    Kann ich dich kurz fragen für was gibt es eigentlich diese normal texturen ? Also hab des schon in vielen Videos gesehen aber was haben die für einen Effekt ? bzw. braucht man die zwingend ?

    Eine Normal ist eine Informationskarte die Informationen enthält die von 3D programmen und Engines interpretiert werden können. Eine Normal also sowas wie eine Lochkarte in der Informationen gespeichert oder gelesen werden können.
    Schau dir eine Normal mal genau an: Du wirst feststellen das sie überwiegend blau ist. Es sieht aus als würde von einer seite Rotes Licht oder von einer anderen Seite Grünes Licht auf der Map zu sehen sein.


    Wahrscheinlich musst du dir das Bild mehrmals anschauen:



    Als Erklärung wenn dir in einem 3D Programm ein Objekt erstellt zb einen Würfel, dann kannst du diesen im 3D Raum Verschieben


    nämlich nach
    (Y = Hoch/Runter) = Grün
    (X = Links/Rechts) = Rot
    (Z = Tiefe/Vor und Zurück) = (Blau)


    Nun schau dir nochmal das Bild an:


    Tiefe ist immer
    (Z = Vor und Zurück) = (Blau)
    (X = Links/Rechts) = Rot
    (Z = Tiefe/Vor und Zurück) = (Blau)


    In einer Normal werden also Informationen gespeichert aus welcher Perspektive man ein Objekt sieht. Die Engine kann dann das Licht anderst werfen so sieht ein Objekt dreidimensional aus obwohl es aus einer Normal (2D) ausgelesen wird. Eine Normal ist als ein Fake von 3D.


    Wenn du das Objekt mit der Normal drehst, so wird auch das Licht anderst geworfen und anderst wie ein Strassenkünstler der einen Würfel auf die Strasse malen kann der aus nur einer Perspektive 3D aussieht, sieht eine Normal immer dreidimensional aus.


    Kleine Hintergrund Informationen: EIne UV steht für die Postion U = (X Links/recht ) und V = (Y Links Rechts) die uv könnte quasi auch XY heißen. Da eine UV zweidimensional ist, hat sie keine Tiefe und deswegen entfällt die Z Achse. (UV ist also in 2D das selbe wie in 3D XY)


    Schau dir zu den Normals auch das hier an:
    Normals


    Wie gesagt: Normals sind faken von 3D. Nun kann man auch ein aufwändiges 3D Objekt erstellen und dieses zb auf eine Plane Baken, dazu benötigt man ein Highpoly mit vielen Polys und ein Lowpoly mit wenig Poly. Beim Baken werden nun die 3D Informationen aus dem Highpoly als Normal (XYZ Informtionen) in die Normal geschrieben und auf dem Lowpoly in Fake 3D angezeigt.


    Wie das genau funktioniert siehst du hier:


    Highpoly/Lowpoly Cagebake + Colorid Breakdown


    Hoffe das reicht erstmal.


    Sorry für die vielen Infos aber dies ist auch nicht einfach zu erklären.

  • Ich hatte immer angenommen die Normal unterstützt nur ein wenig die Tiefenwirkung. Um aber zu sehen wie mächtig die sind, kannst du dir mal ein ganz normales einfarbiges Material erstellen.
    Dann nimm dir aus dem Starter Content verschiedene Normals und stöpsle sie mal an.
    Meiner Meinung nach ist die Normal eine der genialsten Errungenschaften im 3D Bereich.
    Hier werden Materialien sehr gut Stück für Stück erklärt.
    https://www.youtube.com/playli…pPJF5ZfJKKNlGVzundVz2VF-_