Jump to content
Unity Insider Forum

Importieren eines komplexen texturierten Modells


NekrosMantis

Recommended Posts

Hi Leute,

ich habe in Blender ein Haus modelliert und (UV-)texturiert (mit Normal und manchmal Specularmap). :/

Ich wollte das in Unity importieren, aber es kam oft ohne Textur an, bzw fehlten Texturen.

Der Ordner in dem ich die Texturen aufbeware ist in Unity bereits vor dem Inportieren gewesen, daran liegt es nicht!

Nach einer Weile rumprobieren kamen zwar ein paar Texturen an, aber z.T. falsch gemappet!

Das Modell enthält 8 verschiedene Materialien, falls euch das hilft...

Was mache ich falsch? Danke im Vorraus! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit den 8 verschiedenen Materialien finde ich etwas heikel. Das Problem dabei ist, dass du in Unity einfach nur "8 Slots" für die Materialien hast, und da dann ziemlich aufpassen musst, dass du die richtigen Materialien in die richtigen Slots bekommst. Wenn du Unity die Materialien automatisch beim Importieren erzeugen lässt, und in Blender alles gut benannt hast, dürfte das auch kein Problem sein ... aber günstiger ist normalerweise, die verschiedenen Texturen letztlich auf eine zu baken, so dass du mit einem Material auskommst.

 

Das führt dann auch zu weniger DrawCalls bzw. ab Unity 5 "Batches", hat also eine positive Wirkung auf die Performance.

 

Da gibt es in Blender sicher auf Funktionen für (ich kenne ich aber in Blender nicht aus, daher kann ich dir nicht sagen, wie das genau funktioniert).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit den 8 verschiedenen Materialien finde ich etwas heikel.

 

Nicht unbedingt. Stell dir zum Beispiel ein Levelmesh vor, mit gekachelten Texturen. Von der Geometrieseite ist es besser das als ein Mesh zu haben damit man da keine Lücken bekommt. Und um die unterschiedlichen Materialien kommst du bei gekachelten Texturen nicht rum weil sich ein Texturatlas nicht kacheln lässt. Da macht dir spätestens das Mip Mapping einen Strich durch die Rechnung.

 

Ich wollte das in Unity importieren, aber es kam oft ohne Textur an, bzw fehlten Texturen.

 

In welchem Format? Unity läd ja auch Obj. Aber da zickt der Importer. Alles was über ein Material raus geht wird zerballert. FBX sollte aber ohne Probleme auch mit mehreren Materialien von Blender nach Unity gehen. Sofern alles richtig eingestellt ist. Das Blender Materialsystem ist da ja eine ganz besondere Geschichte ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

weil sich ein Texturatlas nicht kacheln lässt.

 

Da gibts ein paar Tricks:

1.Nehmen wir an du hasten einen Balken mit einem Textur Atlas. Die Textur willst du nun in der Länge kacheln so das sich die Balken Textur wiederholt. Dann kannst du die UV-Shell einfach in die Länge Skallieren. Die UV kann dann zb doppelt so groß sein wie der UV Bereich somit Kachelt sich die Textur 2 mal.

Die UV-Shell geht dann zwar über den UV Bereich raus aber das spielt keine Rolle. Vorrausetzung dafür ist das deine Balken Textur 100% der bereite des Textur Atlanten einnimmt.

 

2. Das selbe funktioniert auch mit einer Kachelbaren Textur. Du kannst zb Faces grösser Skallieren wie der UV bereich somit wiederholt sich die Textur auf dem Mesh auch. Wenn du die UV-Shells wie Memory kreuz und quer auf deinem UV Bereichi verteilst kannst du mehr Abwechslung bei der Textur Wiederholung erreichen.

 

Der Ordner in dem ich die Texturen aufbeware ist in Unity bereits vor dem Inportieren gewesen

 

Bin mir jetzt nicht sicher aber versuch mal folgendes:

1.Kopiere kopiere zuwest deine Textur in deinen Unity Ordner.

2.Geh in dein 3D Programm und weiße die Texturen von deinem Unity Ordner zu. (Nicht irgend wo von der Festplatte)

3.Dein Mesh in dein Unity Projekt rein speichern.

 

Nun sollte dein 3D Programm und Unity die selbe File Struktur haben und deine Texturen sollten erkannt werden. Dein Modell müsste dann sogar Fertig Texturiert in Unity angezeigt werden ohne das du die Textur Manuell zuordnen musst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

2.Geh in dein 3D Programm und weiße die Texturen von deinem Unity Ordner zu. (Nicht irgend wo von der Festplatte)

 

ok, das kann ich mal versuchen! Die Texturen zu kacheln mache ich bereits...

@Tiles Ich importiere über FBX

 

Das witzige ist, das es oft schon bei anderen Projekten geklappt hat...dass das Modell bereits vollständig texturiert ankam.

 

@Jashan...Alles korekt benannt! Sowohl Modelle als auch Materialien...Muss ich die Textur benennen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da gibts ein paar Tricks:

1.Nehmen wir an du hasten einen Balken mit einem Textur Atlas. Die Textur willst du nun in der Länge kacheln so das sich die Balken Textur wiederholt. Dann kannst du die UV-Shell einfach in die Länge Skallieren. Die UV kann dann zb doppelt so groß sein wie der UV Bereich somit Kachelt sich die Textur 2 mal.

Die UV-Shell geht dann zwar über den UV Bereich raus aber das spielt keine Rolle. Vorrausetzung dafür ist das deine Balken Textur 100% der bereite des Textur Atlanten einnimmt.

 

2. Das selbe funktioniert auch mit einer Kachelbaren Textur. Du kannst zb Faces grösser Skallieren wie der UV bereich somit wiederholt sich die Textur auf dem Mesh auch. Wenn du die UV-Shells wie Memory kreuz und quer auf deinem UV Bereichi verteilst kannst du mehr Abwechslung bei der Textur Wiederholung erreichen.

 

Du vergisst immer noch das Mip Mapping. Du bekommst dann da sichtbare Seams rein weil die Nachbarkachel reinblutet. Vielleicht noch nicht in der ersten Stufe, sofern du ein wenig Rand lässt. Aber genau dieser Rand führt dann auch wieder zu Problemen.

 

Und die zwei nötigen Zufälle, dass das Mesh zufällig nur in eine Richtung kacheln darf und der Texturatlas zufällig nur eine Kachel breit sein darf, sind mir dann doch zwei Zufälle zu viel ^^

 

 

Das komisch ist, dass Unity die Materialien z.T. mit Sonderzeichen umbenennt...

 

Da könnte der Hund begraben sein. Sonderzeichen und Umlaute solltest du vermeiden :)

 

Und wie Sleepy schon angemerkt hat, Texturen sollten im gleichen Level liegen wie die Datei.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok es funktioniert!

Danke an Alle, die geholfen haben. :) Ich hab -wie Sleepy vorgeschlagen hat- die Texturen aus dem in Unity befindlichen Ordner benutzt und die Texturen direkt ohne Unterordner in die Assets kopiert. Beides zusammen hat dazu geführt, dass es einwandfrei funktioniert!

Danke, man sieht sich! :D

N.M.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...