Räume Modelieren wie vorgehen?

  • Wieso willst du das Ding Kacheln? Das ist aufwändig und bei so einer Decke führt das außer zu Problemen zu nix. Bau dir ein 2x2m Stück und importier das in die UE. Die Decke wird immer im XY TextureCoord liegen, wenn du sie nicht gerade als Wand missbrauchst. Folglich kannst du die Decke so groß skalieren, wie du das willst. Als Decke spielt es noch nichtmal ne Rolle, ob du das im Worldspace oder im ObjectSpace machst. Du kannst letztlich auch die Decke direkt an die Wand einschließlich Überlappung einrasten lassen.

    Das irritiert mich jetzt...ich dachte das Prinzip des Baukastens ist es die Bauteile zu kacheln. Wenn ich jetzt einen Raum machen will mit 16m x 16m x 3m. Habe mir jetzt ein Doppelwandiges Bodenteil gemacht mit 2m x 2m und ein Wandteil mit 2m x 3m (doppelwandig). Dazu noch ein Wandteil 4m x 3m inkl. Türloch und ein Eckteil zum abschließen der Ecke.


    Wenn ich jetzt den Boden/Decke mache soll ich also nicht die 2m x 2m Teile aneinanderreihen sondern eins verwenden und skalieren? Gleiches gilt für die 16m Wand - das 2m x 3m nehmen und skalieren? Oder gilt das skalieren nur für Boden/Decke? (wenn ja warum nur dafür und nicht für Wände)


    Weil Sleepy gefragt hat wo ich Licht gebaked habe....sollte ich den Raum komplett in Blender mit den Bauteilen zusammensetzen, verbinden und dann komplett in UE reinholen oder die Bauteile in UE reinholen und dort zusammensetzen?

  • Andere Erklärung:


    1. Blender


    Bau einen Mesh 200x250x40. Zerlege die UVs in der Skalierung, wie sie das Mesh vorgibt, als möglichst nicht verzerrt. Gib Vor- und Rückseite, Rechts und Links und Oben und Unten jeweils ein eigenes Material. Dabei es im Blender keine Rolle, was das für ein Material ist, ne Farbe reicht völlig, da es nur um die Zuweisung des Materials geht, die dann in der UE4 übernommen wird.


    2. Importier das Mesh ohne Material/Textur in die UE4. In der UE4 siehst du jetzt, dass das Mesh 3 Materialien bekommen hat, die du in der UE4 selbst erstellen kannst. Das kann das selbe Material für alle Seiten sein oder auch jeweils unterschiedliches Material. Jetzt kannst du über eine Funktion angeben, dass das Material in Abhängigkeit von seiner Lage die Textur skalieren soll, dies geht einmal im Worldspace und einmal im relativObjectSpace.


    Skalierst du jetzt dein Mesh, dann wir die Textur nicht verzerrt. Vorzugsweise sollte es ne SeamlessTexture sein oder eine die Kackelt/Tiled. Da das Material jetzt unabhängig von deinem Mesh ist, spielt die Skalierung auch keine Rolle. Mit anderen Worten kannst du dein 200x250x40 großes Mesh auch auf 16000x16000x40 skalieren. Es spielt keine Rolle, ob Wand oder Decke, in der Funktion muss nur angegeben werden, in welcher Fläche deine UVs liegen also ob XY oder YZ oder XZ.


    Hier hab ich das mal kurz umrissen. Da siehste, dass die Skalierung auf das Material keinen Einfluss hat.


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    • Offizieller Beitrag

    Das irritiert mich jetzt...ich dachte das Prinzip des Baukastens ist es die Bauteile zu kacheln. Wenn ich jetzt einen Raum machen will mit 16m x 16m x 3m. Habe mir jetzt ein Doppelwandiges Bodenteil gemacht mit 2m x 2m und ein Wandteil mit 2m x 3m (doppelwandig). Dazu noch ein Wandteil 4m x 3m inkl. Türloch und ein Eckteil zum abschließen der Ecke.

    Das ist auch ein wichtiger Punkt nämlich die Performance: Stell dir es gibt zwischen deinem Mainboard und deiner Grafikkarte eine Poststelle die sich immer Briefe hin und her schreiben.


    Deine Aufgabe als Entwickler ist es dafür zu sorgen das die Anzahl der Briefe möglich gering bleibt und das immer soviele Breife wie möglich auf einmal transportiert werden.
    Diese Briefe nennt man Drawcalls ein Drawcall ist im Prinzip ein Informationen Packet das Informationen zum Thema: " Schatten, Licht und Mesh Informationen enthält.


    Grob gesagt werden 2 Basis Informationen übertragen:


    1. Informationen zu deinem Mesh
    2. Informationen zu deinem Material. (Textur)


    Aber auch Schatten und licht Informationen aber egal erstmal!


    1.Für dich heißt das nun das du so wenig Meshes wie möglich nehmen solltest, und deswegen ist es auch nicht sinnvoll den Boden aus 1000 einzelnen Platten zusammen setzen. Ich hatte ja bereits weiter oben erklärt wie ich Eckteile zu einem ganzen Objekt zusammen gesetzt habe.


    2.Die Anzahl der Materials. Nehmen wir an du hast 100 mal die selbe Wand du erstellt nun 100 mal ein Material mit der ein und der selben Textur und jedes Mesh bekommt seine eigene Textur. Dann muss der Postbote 100 mal laufen nur für die Material Bestellungen, wenn du nun noch 100 Meshes hast muss er nochmal 100 mal laufen für die Meshes. Rund 200 mal laufen nur für das eine Mesh das 100 mal als Klon exestiert und 100 mal für das Material das 100 mal als Klon exestiert.


    Vielleicht einfacher ist es deswegen eine Wand zu verwenden, und dieses Wand zu instanzieren und auch das Material immer wieder zu instanzieren. Dies tust du in dem du das Mesh + Material aus dem Projekt Ordner verwendest. Wenn du dein Mesh aus dem Content Browser verwendest wird es Automatisch instanziert und der Postbote muss statt 200 mal nur zwei mal für Mesh und Material laufen.


    Wenn ich jetzt den Boden/Decke mache soll ich also nicht die 2m x 2m Teile aneinanderreihen sondern eins verwenden und skalieren? Gleiches gilt für die 16m Wand - das 2m x 3m nehmen und skalieren? Oder gilt das skalieren nur für Boden/Decke? (wenn ja warum nur dafür und nicht für Wände)


    Weil Sleepy gefragt hat wo ich Licht gebaked habe....sollte ich den Raum komplett in Blender mit den Bauteilen zusammensetzen, verbinden und dann komplett in UE reinholen oder die Bauteile in UE reinholen und dort zusammensetzen?

    Am performanten ist es wenn du dein Level in der Engine als Instanz zusammensetzt und nicht das ganze Level aus Blender importierst. Zum rumprobieren und als Anfänger kannst du aber auch testweise dein Level Komplett in Blender zusammenbauen und so expotrieren. Performant ist das nicht und du wirst früher oder später sicherlich Probleme mit der Performance bekommen. (Wie gesagt zum rumtesten und rumprobieren kann man das machen wir gehen hier ja immer vom krassesten vom krasseten aus.


    Du brauchst als Anfänger vielleicht auch nicht jeden performance Ratschlag wissen du kannst dir vermutlich eh nicht alles merken.


    Das was ich gerade geschrieben habe ist auch schon wieder nur halb richtig weil hier noch Faktoren wie Camera occlusion Culling oder Frustum Culling Einwirkung haben. (Kannst ja mal im Wiki nachlesen)

    • Offizieller Beitrag

    ok - Wände also auch skalieren - wenn du jetzt eine Wand mit Tür hast - setzt du dann eine Wand und machst ein Loch rein mit "Differenz" oder setzt du "Wandteil" + "Wandteil mit Türloch" + "Wandteil"?

    So kann man das natürlich auch machen. Bei einer Tür verwendest du die Wand mit selber Textur und UV aber eben mit Loch. Bei Maja gibt auch Option "Preserve Uvs" dabei werden die UVs beim Skalieren ebenfalls nicht verzogen. (Gibts bei Blender sicherlich auch)
    Wenn du Wand + UV Fertig hast und das ist ganz wichtig machst du eine Checker Textur drauf um die Verzerrungen zu überprüfen. Danach fügst du zwei Edges vertikal und eine Edge Horizontal ein, du löscht die Faces und fertig ist das Loch für die Tür.

  • ..... oder setzt du "Wandteil" + "Wandteil mit Türloch" + "Wandteil"?

    Diese Variante auf jeden Fall. Auch den Teil mit Fenstern und Türen könnte man noch automatisieren. Aber das würd ich erst machen, wenn du die Basics verstehst.


    In die Mitte kommt der Mesh mit der Tür (Loch). Rechts und Links kommt ein Wandteil. Der PivotPoint kommt dann jeweils an die Außenseite. Musst nur eine Wand machen und kannst die im UE drehen. Wenn du jetzt skalierst, dann geht die skalieren nach außen. Das ganze lässt sich auch noch in einem BP mit einer mathematischen Funktion versehen.


    Fortgeschritten ist dann, wenn du auf die Wand ne Abschlusskante als serperatem Mesh aufsetzt und sich die Position der Abschlusskante in Relation zur Skalierung der Wand verschiebt, Was sich wiederum an allen Seiten der Wand realisieren lässt. Über ein Bool kann man dann die Abschlusskanten ein und ausblenden. Ist halt alles ne Frage von Mathematik. Beachten musst du bei der Erstellung des Meshes wo der PivotPoint gesetzt wird, weil von dem natürlich die Skalierungsrichtung ausgeht.


    Super fortgeschritten ist es dann, wenn du das noch mit Splines genererierst. So kann man über mathematische Funktionen und Splines ganze Häuser erstellen.


    Eine sehr schöne Node fürs Snapping mit Funktionen ist immer Distance. Auch solltest beachten, dass du in der UE ein Mesh Doppelklicken kannst und dann die Eigenschaften erhälst. Im unteren rechten Breich kann man dem Mesh noch Sockets verpassen, die im BP ausgelesen werden können, auch darüber lässt sich ein Snappingsystem erstellen, da du insbesondere die Position der Sockets auslesen kannst. Die UE lässt dich nämlich nicht die Abmaaße deines Meshes ohne großen Aufwand bestimmen.

  • Diese Variante auf jeden Fall. Auch den Teil mit Fenstern und Türen könnte man noch automatisieren. Aber das würd ich erst machen, wenn du die Basics verstehst.
    In die Mitte kommt der Mesh mit der Tür (Loch). Rechts und Links kommt ein Wandteil. Der PivotPoint kommt dann jeweils an die Außenseite. Musst nur eine Wand machen und kannst die im UE drehen. Wenn du jetzt skalierst, dann geht die skalieren nach außen. Das ganze lässt sich auch noch in einem BP mit einer mathematischen Funktion versehen.


    ....

    Du verwirrst mich mehr als dass du mir hilfst :-); Praktischer Ansatz: Blender Wand bauen und Wand mit Türloch....in Blender zusammensetzen und dann als ein Stück in UE importieren oder die 2 Einzelteile direkt in UE importieren und in UE zusammensetzen? Wenn ich in Blender die Einzelteile baue und in UE importiere und die dort zusammensetze - wie bekomme ich dann die Sicht-Kante weg die entsteht wenn ich 2 Teile aneinander stelle?

  • Woran willst du den die UVs anpassen ?

    Die UVWs werden an die Textur angepasst.



    Als das verstehe ich nicht warum brauchst du dafür eine Textur ?

    Man benötigt die Textur um im Viewport zu sehen wie die Textur am 3D Mesh sitzt und um die UVWs korrekt anpassen zu können.



    Wenn deine Wand später mal kachelbar sein soll, dann musst du 100% vom UV Space nutzen.

    Das ist absolut falsch. Man muss NICHT 100% der Textur nutzen um sauber tilen zu können.
    Ich stelle im 3D Programm die Anzahl der Wiederholungen der tileable Texture ein und passe dann die UVWs genauso an wie bei einer nicht getiledten Textur.
    In UE4 stelle ich die selbe Teilung ein.


    Könnte es sein das du den Colorid Workflow nicht kennst ?

    Gegenfrage, könnte es sein daß du dich mit dem Anpassen von UVWs nicht auskennst? (Nicht böse gemeint!!)
    Und ja, ich kenne DDO und NDO von Quixel mit dem Colorid Workflow wo Farbzonen am Mesh festgelegt werden welches das PS Plugin dann als Referenz nutzt.
    Ein exzellentes Tool. Nur meistens absoluter Overkill.



    Wenn du das anders machts, (was natürlich auch geht), dann hast du am ende 100 Wände mit jeweils 100 Texture

    Auch das stimmt nicht.
    Jede Wand hat ihr eigenes UVW Set.
    Somit kann ich jede Wand an die eine (1) Textur anpassen. Selbst wenn die Textur gekachelt ist.




    Hier ein einfaches Beispiel einer gebogenen Wand mit gekachelter Textur.
    Die UVWs habe ich grade gerichtet und somit folgt die UVW genau der Textur.
    Die Kachelung habe ich in diesem Beispiel abgeschaltet damit man den 1x1 UVW-Space deutlich sieht. (Wrap in U, Wrap in V).
    Die UVWs verlassen sogar den 1x1 UVW-Space, was aber UE4 egal ist.
    Auch für die Lightmap ist es egal da sie ja extra im 1x1 UVW-Space erzeugt wird.
    Arbeitsaufwand waren ca 4 Minuten. Quixel wäre hier wie gesagt Overkill.


    [/img]

  • Ich bin zwar Neuling - aber so wie ich das bei Unreal verstanden habe empfehlen die den Mesh + UV extern zu machen, die Materialien dann in der Engine.


    Ich mach das derzeit so, dass ich eine UV-Map mache, dann importiere und dann schaue welches Material ich drauf lege. Ggf. kann man das Material ja "machen", ich mache das gerade immer mit Crazybump möchte mir aber später auch den Designer zulegen, weil der wohl wesentlich besser ist. Oder mache ich da etwas grundsätzlich falsch?

    Du kannst das Mesh und die UVWs NUR extern machen da UE4 keine Modeling Software ist. Abgesehen von den Brush Klötzen.
    Worum es bei dieser Diskussion geht/ging ist die Herangehensweise zur pixelgenauen PLATZIERUNG der Textur.
    Es gibt 3 Möglichkeiten:


    1. Eine Textur in PS erstellen und danach ins 3D Programm laden. Dann im Texture Editor die UVWs unwrappen/unfolden und so anpassen, daß die Textur richtig am 3D Objekt sitzt.
    2. Oder umgekehrt im 3D Programm das Objekt unwrappen, eine UVW Maske exportieren, die Maske in PS laden und dann in den Zonen der UVW Islands zu malen/zeichnen/pasten etc.
    3. Im 3D Programm das Objekt unwrappen, in Mari, Mudbox,3DCoat,ZBRush or whatever laden und dort durch Projektion direkt in die UVW Islands zu malen.


    Du darfst eine Textur nicht mit einem Material verwechseln !!
    Ein Material benötigt nicht unbedingt eine Textur (z.B. Lack / Spiegel usw.), kann aber aus einer Vielzahl an Texturen bestehen die verschiedene Dinge steuern (Diffuse,Normal,Bump,Specular,Reflection,Refraction,Displacement,Ambient Occlusion etc.)

    • Offizieller Beitrag

    Gegenfrage, könnte es sein daß du dich mit dem Anpassen von UVWs nicht auskennst? (Nicht böse gemeint!!)

    Doch so hab ich vor jahren texturiert so wie du das machst, mache ich das schon lange nicht mehr. Bei einer Kachelbaren Textur ist das ja auch super Easy die Shells über den UV- Space rausragen zu lassen. Aber wie machst du das bei komplexen Modellen wo du du vielleicht 50 UV Shells hast wo alles durcheinander ist.


    Sorry aber das was ich oder Annubis geschreiben haben ist nicht falsch sondern einfach nur anderst wie du es machst, genau so wenig ist dein Workflow nicht falsch. (Richtig und falsch gibt es nicht)
    So wie du arbeitest arbeite ich schon lange nicht mehr ich finde auch nicht das der Painter oder Quixel Overkill ist.


    Ich bin allgemein auch kein Fan davon Fototexturen in Normals etc umzuwandeln ich erstelle meine Materials gerne komplett selber und ich stecke aus Spaß daran auch gerne Zeit rein.

  • @Annubis
    Ich habe mal versucht die Sache, so wie du es im Video beschrieben hast, nachzubauen.
    Das mit Blender war so weit klar. Nun wird es aber mit dem Material Editor kniffelig.
    Irgendwie bin ich dann doch an die zu benötigenden Parameter gekommen.
    Eine Fläche oben hat auch funktioniert (Screenshot) und sie lässt sich auch problemlos skalieren. Nun habe ich es so verstanden das ich für jede Fläche eine Kopie des Materials brauche in dem dann angegeben wird wo sich die Textur befindet.
    Das zweite Material kümmert sich aber auch nur um die Oberseite. Wo kann ich zuweisen welche Fläche (Koordinaten) genommen werden?
    Das ich so weit gekommen bin ist eher als Zufall als wirkliches Verständniss. :D

  • Sorry aber das was ich oder Annubis geschreiben haben ist nicht falsch

    Doch es ist falsch zu behaupten daß man um Kacheln zu können 100% des UVW Spaces benutzen muss. Das stimmt einfach nicht und ist nicht Fakt.
    Es ist auch falsch zu behaupten daß ein UVW Workflow wie ich ihn mache zu 100 Materialien bei 100 Objekten führt.


    Ich will hier nicht Klugscheißen, aber es ist einfach nicht Richtig falsches Wissen zu verbreiten.
    Beide Aussagen sind schlicht und einfach falsch.



    Auch ist es falsch zu behaupten daß dies ein alter Workflow ist den niemand mehr verwendet.


    Ich verwende alle 3 Workflows die ich oben genannt habe passend zur Situation.
    Je nachdem welcher schneller geht.
    Und zu 90% ist dies eben der UVW anpassen Workflow direkt im 3D Programm.


    Ich arbeite gerade an einem 3 stöckigen Gebäude mit momentan 4500 Objekten.
    Jede Wand ist anders, somit ist auch ein modularer Aufbau nicht möglich.
    Würde ich für jedes Objekt nach Photoshop wechseln müssen würde ich statt Monaten Jahre benötigen für diesen Auftrag.


    Zeit ist Geld. Das ist unbestreitbar.

  • Wenn du deine Wände usw. modular baust, musst du zwingend eine saubere 2te UVMap haben, ansonsten passiert genau das, was auf deinem Bild nach dem Bake zu sehen ist.
    Genau für dieses Problem habe ich einen Wiki Eintrag verfasst, der so auch von Epic Mitarbeitern beschrieben wurde.
    Einen anderen Lösungsweg habe ich bis jetzt noch nicht gefunden.


    Lightmap UV bei Modularen Modellen


    Ich persönlich nutze für mein Haus zum einen Modular aber auch ein komplettes Mesh für eine Wand. Kommt hier starkt drauf an was ich damit vorhabe.



    Zum Thema Texturieren und was jetzt richtig oder falsch bei UV´s ist, bitte einen seperaten Thread erstellen, ansonsten artet das hier aus ;)

  • @Annubis
    Nun habe ich es so verstanden das ich für jede Fläche eine Kopie des Materials brauche in dem dann angegeben wird wo sich die Textur befindet.

    Jup, alles richtig gemacht. Im zweiten Screenshot siehst schon, was du machen musst. In der Maske musste nur die Häckchen umverteilen, denn deine UVCoords liegen ja dann XZ bzw. YZ, verteil mal die Haken um und dann wird alles ordentlich skaliert.

  • Auch das stimmt nicht.Jede Wand hat ihr eigenes UVW Set.
    Somit kann ich jede Wand an die eine (1) Textur anpassen. Selbst wenn die Textur gekachelt ist.

    Vorsicht mit solchen Aussagen. Erstens impliziert meine Aussage, dass bei 100 zu 100 jedes material auf das Mesh gebaked wird und natürlich gehe ich davon aus, dass die Wände alle unterschiedlich sind. Andernfalls wäre die Aussage auch wenig sinnvoll.


    Zweitens habe ich nicht gesagt, das es nur einen einzigen Ansatz gibt. Das Netz ist voll mit Lösungen, wie man was zusammenbauen kann.


    Und Dritten schau ich in deinem Bild mal nich auf die Anzahl der Vertices, da wird mir schlecht. Meiner absolut persönlichen Meinung nach, definitiv für einfache geometrische Objekte nicht zu empfehlen. Das isn Overkill. Aber wirklich nur meine persönliche Meinung. Jeder soll so aufbauen, wie er am besten klar kommt und was auch auf sein eigenen Projekt passt. Da gibts einfach keine Patentlösung. Wenn das Ergebnis stimmt, dann ist der Weg relativ egal. Hier gibts nur Lösungsvorschläge und keine Stigmata. Also bitte unterlass solche Aussagen a la "auch das stimmt nicht"

  • Es ist auch falsch zu behaupten daß ein UVW Workflow wie ich ihn mache zu 100 Materialien bei 100 Objekten führt.

    Bitte beachte, dass Posts dem TO dienen sollen, Wenn ich etwas zu deinem Post sage, dann werde ich dich zitieren, was ich nicht getan habe. Das mein Post nach deinem kommt, liegt in der Chronologie und im Aufbau eines Forums. Also nicht immer gleich denken, dass sich jeder Folgepost auf deinen Post bezieht. Für sowas gibts die Zitierfunktion. Denn was du da sagst, hab ich nicht behauptet und werd ich auch nicht. Schließlich sind wir alle froh, wenn auf eine Frage verschiedene Lösungsansätze präsentiert werden. Da kann jeder und nicht nur der TO was lernen.

  • Wenn du das anders machts, (was natürlich auch geht), dann hast du am ende 100 Wände mit jeweils 100 Texturen, wobei jede Textur einer Wand zugeordnet ist und kaum etwas wiederverwendet werden kann. Das ist nicht nur aufwändig, sondern auch nicht wirklich performant.

    Okay, letzter Versuch.


    Da dieser Text an mich gerichtet war und ich ja derjenige bin der "es" anders macht entnehme ich daß mein Workflow (UVWs anpassen) bei 100 unterschiedlich geformten Wänden zu 100 Texturen führen würde.
    Auch sei keine Textur wiederverwendbar.


    Das ist grundlegend falsch da ein jedes Mauerelement welches unterschiedliche Formen haben kann ein eigenes UVW-Set und somit eigene UVWs hat.
    Somit kann ich die UVWs für jede Mauer einzeln anpassen obwohl jede mauer das gleiche Material verwendet.


    Jeder der etwas anderes behauptet blickt entweder nicht durch oder will Unwahrheiten verbreiten.
    Fakt bleibt Fakt, egal wie man es wendet.


    Jedes Objekt hat eigene UVWs, somit kann ich jedes Objekt mittels seiner eigenen UVWs an die eine (1) Textur anpassen.
    Und genau deshalb führt das nicht zu 100 Texturen sondern zu 1.


    Im Gegenzug dazu würde @Sleepy s Methode zu 100 Texturen bei 100 verschiedenen Wänden führen.



    Und Dritten schau ich in deinem Bild mal nich auf die Anzahl der Vertices, da wird mir schlecht.

    Diese Wand hat 480 Polygone und erstreckt sich über eine Länge von 22 Metern.
    Oben ist Wiese (begehbar) und unten ein Asphaltweg.
    Das kannst du natürlich nicht wissen.
    Würde ich weniger nehmen wäre die Silouette eckig statt rund wenn man von oben drauf schaut.
    Es ist für Archviz und muss gut aussehen.