3D Forum > beim Import von 3ds fehlen Texturen

beim Import von 3ds fehlen Texturen

26.03.2013 13:14
 
Mel.Di. 26 Mär. 2013, 13:14 Uhr
Guten Tag,

ich bin dabei, ein Projekt mit Sweet Home 3D zu erstellen.
Hierfür habe ich mir diverse 3D-Modelle (Möbel etc.) heruntergeladen.

Viele dieser 3D-Modelle wurden als .3ds Datei mit einer dazugehörigen .png Datei (beides zusammengepackt als .zip) zur Verfügung gestellt.
Wenn ich die .3ds Datei nun aber im Programm importieren möchte, fehlen anschließend die Texturen (eben diese .png Datei).

Mit Blender und SketchUp habe ich auch keinen Erfolg - gleiches Ergebnis.

Auch wenn ich die .png in eine .jpg konvertiere klappt es nicht.

Gibt es da einen Trick, wie ich eine .3ds Datei inklusive der Textur importieren kann?

(Für den späteren Import in Sweet Home 3D werden folgende Formate unterstützt: OBJ, DAE, 3DS, LWS)


Würde mich über hilfreiche Tipps freuen.
Grüße
Mel.
mp5gosuDi. 26 Mär. 2013, 14:14 Uhr
Liegen die Texturen im selben Ordner, wie die 3D-Daten?
Werden die Materialien mit importiert?
Normalerweise sollte ein einfaches neues Verknüpfen der Texturen in den Materialien reichen.
Mel.Di. 26 Mär. 2013, 14:55 Uhr
Die beiden Dateien (.3ds und .png) liegen auf dem Desktop (und somit im selben Ordner).

Ob die Texturen mit importiert werden, ist mir leider nicht bekannt. Beim Import kann ich immer nur eine Datei (die .3ds) auswählen.
Ich bezweifele aber, dass die Texturdatei mit importiert wird. Da wird vermutlich das Problem liegen.

Normalerweise sollte ein einfaches neues Verknüpfen der Texturen in den Materialien reichen.

Wie kann ich das denn machen?
In SketchUp habe ich schon einiges durchsucht, aber nichts in der Richtung gefunden.

In Blender habe ich auch schon geschaut, war aber von der komplexen Programmvielfalt erschlagen.
mp5gosuDi. 26 Mär. 2013, 19:22 Uhr
Das kann man so nicht sagen. Da gibts ne Menge Fehlerquellen. Die Texturnamen sollten vom Exporter normalerweise auf 8 Zeichen gekürzt und exportiert werden. (3ds Standard)
Die Materialien musst du in der Zielsoftware prüfen (ob sie überhaupt mit exportiert wurden). In der Regel gibts da ein Standardmat. In diesem Mat sollte in den entsprechenden Slots die Namen der Textur auftauchen. Ist dies nicht der Fall, die Exporteroptionen anpassen oder nen anderen Exporter nutzen.

Aber eigentlich reichts aus, das Mat zu selektieren und im jeweiligen Slot die Textur neu auszuwählen.
Mel.Di. 26 Mär. 2013, 21:19 Uhr
Ich kann dir leider nicht folgen.
Können wir das mal an einem konkreten Beispiel versuchen.

Ich habe z.B. ein Monitor 3D Model (http://archive3d.net/?a=download&id=3c719796).
Wenn ich das herunterlade, erhalte ich eine .3ds-Datei und eine .png-Datei.

Mein Ziel ist es jetzt, die .3ds-Datei mit der Textur der .png-Datei zu verbinden und dann in eine .dae-Datei zu exportieren (ich denke und hoffe mal, dass ich diese .dae-Datei dann ohne Probleme in Sweet Home 3D importieren kann.)



P.S. wenn ich hier mit dieser Art von Problemen falsch bin, dann bitte ich um kurze Info
mp5gosuDi. 26 Mär. 2013, 22:25 Uhr
Ich kenne Sweet Home 3D nicht. Aber grundsätzlich ist das wie in jeder Software: Du erstellst in Sweet Home 3D ein Material und weist es dem Objekt zu (sofern das Mat nicht mit importiert wurde).
In diesem Material kannst Du in den Diffuse Slot (evtl. heißt er auch anders) eine Textur laden. Ob SW3D PNGs unterstützt weiß ich nicht, gehe ich aber mal von aus. Und das wars auch schon.
Mel.Mi. 27 Mär. 2013, 06:48 Uhr
Also Sweet Home 3D ist in Sachen Import ein wenig eigenwillig.
Ich vermute, dass ich in dem Programm die .3ds und die Textur .png nicht zusammenführen kann (ich habe es zumindest noch nicht rausgefunden.)

Deswegen würde ich für das Verbinden der Textur mit dem Objekt ein anderes Programm verwenden.
Bisher könnte ich z.B. SketchUp oder Blender vorschlagen. Gerne aber auch jedes andere (Freeware)Programm.
Und damit würde ich dann das fertige Objekt inkl. Textur als .dae exportieren.

Meine Erfahrungen sind nämlich, dass ich eine .dae-Datei mir enthaltener Textur problemlos in Sweet Home 3D importieren kann.
TilesMi. 27 Mär. 2013, 09:10 Uhr
Die verlinkte Datei existierte beim ersten Versuch nicht. Und beim zweiten Mal bekam ich nen Daily Download Limit exceeded error. Und die erscheint jetzt überall, egal was ich versuche. Ich fürchte du musst ne andere Beispieldatei von einem anderen Anbieter wählen. Der is ja mal so richtig Mist smile

Tja, ohne Beispiel kann ich da nur ins Blaue raten. Und vermute einfach mal dass der Pfad der zur Textur führt absolut ist. Und der stimmt nur auf dem Rechner wo er erstellt wurde. Da musst du also irgendwie den Texturpfad ändern.

Das Problem ist, je mehr Programme du hier ins Spiel bringst desto verzwickter wird es. Klar kann man das 3DS in Blender laden. Und da dann die Textur fixen. Das ist aber leider nicht so einfach weil der Materialeditor von Blender einfach gichtlich zu bedienen ist. Das ist nicht mal eben erklärt. Das ist leider nen grösseres Tutorial. Auch wenn es im Grunde nur die von mp5gosu beschriebenenen Schritte sind. Material anlegen, zuweisen, Textur zuweisen. Blender ist da ein wenig speziell, seufz ...

Hm. Mach mal folgendes. Mach mal das 3DS mit dem Editor auf und schau ob der Text lesbar ist. Wenn ja suchst du mal nach deiner Textur. Wenn da sowas hier steht:

C:meinordnerUSERmeinunterordnermeinetextur.bmp

dann ist das ein absoluter Pfad. Den musst du relativ machen. Alles wegschnitzeln was Pfad ist:

meinetextur.bmp

Nächste Idee wäre das Ding mit Blender zu laden, als Obj zu speichern. Obj deswegen weil es in jedem Fall eine Textdatei ist. Und die lässt sich leicht manipulieren.

Obj schreibt ja zwei Dateien. Eine *.obj Datei, und eine *.mtl Datei. In der *.mtl Datei steckt das Material und die Info welche Textur verwendet wird. Die *.mtl Datei mit dem Editor aufmachen, und schauen ob es da einen Eintrag namens map_kd gibt. Der wird vermutlich fehlen weil die Textur ja nicht läd. Den kannst du aber anlegen. Das heisst, wenn nicht auch das Material verloren gegangen ist smile

Gehen wir mal davon aus dass das Material existiert. Das siehst du am newmtl Eintrag, siehe unten. Dann musst du einfach unterhalb vom d Eintrag das hier dazuschreiben:

map_Kd meinetextur.bmp

Komplett sähe das Ganze in der MTL Datei zum Beispiel dann so aus:

newmtl Cylinder
Ns 0
Ka 0.000000 0.000000 0.000000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
d 1.0
map_Kd meinetextur.bmp


Sollte der map_Kd Eintrag schon existieren und du liest da den absoluten Pfad wäre wieder das Spielchen vom einkürzen fällig. Relativ machen.

Das wären jetz mal die schnellsten Möglichkeiten. Falls das nichts hilft musst du dich doch mit dem Materialeditor von Blender auseinandersetzen. Aber jetzt probier erst mal das hier smile
Mel.Mi. 27 Mär. 2013, 11:02 Uhr
Danke für die ausführliche Antwort.

Ich möchte zunächst mal mein "Missgeschick" mit dem Link wieder gerade biegen
Zu finden wäre das Objekt unter
--> http://archive3d.net/
--> oben in der Suche "Monitor" eingeben
--> anschließen oben links den Suchfilter von 'Web' auf 'Bild' stellen
--> dann ist es auf Seite 2 der Apple-Monitor mit dem lila Desktophintergrund.

Mit dem absoluten und relativen Pfad klingt einleuchtend.
Ich habe die .3ds-Datei mal mit dem Editor geöffnet. Du meinst doch den Windowseigenen Editor, oder? Damit werden mir nur unendlich viele kryptische Zeichen angezeigt.

Zur nächsten Idee:
In Blender importiert und als OBJ gespeichert und dann die .mtl mit dem Editor geöffnet.
Folgendes ist darin zu finden:
# Blender MTL File: 'None'
# Material Count: 5

newmtl 01_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.709020 0.709020 0.709020
Ks 0.147059 0.147059 0.147059
Ni 1.000000
d 1.000000
illum 2

newmtl 03_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2

newmtl 07_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.367059 0.367059 0.367059
Ks 0.319608 0.319608 0.319608
Ni 1.000000
d 1.000000
illum 2

newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2

newmtl Material_#351
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2

Kannst du was damit anfangen? Ich nämlich nicht

Ich habe einfach mal ganz naiv versucht, unter allen Zeilen 'd 1.0' die Zeile 'map_Kd #Name#.png' einzufügen.
Das hat aber auch nichts gebracht.


Ich bin ja schon recht ehrgeizig in solchen Beziehungen. Aber wenn das jetzt zu kompliziert wird, sprich: wenn der Aufwand den Nutzen übersteigt, dann hake ich das ab.
Ich würde dann im Internet andere 3D Modelle, vorzugsweise im Format .dae, suchen und verwenden.
TilesMi. 27 Mär. 2013, 13:05 Uhr
Ja, kann ich

Das jetzt a bissi doof. Weil da gibts fünf Materialien. Aber auch das ist kein Beinbruch. Und das Prinzip ist das Gleiche. Nur halt für fünf Materialien statt für eins. Arbeitest halt zuerst mit fünf Dummytexturen, und tauschst dann die Texturen nach und nach aus smile

Wie gesagt muss das map_Kd Zeug unter den " d " Eintrag. Das File sieht also nun so aus:


# Blender MTL File: 'None'
# Material Count: 5

newmtl 01_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.709020 0.709020 0.709020
Ks 0.147059 0.147059 0.147059
Ni 1.000000
d 1.000000
map_Kd rotetextur.png
illum 2

newmtl 03_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
map_Kd gruenetextur.png
illum 2

newmtl 07_-_Default
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.367059 0.367059 0.367059
Ks 0.319608 0.319608 0.319608
Ni 1.000000
d 1.000000
map_Kd blauetextur.png
illum 2

newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
map_Kd lilatextur.png
illum 2

newmtl Material_#351
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
map_Kd gelbetextur.png
illum 2


Und jetzt packst du einfach die fünf hier eingetragenene Dummytexturen neben das Obj File. Kann man zur Not mit Paint erstellen.

lilatextur.png, gelbetextur.png, blauetextur.png, rotetextur.png und guenetextur.png

Und dann musst du halt ein wenig puzzeln welche Textur hier jetzt was ist smile

Ah, eine Amerkung hätte ich da noch. Beim Export aus Blender musst du immer extra anhaken dass es nur das ausgewählte Objekt exportieren soll. Superlästig. Aber die Devs liessen sich nicht überzeugen. Wenn du den Haken nicht hinmachst exportiert es die ganze Szene. Kamera, Lichter, andere Meshes. Da könnten deine vielen Materialien herkommen.

Was schon mal gut ist, die Materialien scheinen erhalten geblieben zu sein. Das bedeutet dass es in Blender nicht ein ganz grosser Akt ist die fehlenden Texturen in Blender zuzuweisen. Aber zum Materialeditor ist halt wie gesagt ein Tutorial fällig.

Und danke für den funktionierenden Link. Ich schau mir das mal heut abend an smile
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006