[Assimp] Blender Scene has no Meshes

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

[Assimp] Blender Scene has no Meshes

Beitrag von Artificial Mind »

Guten Morgen liebe Community.

Heute eine Frage insbesondere an diejenigen, die an Assimp beteiligt sind:

Ich habe eine ganz einfache Blender Szene erstellt. Einfach diese Standardszene mit einer Camera, einem Light und diesem Cube in der Mitte (Die Ctrl-N-Szene).
Wenn ich dies als .blend speicher und versuche, mit Assimp (3.0, heute geladen) zu laden, sind dort keine Meshes in der aiScene (mNumMeshes == 0, auch für alle Nodes). Es sind allerdings alle drei Nodes da (Camera, Light, Cube), sogar mit dem richtigen Namen.

Laut der Doku sollten einfache statische Szenen funktionieren, deswegen die Frage: was mache ich falsch.

Cheers
Mind
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von kimmi »

Gute Frage, wird der Cube richtig z.B. als Obj exportiert? Vielleicht enthält der Blender-Export diesen nicht?

Gruß Kimmi
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Schrompf »

Nein, er lädt ja direkt die Blender-Datei, wenn ich das richtig verstehe. Und da ist es recht einfach: das Blender-Dateiformat ist wie das von 3DSMax und Konsorten auch extrem komplex. Wir können unmöglich alle Grundkörper, Modifier und Effekte im Loader nachbauen, um die Szene als tatsächliche Dreiecke zu erhalten. Daher nutzt der Blender-Loader einen freundlichen Trick, nämlich dass Blender Preview-Meshes der Szene mit in der Datei abspeichert. Diese Preview-Meshes sind das, was Assimp am Ende ausspuckt. Das hat bisher auch ganz gut funktioniert. Meine Hypothese zum jetzigen Geschehen ist, dass Blender für sowas Einfaches wie einem unbearbeiteten Würfel keinen Preview-Mesh generiert, sondern den Mesh live rendert. Versuche mal, den Würfel in einem Dreiecksmesh umzuwandeln, eine Ecke langzuziehen oder eine Kante zu unterteilen.

Alternativ sollte es aber auch funktionieren, wenn Du es in ein anderes, explizit polygonbasiertes Format exportierst. Lightwave .obj eignet sich ganz gut für statische Szenen, weil man bei dem Format kaum was falsch machen kann. .x würde ich meiden, da gibt es schnell Missverständnisse über manche Details. Collada .dae läuft dagegen meist recht gut, ich habe schon die gröbsten Dummheiten des Blender-Collada-Exporters abgefangen. Hoffe ich.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Artificial Mind »

Ok schonmal vielen Dank für die Antwort.

Ich hatte das auch mal mit einem Blender Ape probiert, der zweimal subdivided wurde (mit apply). Da hatte das auch nicht funktioniert.

Sobald ich wieder zuhause bin, versuche ich mal, Blender zu zwingen, so ein Preview Mesh zu erstellen.


Edit: direkt .blend Files laden wäre halt für den Entwicklungsprozess sehr praktisch.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von kimmi »

Stimmt, würde das verhalten erklären.

Gruß Kimmi
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Artificial Mind »

Ok ich habe folgendes _ohne Erfolg_ getestet:

* Ecken des Würfels verziehen
* Würfel rendern
* Normalen smoothen
* Convert to Mesh
* Subdivision modifier (mit unterschiedlicher View/Render Stufe)

Ich benutze übrigens Blender 2.63


... So ich habe jetzt herausgefunden wie es geht.
Man kann im Speicher-Dialog ein "Legacy Mesh Format"-Häkchen setzten. Damit geht es. Aber eigentlich ist das keine sonderlich gute Lösung oder?
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Schrompf »

Wer weiß. Wie gesagt: Blender-Support ist rein prinzipiell wackelig bis unmöglich. Wenn es so funktioniert, dann nutze es so, oder exportiere halt richtig. Alex wollte irgendwann auch mal seinen FBX-Support mergen, ab dann hast Du *noch ein* gutes Format, das von vielen verstanden und produziert werden kann.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Artificial Mind »

Versteh mich nicht falsch, ich bin über Assimp überaus glücklich und habe es auch direkt am Lehrstuhl weiterempfohlen. Wir hatten vorher nur einen obj-Importer, der nur genau dann funktionierte, wenn zuerst alle v/vt/vn-Tags kommen und dann alle f-Tags. Keinerlei Sonderschnickschnack.

Also vielen Dank für die Hilfe ;)
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Schrompf »

Versteh mich nicht falsch, ich wollte nur die Ausweglosigkeit der Situation andeuten :) Ich würde ehrlich gesagt gerne auch 3DSMax-Szenen und sowas direkt laden - das wär ein echter Hauptgewinn für Produktivität und Verlustarmut der Asset Pipeline. Ich denke halt nur, dass es nicht machbar ist.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von kimmi »

Vielleicht wäre uns schon damit geholfen, das besagte Beispiel angeboten zu bekommen. Dann sparen wir uns zumindest schon mal das Erstellen der Szene. Danke im voraus! :)...

Gruß Kimmi
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Artificial Mind »

Welches Beispiel? Das, das ich versucht habe? Mach einfach Blender auf, das ist das Beispiel (wenn man nichts an der Default Scene geändert hat natürlich) :D
Benutzeravatar
Raphael
Beiträge: 65
Registriert: 22.12.2011, 13:39
Echter Name: Raphael Menges

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Raphael »

Andre und ich arbeiten im Moment auch mit Blender/Assimp und kommen für statische Szenen sehr gut mit .dae aus. Bei SkeletalMeshes wollte die Animation über .dae aber nicht, das ging dafür dann aber mit .x ;) Würde also mal Collada ausprobieren, falls es sich um statische Geometrie handelt.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Schrompf »

Raphael hat geschrieben:Bei SkeletalMeshes wollte die Animation über .dae aber nicht,
Der Teil würde mich interessieren. Was genau ging da schief? Collada ist eigentlich gut geeignet für Node Animations.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Raphael
Beiträge: 65
Registriert: 22.12.2011, 13:39
Echter Name: Raphael Menges

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Raphael »

Weiß ich im Moment gar nicht mehr so genau. Ich glaube es hatte für einfache Tests funktioniert (subdivded Box mit 2 Bones), bei unseren Characteren kamen dann Probleme. Ist auch schon wieder 2 Monate her :-S

Ah genau, Assimp(-Viewer) meckerte weil irgendein Animation-Tag in der .dae nicht geschlossen wurde oder so. Kann das beizeiten nochmal testen.
Benutzeravatar
Raphael
Beiträge: 65
Registriert: 22.12.2011, 13:39
Echter Name: Raphael Menges

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Raphael »

Nachtrag: Anscheinend wurde der .dae Exporter von Blender seit dem überarbeitet. Auf jeden Fall kommt das Objekt inklusive Animation nun korrekt im AssimpViewer an.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4884
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Schrompf »

Gut zu wissen. Im Sourceforge-Forum hat auch grad jemand Ärger mit einem Collada-File, das von Blender exportiert wurde. Nach der Blender-Version hab ich nicht gefragt... hm.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Raphael
Beiträge: 65
Registriert: 22.12.2011, 13:39
Echter Name: Raphael Menges

Re: [Assimp] Blender Scene has no Meshes

Beitrag von Raphael »

Noch ein Nachtrag: Bei der aktiven Nutzung von Animationen ist mir endlich aufgefallen, warum es manchmal diesen "end of animation tag" Error bei .dae gibt. Manchmal weißt man ausversehen dem Modell/Object eine Action zu. Diese wird inkorrekt exportiert, da nur eine Action für das Armature erlaubt zu sein scheint. Sowohl Assimp als auch Blender selbst verweigern dann den Import der .dae. Es lag also nie an Assimp ;)
Antworten