Wie die meisten Webseiten nutzen wir Cookies. Nähere Informationen dazu, wie wir mit diesen Cookies umgehen, können Sie in unseren Datenschutzbestimmungen lesen.   Einverstanden
 
 

3D Forum > Export von OBJ Dateien mit Textur und ein erfolgreiches Hochladen

Export von OBJ Dateien mit Textur und ein erfolgreiches Hochladen

20.07.2019 21:33
 
RagisterSa. 20 Jul. 2019, 21:33 Uhr
Guten Tag,
ich muss heute mal wieder eine Frage stellen, da ich einfach nicht weiterkomme.
Ich möchte einen Gebäudeschnitt auf Sketchfab importieren.

Dazu muss ich eine OBJ Datei von Cinema4D exportieren (mit Texturen) und es ganz einfach hochladen.
Das Problem ist, dass es mir die Texturen nicht mit importiert.

Das ist das Ergebnis:
https://sketchfab.com/3d-models/dh-musterhaus-one-schnitt-a-a-25b4156956d743c488d507a1a29357aa

Ich habe auch schon festgestellt, dass es dafür auch ein Plugin gibt zum importieren von Cinema4D auf Sketchfab, dennoch möchte ich schon auch in Zukunft wissen, wie ich solche Exports mit Texturen meistere.

Für Vorschläge bin ich offen

Mit freundlichen Grüßen

Ragister
 
TilesSo. 21 Jul. 2019, 08:25 Uhr
Hallo Ragister,

Ich kann den Link nicht öffnen.

Grundsätzlich. Obj ist ein Fileformat im Klartextformat. Das kannst du zur Not auch von Hand editieren. Ein Obj File besteht aus zwei Teilen. Einmal einem *.obj Teil. Da stecken die Meshdaten drin. Und ein *.mtl Teil. Da steckt ein primitives Material samt den Texturdefinitionen drin.

Die Texturpfade sind im *.mtl Teil des Obj Exports definiert. Wenn du kein *.mtl Teil hast werden keine Texturen gefunden. Klar, die sind ja dann nicht definiert.

Es gibt noch eine weitere Falle. Manche Exporter definieren absolute Pfade für die Texturen. Und wenn du das File dann wo anders hinverschiebst stimmen diese Pfade nicht mehr. Und dann werden die Texturen natürlich auch nicht mehr gefunden.

Also würde ich mal das *.mtl File aufmachen. Und nachsehen wie die Texturen drin stehen. Als C:myfolderUSERmysubfoldermytexture.png. Oder als mytexture.png. Wenns mit C: anfängt sind es absolute Pfade. Das könntest du dann löschen bis auf den Texturnamen, dann ist das relativ. Und dann sollten die Texturen auch gefunden werden wenn sie neben dem Obj File im Ordner liegen.

LG

Tiles
 
SleepySo. 21 Jul. 2019, 16:38 Uhr
Texturen werden grundsätzlich niemals mit Exportiert.

1.DU erstellt ein Material in dem du sagst wo deine Textur auf deinem Rechner liegt.
Wenn du deiner Software nun sagst deine Textur liegt auf //texturen/wand.png , dann wird deine Textur nicht gefunden wobald du dein Mesh wo anderst hinkopierst. Definierst du deinen Link aber so: C:texturen/Wand.png dann ist es klar wo sich deine Texturen befinden.

2.Normalerweise kopierst man das Objekt (OBJ) dort hin wo es hinsoll und die Texturen dort hin und erstellt dann einfach ein Material und schaut das im Material die Texturen funktionieren. Dann gibts auch niemals ein Problem.
 
TilesSo. 21 Jul. 2019, 18:02 Uhr
1.DU erstellt ein Material in dem du sagst wo deine Textur auf deinem Rechner liegt.
Wenn du deiner Software nun sagst deine Textur liegt auf //texturen/wand.png , dann wird deine Textur nicht gefunden wobald du dein Mesh wo anderst hinkopierst. Definierst du deinen Link aber so: C:texturen/Wand.png dann ist es klar wo sich deine Texturen befinden.


Mh, es ist eigentlich genau anders rum. Sobald du da einen absoluten Pfad, also C:texturen/Wand.png angibst dann muss die Textur IMMER da liegen. Sonst wird die Textur nicht gefunden. Verschiebst du die Textur wo anders hin, zum Beispiel weil du Obj File samt Textur wo anders hin packst, dann stimmt ja der Pfad nicht mehr.

Wenn da aber bei mapkd im mtl File einfach nur Wand.png steht, dann sucht das Obj File im gleichen Pfad wie auch das Obj File liegt. Und man kann da auch einen Unterordner definieren. Wenn die Textur im Unterordner liegt wird auch die gefunden.

Es gibt übrigens durchaus Software die auch die Textur mit kopiert wenn sie das Obj File schreibt. Das hat trueSpace damals gemacht. Ob das Cine macht weiss ich allerdings nicht.
 
SleepySo. 21 Jul. 2019, 21:37 Uhr
C:// ist ja ein eindeutiger Pfad wo sich die Textur befindet, das heißt wenn du den Ordner irgend wo anderst hinkopierst befindet sich die Textur immer noch auf C://.....

hast du aber als Pfad // festlegt, und du kopierst deine Texturen zb in einen neuen Unterordnet

zb von "//Texturen" in "//Texturen/decken"

dann musst du den Pfad aller texturen umschreiben.

Aber klar, wenn du die File Hierachie behälst und immer nur den gesamten Ordner kopierst, bleiben die Pfade erhalten.

NTFS kann übrigens nur bis zu max 265 Zeichen. Wenn also seine Texturen in

"C:TexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenTexturenBild_1234567891011121314151617.png"

Kopiert kann bei 256 Zeichen echte Probleme bekommen man sollte es daher nicht mit unter unter unter pfaden übertreiben. Das selbe gilt bestimmt auch für OBJ und FBX






 
TilesSo. 21 Jul. 2019, 22:21 Uhr
Relative Pfade die in einen Ordner zeigen gibst du eigentlich mit einem Punkt oder auch zwei vor dem Slash an. Nicht mit einem Doppelslash.

https://docs.microsoft.com/de-de/dotnet/standard/io/file-path-formats

Ansonsten wie gesagt, nur den Dateinamen angeben bei map_kd im mtl File. Dann sollte Obj die Textur überall wieder finden sofern sie eben neben der Obj Datei liegt.

Ich habe mal ein Beispiel gemacht. Siehe Anhang. absolutepath.obj wird bei dir die Textur nicht laden. Der Pfad ist absolut, und funktioniert nur auf meinem PC. Und auch nur solange die Textur auf meinem PC genau da liegt. Verschiebe ich die Datei samt Textur ist der Pfad futsch.

Die zweite Obj Datei, relativepath, hat einen relativen Pfad. Die Textur wird auch bei dir geladen werden sofern du die Textur eben neben dem Obj File liegen hast. Und deswegen nimmt man am Besten einen relativen Pfad. Und nicht einen absoluten Pfad.


Wenn du das relativepath.mtl File öffnest steht da map_Kd mytex.png . Da ist die Textur definiert.

Das alles sollte allerdings schon deine Software für dich machen. In Blender kannst du einstellen relative Pfade zu verwenden.

Deswegen mag ich das Obj File Format so. Das ist ein Textfile das du eben auch von Hand editieren kannst smile
 
RagisterMi. 24 Jul. 2019, 19:24 Uhr
Hey,
danke für die Antworten smile

Soweit ich das verstanden habe, kann ich nicht einfach den Pfad C:.../ nehmen, da, wenn ich die Datei hochlade und auf einen Server raufladen würde, sich die Textur nicht mehr auf den gleichen Pfad befinden würde, da jeder einen anderen Benutzernamen des C: Ordner hat hat und daher der Pfad bei jeden anders ist.

Deswegen muss ich z.b. wenn die Obj Datei in einen Ordner "Ordner" liegt und möchte das Bild "image.png" als Pfad definieren (das im gleichen Ordner daneben liegt), dann gebe ich statt "C:UsersRagisterDesktopOrdnerimage.png" nun "image.png". Sollte das bild in einen weiteren Ordner namens "ImageOrdner" liegen, innerhalb des Ordner "Ordner", dann gebe ich "ImageOrdnerimage.png" ein.

Ich werde dies heute noch versuchen.

Du hast erwähnt, dass es dafür zur Umwandlung ein Programm gibt, das ich aber nicht genau herrauslesen konnte. Wie heißt dies, denn meine Projekte sind von den Texturmengen etwas groß

Ich danke euchs chon jetzt für die Hilfe
 
TilesMi. 24 Jul. 2019, 21:06 Uhr
Da gibts leider kein spezielles Programm dafür. Wie gesagt müsste das mit dem absoluten und relativen Pfad schon in deiner 3D Software einstellbar sein. Die Text Datei händisch zu editieren ist zwar dank des Obj Formats möglich, aber eigentlich macht man das eben schon im Programm. Das soll das File schon richtig schreiben.
 
RagisterMi. 24 Jul. 2019, 22:30 Uhr
Ich verstehe, also werde ich allgemein die Texturdatenbank von mir umstellen müssen.

Eine letze Frage dazu habe ich noch. Wie kann ich den Pfad richtig einfügen, denn bei mir kann ich im Textur Manager den Pfad nicht eingeben. In den Anlagen ist ein Bild.
 
 
TilesDo. 25 Jul. 2019, 07:41 Uhr
Tja, mit Cine kenn ich mich leider nicht aus. Aber da gibts in der Regel gar keinen Pfad den du angeben kannst. Nur ob es mit absoluten oder mit relativen Pfaden exportieren soll. Und ich bin mir nicht mal sicher ob der Cinema Obj Exporter überhaupt diese Möglichkeit bietet.

Nur um sicher zu sein, reden wir immer noch vom Obj Export? Oder von internen Libraryeinstellungen von Cine? Da ist eine komplett andere Geschichte.
 
 

 


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