Jump to content
Unity Insider Forum

Texturieren von Flächen


Wattsefakk

Recommended Posts

Schönen guten Abend.

Ich weiß nicht warum Unity das so umständlich macht oder ob ich einfach nur einen großen fehler gemacht habe. Habe in 3ds Max ein Raum gebaut mit Boden und den in Unity eingebaut. Der Boden besteht aus 3 Teilflächen da ich ja nicht überall den Boden überlappen lassen möchte. Nur jetzt macht Unity auf jeder dieser Teilflächen, die ich übrigens mit Boolean vereint habe, eine andere Skalierung der Textur. Ob ich Textur oder Material nehme ist egal beides sieht einfach kacke aus... hoffe ihr könnt mir helfen.

 

tempeltexturutl6va3ebd_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Modelle haben offensichtlich keine passenden UVW Koordinaten. Google das Thema mal, oder besser noch schau in die MAX Hilfe. Eventuell hatten deine Böden sogar richtige UVs, jedoch sind diese beim Vereinen zerstört worden. Halte ich für wahrscheinlich, denn sonst wäre Dir der Fehler bereits in MAX aufgefallen.

 

Warum Du erst drei Flächen erstellst und diese dann zusammen bringst erschließt sich mir nicht.

 

Der Boolean in MAX ist übrigens eine unsaubere Funktion, die MAX Anwender meiden wie die Pest. Zum zusammensetzen von Objekten ist die Anhängen Funktion in Netzt bzw. Poly ausreichend bzw besser geeignet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe die Flächen vereint da ich sie in unity ja sonst nicht vernünftig texturiert bekomme... bin da noch ziemlicher anfänger drin da die meisten Objekte von mir nur ein Paar Farben bekommen da ich es in einem Zeichenstil lassen will...

Texturieren mache ich aber in Unity und nicht in 3ds Max oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich will dir zeigen was du falsch gemacht hast:

 

1.

1).Nehmen wir mal an du hast eine Bodenplatte mit 100 * 100 cm

2).Nehmen wir an du hast eine Textur die 100* 100 Pixel groß ist.

 

Nun wäre es so das je 1cm ein Pixel auf deine Bodenplatte gezeichnet wird. (Soweit ist alles super)

 

2.

1).Nehmen wir mal an du hast eine Bodenplatte mit 100 * 200 cm (Deine Bodenplatte ist doppelt so breit wie lang)

2).Nehmen wir an du hast die selbe Textur mit 100* 100 Pixel groß ist.

 

Für die eine Seite kommen wie vorher 100 Pixel für 100 cm

Für die andere Seite kommen aber 100 Pixel für 200cm.

 

Ergo deine Textur ist gestreckt wie auf deinem Screenshoot.

 

Genau deswegen gibt es das UV-Mapping mit dem UV-Mapping definierst du in Max wo auf deinem Mesh welches Pixel hinsoll.

 

Das UV-Mapping funktioniert so das du dein Mesh wie ein Faltkaron aufschneidest und daraus 2D Flächen erstellst.

 

Siehe Bild: https://upload.wikim..._Unwrapping.png

 

1.Der Weiße Würfel ist dein Mesh

2.Die karierte Fläche ist deine Textur aus der eine 2D Fläche gemacht wird, so das du sie in Photoshop Texturieren kannst.

 

Tutorials findest du auf Youtube jede menge Googel einfach mal nach UV-Mapping und 3Dsmax.

 

Wenn du alles richtig gemacht hast musst du in Unity nur noch die Textur auf deinen Bodenziehen und du musst nichts mehr einstellen. Das Texturieren machst du in 3Dsmax und nicht in Unity.

 

Texturen sollten in Ihrer Größe im übrigen durch zwei teilbar sein.

Häufige Textur größen sind zb 512 *512, 1024 *1024, 2048*2048.

 

Bitte keine 100 * 100 Pixel Textur verwenden dann lieber eine 1024 Pixel Textur.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Texturieren gehört zum Erstellen des Modells dazu. Machst Du also unbedingt in MAX. In Unity muss das Modell nicht unbedingt mit der Textur zusammen ankommen, aber die Koordinaten müssen schon im Modell sein, sonst sitzt die Textur in Unity nur irgendwie, aber eben nicht korrekt.

 

Zum Erstellen der UVW Koordinaten kannst Du die Textur verwenden, die später in Unity drauf soll, und /oder Du machst eine sogenannte Checkermap drauf. In MAX eignet sich dazu ein Material mit der Map "Schachbrett". Ich benutze allerdings oft ein Kästchen Muster, das ich mir in Photoshop selbst gemalt habe. So machen es eigentlich alle 3D Leute.

 

Für einfache Objekte, wie z.B. Bodenplatten kannst Du den Modifikator UVW-Map verwenden, wahlweise mit der Einstellung Planar oder Quader. Für komplexe Objekte, wie zum Beispiel eine Charakter Figur benötigst Du den Modifikator UVW-Zuweisen, aber das ist dann schon wieder eine Wissenschaft für sich (Stichwort Unwrap). Jedenfalls aus Sicht eines Anfängers.

 

Video Tutorials findest Du beispielsweise, wenn Du bei YouTube nach MAX UVW suchst.

Text Tutorials findest Du über Google mit den gleichen Suchbegriffen.

 

...und Sleepy war mal wieder schneller. :-)

post-4421-0-90658800-1443998075_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

Hallo Zusammen,

 

ich habe ein paar Fragen zu diesem Thema:

 

1. Gibt es für C4D auch ein Modifikator?

2. Wenn ich eine Murmelbahn habe wie kann ich da eine Textur drauf ziehen, kann mir da jemand ein Tutorial empfehlen?

3. In Unity geht es ja nur mit UV mapping oder?

 

Mit freundlichen Grüßen

Dani

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es geht IMMER nur mit UV Mapping.

Nur eben NICHT in Unity, da muss das UV Mapping schon im importierten Objekt drin sein.

Gib mal bei Google "Cinema 4D uv mapping" ein. Da findest Du jede Menge Hilfe.

 

Also wenn ich das richtig verstehe.

Wenn ich ein Objekt in C4D erstelle, muss ich UV mapping dazu packen und in Unity importieren richtig?

Import in Unity mit *.fbx oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn ich das richtig verstehe

muss .dein Objekt muss UV mapped sein. Das bedeutet salop du machst von deinem 3D Objekt ein flache pattgebügelte 2D version ohne Überlappung Das musst du dir das so vorstellen wie ein Modell Bastelbogen .

Das Schnittmuster Blatt ist die UV das Bild darauf ist die Textur und zusammen gefaltet und geklebt ist es dein 3D Modell .

In Cinema gibt es wie in allen 3D Programmen extra dafür ein UV Tool damit setzt du nun an deinem Objekt Seams(Nähte) das es auch wie ein Schnittmuster flach ausgebreitet werden kann als UV map . Nur so weiss jedes Programm wie die Textur auf dem 3D Objekt sitzen muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja das weiß ich schon :D

 

Ich wollte bloß wissen wegen dem Satz von Ihm: Nur eben NICHT in Unity, da muss das UV Mapping schon im importierten Objekt drin sein.

Das hörte sich so an, als wenn ich das Objekt erstelle und dann gleich mit Textur importieren muss und nicht auch einzeln einfügen kann.

 

Aber trotzdem danke für die Info =)

 

Aber hätte dazu noch eine Frage, wenn ich jetzt eine Murmel bahn mache wie soll ich die dann aufklappen?

Die Bahnen verlaufen ja übereinander, bei einer Figur wäre es "einfacher" für mich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die UV Mapping Daten müssen in der FBX Datei enthalten sein. Die Textur importierst Du in Unity nach wie vor als Bilddatei.

Somit kannst Du zu jeder Zeit deine Textur durch eine andere austauschen. Zumindest bei einfachem UV Mapping. Die UV Daten gehören also zwingend zum Objekt, wie deine Konfektionsgröße zu deinem Körper gehört. Ob Du dann einen Pulli oder ein T-Shirt anziehst kannst Du täglich neu entscheiden. Hauptsache die Größe passt.

 

Ich habe keine genaue Vorstellung von deiner Murmelbahn, aber "aufklappen" klingt für mich so, als wäre das ganze Teil aus einem Stück. Das ist sowieso nicht Optimal. Besser wäre es, Du erzeugst zueinander passende Einzelteile. Ein Gerade, ein Kurve und eine Rampe. Dann kannst Du in Unity aus den Stücken eine komplette Bahn zusammen bauen.

 

Dadurch sparst Du jede Menge Geometrie UND Texturfläche, weil Du in Unity mit Kopien der importierten Teile baust. Das spart jede Menge Rechner Power, gibt Unity die Möglichkeit alle Objekt, die die Kamera gerade nicht sieht auszublenden und macht Dir vor allem auch das Texturieren der Teile viel einfacher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich wollte bloß wissen wegen dem Satz von Ihm: Nur eben NICHT in Unity, da muss das UV Mapping schon im importierten Objekt drin sein.

Das hörte sich so an, als wenn ich das Objekt erstelle und dann gleich mit Textur importieren muss und nicht auch einzeln einfügen kann.

 

Nein UVs und Texturen sind was total unterschiedliches:

 

Mit den UVs definierst du wo welches Pixel auf deinem Mesh hin soll. So faltest dein Mesh sozusagen auf so das daraus eine zweidimensionale fläche wird. Ähnlich wie bei einem Karton die du mit einem Messer so aufschneidest das du ihn flach auf einem Tisch ausbreiten kannst.

 

Wie Hirk schon sagte exportierst du dein Mesh zb als FBX in ein Externes Programm zb Photoshop, Quixel, Substance etc. Dort setzt du sozusagen deine Textur an die Stellen wo du deine UV ausbereitet hast. Sorry weiß nicht wie ich das anderst sagen soll.

 

Du exportierst dein Mesh aus deinem 3D Programm mit UVs aber ohne Texturen, dabei wird die UV automatisch mit exportiert.

 

Die UV musst du natürlich vorher erstmal im 3D Programm erstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So in der Art:

 

U steht die Horizontale und v für die vertikale eine UV-Map hat also im Prinzip zwei Dimensionen. Vergleich bar ist dies mit dem Koordinaten im 3D Programm X und Y wobei die Z Achse normalerweise die Tiefe ist.

 

Bei einigen 3D Programme sind Y und Z aber vertauscht, warum kann ich dir auch nicht sagen.

 

UVW besitzt dagegen drei Dimensionen und bezeichnen die Achsen XYZ

 

 

Normale verwenden die dritte Dimenson nicht da eine Textur rein 2D ist. Aber beispielsweise manche Shader arbeiten mit UVW.

 

Als UV wird eigenlich auch nicht direkt das aufgeklappte Objekt bezeichnet obwohl man das vielleicht schon so definieren könnte.

Vielmehr ist damit die Verteilung der Pixel gemeint.

 

Da Computer Informationen mit An oder Aus speichern ergibt sich daraus eine zweier Potenz du kennst das von Texturen die zb 256px, 512px, 1024 px usw groß sind. Diese nennt man auch Poweoftwo.

 

Deine Textur muss demnach Power of Two sein damit sie optimal den Speicher nutzen kann.

Würdest du eine Textur erstellen die zb nur 500px *500px groß ist, würde sie trozdem als 512 * 512 gespeichert werden.

Darum sollte man Power of Two immer voll ausnutzen da alles andere verschenkte Performance ist.

Man kann eben kein halben Informationen speichern :)

 

Deine UV-Map definiert diesen Poweroftwo bereich ob das mal eine 512px Textur wird oder eine 4096px Textur spielt keine Rolle. Da die Größe deiner UV immer im Verhältnis steht.

 

Ein Beispiel:

Du hast ein Plane erstellt diese ist 1024mm hoch und 512mm breit.

Verwendest du die UV nun als 1024px Map dann kommen in der Höhe 1mm pro Pixel

Als Breite verwendest du nur 512 pixel da deine UV Power of Two ist und du aber nur die Hälfte vom UV-Space nutzt.

 

Wenn du die UV nun aber als 2048px map nutzt, dann kommen 2 px auf 1mm.

 

Umso mehr Platz du also in der UV sparst umso eine höhere Auflösung bekommst du da mehr px auf einen mm fallen.

 

 

 

1, Du machst im 3D Programm deine UV

2.Du erstellst in Photoshop ein neues leeres Dokument das zb 1024*1024 px groß ist

3.Du exportierst dein UV Layoui in Photoshop

zb http://cdn.artstorm....n-uv-layout.jpg

 

Nun ist deine Textur eine 1k Textur mit 1024*1024 Pixel.

 

Wenn du aber in Photoshop ein neues Dokument mit 2048 * 2048 px erstellst und dort das selbe UV Layout reinlädst, dann hast du eine 2k Textur. Jeder mm bekommt somit mehr Pixel ab.

 

Deswegen spricht man bei Uvs auch von UV Koordinaten weil das UV-Mapping im Prinzip nichts anderes ist als das Festlegen von Koordinaten (Eine Tabelle) zwecks besserem Verständnis grafisch dargestellt wird als UVmap.

 

Ich hoffe du verstehst das einigermaßen :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bilder sagen mehr als tausend Worte!

 

Den Schatten habe ich, damit man das besser sehen kann, nachträglich eingefügt.

Zu sehen ist ein Screenshot aus Blender - links ist die XYZ-"Map", also die Information, wo sich jedes Vertex im Raum befindet. Rechts die UV-Map, auf der man sieht, wo sich jedes Vertex im UV-Space befindet. Auch im UV-Space ist die typische Test-Textur für UV-Maps.

Die markierte Fläche des Modells vorne findet sich in der UV-Map deutlich sichtbar wieder. Der Teil der Textur, auf der die Fläche dort liegt, wird quasi ausgeschnitten und auf die Fläche gelegt.

UV.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zur Frage, warum das UVW heißt:

 

Die Symbole X,Y und Z stehen für die Achsen innerhalb des Raumes im jeweiligen 3D Programm und sind unveränderlich.

Die Symbole U, V und W stehen für die Achsen auf dem Objekt und drehen sich mit dem Objekt mit, sind mit X,Y und Z nicht fest verbunden.

 

Die Buchstaben U, V und W werden also verwendet um klar zu machen, das zwar X, Y und Z Achse gemeint sind, jedoch nicht die des Raumes, sondern die auf dem Objekt. Theoretisch hätte man die auch Tick, Trick und Track nennen können.

 

Da die Z-Achse bei zweidimensionalen Abwicklungen nicht vorkommt, lässt man im Sprachgebrauch oft das W weg und spricht von UV-Mapping. Das bedeutet also nix Anderes als X(Objektspace)/Y(Objektspace)-Mapping.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So gar nicht !

 

Stell dir mal vor du verwendest eine 1k Textur, dann hättest du insgesamt 1024 Pixel zur Verfügung.

Jetzt überleg dir mal wie lang deine Bahn ist?

 

Das beste wird sein wenn du dir ein kleines Teilstück baust das im Verhältniss 1 cm lang ist. Von diesem kurzen Stück machst du nun die UV , und kopierst das Mesh ganz oft hintereinander und machst daraus eine Spirale zb mit einem Deformer.

 

Wenn dus clever anstellst dann baust dir dir eine Spirale so das die Spirale bei 0 grad anfängt und sich exakt 360 grad dreht. Somit kannst du viele kleine spiral teile übereinander setzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hätte mir ja erst mal ein gerades Stück gebaut, dieses texturiert und das DANN gebogen. Da ist mal wieder diese Religion im Spiel, die besagt erst komplett bauen dann texturieren. Bekomme ich immer wieder Bauchschmerzen von.

 

Und Sleepy hat völlig recht: Da sind etliche Wiederholungen in deinem Objekt. Da brauchst Du schon eine Textur die mehrere Millionen Pixel Kantenlänge hat damit das vernünftig aussieht. Ein Objekt mit einer Windung hätte gereicht. Alles Weitere dann als Kopie des fertigen Objektes.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok Danke für die Infos, werde alle mal Testen und schauen welches mir besser liegt.

 

Das mit dem UV Peeler hört sich gut an, aber ich habe leider nur die R15 Version.

 

Würde sau gerne updaten wegen vielen schönen Feature, aber ist mir im Moment zu teuer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...