Textur im Model

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
schmidi87@hotmail.com
Beiträge: 3
Registriert: 19.04.2013, 20:52

Textur im Model

Beitrag von schmidi87@hotmail.com »

Hallo!

Ich bin relativ neu im Bereich Grafikprogrammierung, habe mich bis jetzt mit den meisten Grundlagen bzw. Beginner-Toturials beschäftigt und bin eben bei einem kleinen Projekt dann auf Assimp gestoßen und bin total begeistert davon, wie einfach bestimmte funktionen damit von der Hand gehn.

Jetzt habe ich aber das Problem, ich möchte eine Textur die in meinem Model (.dae-File) enthalten ist, aus der Mesh auslesen.
Ich habs mittels eines Tutorials geschafft das ganze mit DevIL zu laden, wenn ich Model und Textur in getrennten Files habe, da man den Path relativ einfach ermitteln kann.
Ich fühle mich jedoch noch ziemlich unsicher mit Material und Textur, vor allem wenn ich beides in einem File habe.

Soweit ich das weiß unterscheidet man den Fall, dass es *compressed als zB. jpg oder *uncompressed als reine Farbdaten verfügbar ist, ich bin mir nur jetzt nicht sicher wie ich damit umgehen soll.

Könnte mich vielleicht jemand dabei etwas führen oder mir zumindest zeigen wo mir dabei geholfen werden könnte?

Vielen dank schon mal im Voraus!
Benutzeravatar
Schrompf
Moderator
Beiträge: 5161
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Textur im Model

Beitrag von Schrompf »

Moin, und willkommen beim ZFX! Ich bin aber nicht sicher, ob ich Dir bei diesem Problem wirklich helfen kann, weil ich ehrlich gesagt nicht verstehe, was denn überhaupt das Problem ist?

Meine Vermutung: Dich verwirrt die Tatsache, dass manche seltene 3D-Formate die Pixeldaten für Texturen direkt in der Datei enthalten. Und meine Antwort darauf wäre: ignoriere das, das ist quasi irrelevant für Deine tägliche Arbeit mit 3D-Daten. Das kommt nur vor, wenn man bestimmte alte Formate wie z.B. GameMaker-Dateien lesen will. Der Normalfall bei Assimp ist aber, dass ein Mesh ein Material benennt und das Material dann die Dateinamen der Texturen, die benötigt werden. Und die liest Du dann halt mit einer Bild-Lade-Bibliothek Deiner Wahl ein. DevIL tut da ganz gute Arbeit, glaube ich.

Fortgeschrittenes Wissen: manchmal enthalten die gelesenen 3D-Dateien auch die Texturdaten mit. Assimp liest die mit aus und bietet Funktionen an, um da ranzubekommen. Danke übrigens dafür, Alexander - ich hätte nie gedacht, dass es sowas wirklich gibt. Die so beigelegten Bilddaten können aber in vielen Formaten auftreten, von den rohen Pixeldaten bis zum kompletten Dateiformat wie JPEG oder PNG.

Das ist dann auch unabhängig von "compressed" und "uncompressed". Es gibt Dateiformate für Bilder, also z.B. JPEG, PNG, BMP oder TGA. Diese Dateiformate besagen aber nur, in welcher Form die Pixeldaten in der Datei angeordnet sind. Davon unabhängig kann aber auch die Grafikkarte mit verschiedenen Pixelformaten umgehen, von denen manche als "komprimiert" bezeichnet werden. Texturkompression ist ein ganz eigenes Thema, das würde ich Dir erst für später empfehlen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
schmidi87@hotmail.com
Beiträge: 3
Registriert: 19.04.2013, 20:52

Re: Textur im Model

Beitrag von schmidi87@hotmail.com »

Schrompf hat geschrieben:Fortgeschrittenes Wissen: manchmal enthalten die gelesenen 3D-Dateien auch die Texturdaten mit. Assimp liest die mit aus und bietet Funktionen an, um da ranzubekommen. Danke übrigens dafür, Alexander - ich hätte nie gedacht, dass es sowas wirklich gibt. Die so beigelegten Bilddaten können aber in vielen Formaten auftreten, von den rohen Pixeldaten bis zum kompletten Dateiformat wie JPEG oder PNG.

Genau das ist was ich eigentlich jetzt machen möchte! Ich habe nämlich ein Model, die Texturdaten sind jedoch alle im Model enthalten und die möchte ich dann eben mit Assimp laden und verwenden können.
Nur wie ich das jetzt genau anstellen kann, dass ich diese dann eben zB mit DevIL überhaupt verarbeiten kann ist mir nicht klar und meine bisherige Suche dazu war auch nicht unbedingt von erfolg gekrönt. ^^
Benutzeravatar
Schrompf
Moderator
Beiträge: 5161
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Textur im Model

Beitrag von Schrompf »

Ja, das habe ich befürchtet. Du lässt DevIL Deine Bilder laden und gleich als Texturen erstellen, oder? Und jetzt kennst Du die ganzen Zwischenschritte nicht und weißt daher nicht, was Du mit den Bilddaten anfangen sollst, die Du aus Assimp rauskriegst.

Nunja, da wäre eine etwas längere Erklärung nötig. Und sorry, aber dazu habe ich momentan einfach zu viel zu tun. In Kurzform: Hol Dir die Texturdaten aus der Assimp-Szene über aiScene::mTextures, erstelle die Textur mit der 3D-API, die Du benutzt, mappe bzw. locke sie, kopiere die Texturdaten hoch, unmappe/unlocke und fertig.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
schmidi87@hotmail.com
Beiträge: 3
Registriert: 19.04.2013, 20:52

Re: Textur im Model

Beitrag von schmidi87@hotmail.com »

Hallo nochmal und danke!

Es passt zwar noch net ganz denk ich mal, aber zumindest bekomme ich nicht mehr so unsaglich viele Fehler, daher denke ich bin ich jetzt am richtigen Ball und werde wenn ich Zeit habe mich an der Front weiter versuchen, im Moment muss ich jedoch noch andere Dinge weiter machen, einen Zeitplan einhalten. ;)

Ich melde mich sollte ich auf weitere Probleme stoßen oder falls ich es sogar geschafft haben sollte, dass es so funktioniert wie ich mir das Vorstelle! Daher nochmal vielen Dank für die bisherige Hilfe! :)
Antworten