User Tag List

Ergebnis 1 bis 11 von 11

Thema: Blender: Texturauswahl beim Exporten geht schief

  1. #1

    Blender: Texturauswahl beim Exporten geht schief

    Hallöchen again,

    hab mich im Rahmen meines selbstauferlegten Auffrischungskurses mal an Blender gewagt und anhand der Tutorials hier ein einfaches Model inklusive UV-Mapping gewagt.
    Nachdem der Exporter irgendwann funktionierte und ich mir die Basics der QC-Formatierungen noch mal zusammengesucht habe, hab ich das Model schließlich ins Source-Format umwandeln können - nur leider ohne Texturen.
    Mir ist dann beim sichten der smd-File etwas aufgefallen:
    Der referiert überall auf eine "Material.001"
    Beispiel:
    version 1
    nodes
    0 "root" -1
    end
    skeleton
    time 0
    0 0 0 0 0 0 0
    end
    triangles
    Material.001
    0 -1.000000 1.500000 -0.050000 -0.577349 0.577349 -0.577349 0.998999 0.001001 0
    0 -1.000000 -1.500000 0.050000 -0.577349 -0.577349 0.577349 0.667668 0.332332 0
    0 -1.000000 1.500000 0.050000 -0.577349 0.577349 0.577349 0.998999 0.332332 0
    Material.001
    0 -1.000000 -1.500000 -0.050000 -0.577349 -0.577349 -0.577349 0.332332 0.001001 0
    0 1.000000 -1.500000 0.050000 0.577349 -0.577349 0.577349 0.001001 0.332332 0
    0 -1.000000 -1.500000 0.050000 -0.577349 -0.577349 0.577349 0.332332 0.332332 0
    usw.

    Als Textur verwende ich in Blender eine TGA mit 1024*2048. Name Holz_01.tga. Siehe Screenshot.
    Mit dem Material habe ich irgendwann in den ersten 5 Minuten Blender mal rumgespielt, verwende es aber nicht mehr. Trotzdem exportiert er mir immer wieder das falsche Material.
    Was geht da schief?
    Klicke auf die Grafik für eine größere Ansicht 

Name:	Blender_Material.jpg 
Hits:	41 
Größe:	201,7 KB 
ID:	6678


    EDIT: Und 5 Minuten später find ichs dann natürlich selbst. Wie es halt immer so ist.
    Falls mal jemand ähnliche Probleme hatte: Im Source-Engine Exporter das Häkchen setzen bei "Ignore Blender Materials"
    Geändert von Kloetengott (15.04.2016 um 15:12:30 Uhr)

  2. #2
    Administrator Avatar von DaEngineer
    Registriert seit
    23.06.2010
    Beiträge
    1.575
    Blog-Einträge
    2
    Renommee-Modifikator
    20
    Der Name der Textur ist für den Export egal, aber der Name vom Material auf dem Mesh muss der gleiche wie im QC File sein. Du kannst in Blender eine Textur auf einem Mesh anzeigen lassen, ohne ein richtiges Material zu benutzen. Das ist bei dir wahrscheinlich passiert und führt zu Verwirrung.

    Wähl deinen Tisch aus und klick rechts in der Propertyleiste auf das Materials Tab. Da erstellst du ein neues Material und gibst ihm den gleichen Namen wie in dem QC File.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	material.jpg 
Hits:	55 
Größe:	119,6 KB 
ID:	6679

    Damit bist du für den Export abgesichert. Wenn du deine Textur richtig zuweisen willst und auch eine Normal Map darstellen möchtest, musst du das folgendermaßen tun:

    Wenn du das Material erstellt hast, klick auf das rot-weiße Schachbretticon direkt rechts neben dem Materialreiter und klick da auch noch einmal auf New, um dem Material ein neues Bild zuzuweisen. Es entstehen dann viele neue Optionen, eine davon ist die Kategorie Images. Da kannst du mit einem Klick auf das Symbol links neben "New" deine Textur zuweisen. Wenn du noch keine Textur geladen hättest, kannst du sie über den "Open" Button auch reinladen. Dann musst du im Viewport N drücken, um das Menü für 3D Optionen rechts an der Seite zu öffnen. Da gibt es die Kategorie Shading, die du von Multitexture auf GLSL umstellst. Stell deinen Viewport dann von Solid auf Material um, das geht mit einem Klick auf die kleine weiße Kugel unten in der Toolbar vom 3D Viewport rechts neben dem Object/Edit Mode Setting oder durch Drücken von Alt+Z. Dein Objekt wird dann schwarz sein, falls du keine Lichter in deiner Szene hast. Du kannst welche im Object Mode mit Shift+A => Lamp hinzufügen. Zum Arbeiten sind Hemi Lights gut.

    So lange du deinen Viewport auf Multitexture eingestellt hast, zeigt Blender auf deinem Objekt immer die Textur an, die du im UV Editor einem Face zugewiesen hast. Im GLSL werden die Materialien und deren Einstellungen richtig dargestellt. Wenn du Objekte in irgend eine Engine exportieren oder in Blender rendern möchtest, wirst du immer mit GLSL arbeiten müssen, weil das Anzeigen der im UV Editor zugewiesenen Texturen eine blenderinterne Funktion ist, die nicht auf dem Objekt ankommt. Ich stelle mir meine Standardszene deshalb immer schon auf GLSL um, damit ich das nicht jedes Mal machen muss.

  3. #3
    Oh man, das muss man erstmal wissen...
    Mit "mal eben auffrischen" wird das bei nem kompletten Wechsel in ein neues Tools wohl nichts :-)
    Sehr Schade das XSI die Pforten dichtgemacht hat.

    Aber sag mal warum kann ich zu Mappingzwecken nicht meine Lösungsmethode verwenden kann?
    Umgeht das Häkchen bei dem Exporter denn nicht genau das Problem, mit den nicht wirklich zugewiesenen Materials?
    Zumindest hatte das für meine Zwecke grad funktioniert.

    Und wenn ich noch eine zweite Frage hinten drankleben darf:
    GIbt es eigentlich auch Möglichkeiten das UV-Mapping von vornherein ein wenig Intelligenter zu machen?
    Wenn wir mal am Beispiel Tisch bleiben, siehst du ja in meinem Screenshot, dass die Voreinstellungen aus der Platte zB. 6 gleich große Rechtecke aus der Tischplatte macht und die einfach nebeneinander auf die Textur legt.
    Zum einen hat das Objekt ja nur zwei große Rechtecke und 4 sehr schmale, ich hätte also eine logischere Größeneinsteilung auf der UVerwartet. Zum anderen wärs natürlich für diese Art der Textur sinnvoll, die Platten auf die ganze Textur auszubreiten und die kleineren Seitenstücke nur auf schmalerem Streifen auf der selben Länge darüber zu legen.
    Gibt es da Möglichkeiten oder Tools, die das etwas "Intelligenter" können, oder ist da immer Handarbeit gefordert?

  4. #4
    Administrator Avatar von DaEngineer
    Registriert seit
    23.06.2010
    Beiträge
    1.575
    Blog-Einträge
    2
    Renommee-Modifikator
    20
    Zitat Zitat von Kloetengott Beitrag anzeigen
    Mit "mal eben auffrischen" wird das bei nem kompletten Wechsel in ein neues Tools wohl nichts :-)
    Leider nein, aber die Lernkurve bei Blender ist sehr steil.

    Zitat Zitat von Kloetengott Beitrag anzeigen
    Aber sag mal warum kann ich zu Mappingzwecken nicht meine Lösungsmethode verwenden kann?
    Umgeht das Häkchen bei dem Exporter denn nicht genau das Problem, mit den nicht wirklich zugewiesenen Materials?
    Zumindest hatte das für meine Zwecke grad funktioniert.
    Wenn das funktioniert, spricht überhaupt nichts dagegen. So lange du weißt, was du tust und was im Hammer ankommt, kannst du das machen wie immer du möchtest.

    Zitat Zitat von Kloetengott Beitrag anzeigen
    Wenn wir mal am Beispiel Tisch bleiben, siehst du ja in meinem Screenshot, dass die Voreinstellungen aus der Platte zB. 6 gleich große Rechtecke aus der Tischplatte macht und die einfach nebeneinander auf die Textur legt.
    Zum einen hat das Objekt ja nur zwei große Rechtecke und 4 sehr schmale, ich hätte also eine logischere Größeneinsteilung auf der UVerwartet. Zum anderen wärs natürlich für diese Art der Textur sinnvoll, die Platten auf die ganze Textur auszubreiten und die kleineren Seitenstücke nur auf schmalerem Streifen auf der selben Länge darüber zu legen.
    Gibt es da Möglichkeiten oder Tools, die das etwas "Intelligenter" können, oder ist da immer Handarbeit gefordert?
    Dass die Größenrelationen falsch sind, liegt an der Skalierung deines Objekts. Ich hab geahnt, dass das Problem auftreten wird, als ich das Tutorial geschrieben hab, aber ich bin noch nicht zum UV Tutorial gekommen. Du kannst Objekte auf zwei Arten skalieren, nämlich im Object und im Edit Mode. Wenn du ein Objekt im Object Mode skalierst, wird die Skalierung wie eine Art Modifier auf das Mesh gelegt und kann auch wieder zurückgesetzt werden. Ob ein Mesh skaliert ist, siehst du im 3D View im N Menü im Transform Abschnitt bei Scale. Falls die Werte nicht alle 1 sind, werden alle Meshoperationen verzerrt. Das merkt man bei einem Bevel (im Edge Modus Strg+B) ganz gut. Bei UVs passiert das gleiche. Deshalb vorm Unwrappen immer das Mesh auswählen und Strg+A => Apply Scale auswählen. Im Edit Mode gibt es diese Art von SKalierung nicht, da wird alles direkt im Mesh angewendet.


    Außerdem solltest du dir Seams an den Kanten deines Meshes setzen, damit diese Kanten beim Unwrappen auseinandergeschnitten werden. Das geht über Strg+E => Mark Seams im Edge Modus. Wenn du dann mit U => Unwrap dein Mesh unwrappst, werden die Faces abgerollt und an den von dir markierten Stellen getrennt. Mit Strg+P kannst du markierte UV Islands im UV Editor automatisch packen und nach Wahl auch rotieren lassen. Wenn du die Settings dafür nicht siehst, öffne im UV Editor mit T das linke Panel und schau mal unten links rein. In diesem T Panel sieht man unten links immer Parameter für die zuletzt ausgeführte Aktion, den Dialog kann man auch mit F6 öffnen.

    Wenn du sehr komplexe Layouts hast, kannst du sie mit IPackThat packen lassen. Ich mach da an dieser Stelle einfach mal ganz dreist Werbung für, weil das Ding ohne jede Übertreibung der beste UV Packer der Welt ist. Blender und alle anderen 3D Programme können UV Islands nur nach Bounding Box packen, weshalb Zwischenräume oft nicht ausgenutzt werden. Da musst du dann entweder von Hand puzzlen oder dir den Packer holen, falls dir das zu blöd ist.

  5. #5
    War tatsächlich die Sache mit dem Scaling.
    Danke, der Hinweis hat geholfen. Jetzt sehen die UVs zumindest nach passender Relation aus.
    Das mit dem zurechtrücken, vergrößern und drehen etc. kenne ich ja noch aus XSI. Das hatte ich auch schonmal per Hand gemacht. Wollte in dem Beispiel nur zeigen wie unschön es die Automatik gemacht hat.
    Habe vorhin auch mit Seams gearbeitet, das Prinzip hab ich verstanden, aber trotzdem Danke für die Erklärung :-)
    Hatte es jetzt nur in meinem Negativbeispiel nicht mehr angefasst.

    Den Packthat schau ich mir gleich mal an. Auch da Danke für den Hinweis.

  6. #6
    Stammgast Avatar von Josch
    Registriert seit
    19.06.2010
    Ort
    Dresden, Wunschheimat: Padua
    Beiträge
    1.323
    Renommee-Modifikator
    19
    Mal ne kurze Frage zum IPackThat: Arrangiert der jetzt tatsächlich "nur" die Islands im UV-Raum? Oder hat man auch Einfluss darauf, wo jetzt Seams gesetzt werden?
    Ich nutze zum Unwrappen immer 3DCoat (oha, ich sehe gerade, dass das bei Steam 100 € kostet??? Ich bin mir sicher, dass ich's damals für 50 gekauft hatte... Hmm, war vllt. ein Sale...) und bin von den UV-Unwrap-Funktionen echt begeistert.. Irgendwie finde ich halt den Preis vom IPackThat echt hoch, oder täuscht das?
    EDIT: Hier sieht man bisl, wie das im 3DCoat läuft, so ab ein paar Minuten, wenn er seinen Klopps dort importiert hat)
    Nur Puffin schenkt mir die Kraft und Ausdauer, die ich brauche!

  7. #7
    Wenn ich noch mal eine Frage nachwerfen darf:
    Ich hab jetzt am Tisch noch ein wenig mit Subdivide und Bevel rumgespielt, Im Blender gefällt mir das Ergebnis schon ganz gut.
    Nur nach dem Kompilieren nach Source siehts ziemlich billig aus. Speziell an den abgerundeten Kanten ist irgendetwas schief gelaufen.

    Gibts da Tipps oder ne Best Practice für sowas?
    Oder eignet sich Source schlicht und ergreifend nicht für solche Übergänge?

    Klicke auf die Grafik für eine größere Ansicht 

Name:	Tisch_Blender.JPG 
Hits:	43 
Größe:	66,0 KB 
ID:	6680Klicke auf die Grafik für eine größere Ansicht 

Name:	Tisch_Source.JPG 
Hits:	50 
Größe:	57,6 KB 
ID:	6681


    Edit: Und Sorry Josch, wollte dich nicht abwürgen :-)

  8. #8
    Administrator Avatar von DaEngineer
    Registriert seit
    23.06.2010
    Beiträge
    1.575
    Blog-Einträge
    2
    Renommee-Modifikator
    20
    @Josch: Ja, IPackThat ist nur zum Packen gedacht. Komfortfunktionen da sind z.B., dass übereinanderliegende Islands automatisch erkannt und auch übereinanderliegend gepackt werden, was bei gespiegelten Objekten wichtig ist. Außerdem gibt das Programm exakt an, wie viel Raum vor und nach dem Packen ausgenutzt wurde. Es gibt Einstellungen dafür, wie viel Platz zwischen den Islands und zum Texturrand bleiben soll und wie genau gepackt werden soll. Das Ganze läuft über Brute Force Versuche, bei denen immer und immer wieder gepackt und das beste Ergebnis automatisch gespeichert wird. Gerade große Studios haben schon massiv davon profitiert, dass man beliebig viele Meshes im Batch reinwerfen kann, die dann vollautomatisch gepackt und exportiert werden. Das ist fürs Hobby eher uninteressant, aber wenn die Rede von 500 Meshes ist, ist das schon enorm lukrativ. Falls sich jemand von euch das Tool holt, könnt ihr mir gerne auch Feedback oder Anregungen dazu schreiben, ich hab den Entwickler einen Raum weiter sitzen

    3D Coat scheint aber auch nicht nur stumpf nach Bounding Box zu gehen, da liegen auch Islands in der Bounding Box von anderen Islands.
    @Kloetengott: Hast du in Blender Smooth und Flat Faces benutzt (Strg+F => Shade Smooth / Shade Flat)? Das ist eine Möglichkeit, harte Kanten zu erzeugen. Bessere Kontrolle gibts noch mit Sharp Edges. Dabei stellst du erstmal alle Faces auf Smooth, klickst rechts im Properties Panel auf Data (das ist das Dreieck mit den drei Vertices) rechts neben dem blauen Modifier Schraubenschlüssel und aktivierst Auto Smooth mit 180°. Im Edge Modus kannst du dann mit Strg+E => Mark Sharp einzelne Edges als scharf markieren und damit deine harten Kanten definieren. Wenn Source nur mit Flat und Smooth Faces nicht klarkommt, sollte es mit den Sharp Edges gehen. Das kommt eigentlich aufs Selbe raus, aber du kannst ohne Sharp Edges viele Dinge nicht bewerkstelligen, wie etwa mehrere Polystreifen mit harten Kanten nebeneinander, die zusammen aber smooth sind. Wenn du in Source keinen Specular auf deinem Mesh hast, wirst du aber vermutlich so oder so nichts von den weichen Kanten sehen können, weil die erst durch die Reflexion wirklich deutlich werden.

  9. #9
    Specular hätt ich schon auf den Tisch gemacht.
    Hatte gehofft die billige Textur wirkt durch Hochglanz dann etwas hochwertiger.
    Das mit den Edges werd ich mal ausprobieren.
    Ich bastel jetzt erst einmal an einem anderen Objekt.

    Ich weiß übrigens wo du arbeitest und beneide dich ein wenig um den Job. Ich wollte mich da vor ein paar Jahren selbst mal bewerben, aber die Umstände haben mich dann in eine andere Richtung geführt :-)

  10. #10
    Stammgast Avatar von Josch
    Registriert seit
    19.06.2010
    Ort
    Dresden, Wunschheimat: Padua
    Beiträge
    1.323
    Renommee-Modifikator
    19
    Zitat Zitat von DaEngineer Beitrag anzeigen
    @Josch: Ja, IPackThat ist nur zum Packen gedacht. Komfortfunktionen da sind z.B., dass übereinanderliegende Islands automatisch erkannt und auch übereinanderliegend gepackt werden, was bei gespiegelten Objekten wichtig ist. Außerdem gibt das Programm exakt an, wie viel Raum vor und nach dem Packen ausgenutzt wurde. Es gibt Einstellungen dafür, wie viel Platz zwischen den Islands und zum Texturrand bleiben soll und wie genau gepackt werden soll. Das Ganze läuft über Brute Force Versuche, bei denen immer und immer wieder gepackt und das beste Ergebnis automatisch gespeichert wird. Gerade große Studios haben schon massiv davon profitiert, dass man beliebig viele Meshes im Batch reinwerfen kann, die dann vollautomatisch gepackt und exportiert werden. Das ist fürs Hobby eher uninteressant, aber wenn die Rede von 500 Meshes ist, ist das schon enorm lukrativ. Falls sich jemand von euch das Tool holt, könnt ihr mir gerne auch Feedback oder Anregungen dazu schreiben, ich hab den Entwickler einen Raum weiter sitzen

    3D Coat scheint aber auch nicht nur stumpf nach Bounding Box zu gehen, da liegen auch Islands in der Bounding Box von anderen Islands.
    Danke für's Erläutern. Stimmt - in so einem großen Rahmen scheint das dann wirklich extrem wertvoll, wenn man sich auf die Software verlassen kann, dass sie halt alle optimal bearbeitet und ausspuckt!
    Wie genau 3DCoat beim Packen dann vorgeht, weiß ich nicht. Gefühlt ist die Platzausnutzung nicht immer optimal, da arbeite ich oft im XSI nochmal etwas nach. Finde es halt aber toll, wie superflexibel und vor allem schnell man stretchingfreie UVs auch von komplizierten Gebilden erzeugen kann.
    Nur Puffin schenkt mir die Kraft und Ausdauer, die ich brauche!

  11. #11
    Administrator Avatar von DaEngineer
    Registriert seit
    23.06.2010
    Beiträge
    1.575
    Blog-Einträge
    2
    Renommee-Modifikator
    20
    Ich hab gerade noch zwei sehr gute Tutorials zum Thema UVs entdeckt, die man sich wirklich ansehen sollte. Hab dabei selber noch was gelernt, obwohl ich die Tools seit Jahren regelmäßig benutze. Da wird auch der Multitexturemode erwähnt, den ich kurz angeschnitten hatte. Im ersten Video sagt er, dass das durch den Modifier erzeugte UV Layout nicht exportiert werden könnte. Das stimmt so nicht ganz, weil das Layout benutzbar wird, sobald man den Modifier anwendet. Dann kann mans auch exportieren. Ich bin beim Schauen noch auf das UV Boxmapping Addon gestoßen, das sehr nützlich für Blockouts ist, wenn man die Methode aus dem ersten Video nicht benutzen möchte. Ich hab mir das Boxmapping auf eine Taste gelegt (geht über einen Rechtsklick auf jeden Button in Blender, funktioniert auch in Menüs), damit kann ich mein Mesh dann immer mit einem Tastendruck updaten und muss mich nicht um kaputte UVs bei Blockouts kümmern.



    Die Videos stammen von cgmasters.net, einer Videotutorialseite, die sich ausschließlich mit Blender beschäftigt. Da gibts sehr viele kostenlose Tutorials und auch welche zu kaufen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
[email protected]addr.es