Seite 2 von 4

Re: Assimp-News

Verfasst: 27.07.2017, 20:50
von kimmi
Ply-Loader Exception ist im aktuellen Master behoben.

Re: Assimp-News

Verfasst: 28.07.2017, 01:02
von Krishty
Sauber; alle meine PLYs laden jetzt! Nochmal besten Dank!

Re: Assimp-News

Verfasst: 28.07.2017, 08:54
von kimmi
Kein Problem, das war ein Fehler im block-weisen Laden der ASCII-Files. Es folgt 4.0.1 ...

Re: Assimp-News

Verfasst: 31.07.2017, 21:00
von xq
Gibt es eigentlich eine offizielle Doku, wie ich mit Assimp eine Szene baue, sodass ich sie ordnungsgemäß exportieren kann? Ich scheitere grade grausam an den Texturen

Re: Assimp-News

Verfasst: 01.08.2017, 10:45
von kimmi
Du kannst dem folgenden Dokument die grundlegenden Ideen entnehmen ( http://assimp.org/lib_html/usage.html ). Ansonsten gibt es die Unittests, die zu Testzwecken eigene Szene bauen.

Da ist aber noch Luft nach oben. Ich erstell mal ein Ticket, um einige Tutorials zu schreiben.

Re: Assimp-News

Verfasst: 01.08.2017, 17:46
von kimmi
Ein erster Schuß für die glFT2.0-Export-Funktionalität ist nun in Assimp verfügbar. Das Ganze kann auf dem aktuellen Masterbranch eingesehen werden. Feedback wäre toll!

Viel Spass und happy Loading ...

Re: Assimp-News

Verfasst: 02.08.2017, 16:38
von Krishty
PLY kracht wieder gewaltig, und zwar immer in PlyLoader.cpp (522):
plycrash.png
plycrash.png (8.12 KiB) 9615 mal betrachtet

Re: Assimp-News

Verfasst: 03.08.2017, 11:40
von kimmi
Danke, ich hab da was verschlimmbessert.

Re: Assimp-News

Verfasst: 03.08.2017, 14:59
von kimmi
Sollte wieder behoben sein.

Re: Assimp-News

Verfasst: 03.08.2017, 16:07
von Krishty
Läuft; danke!

Re: Assimp-News

Verfasst: 04.08.2017, 10:20
von kimmi
Habe das Ganze auch gleich per Unittest abgesichert, damit ich in Zukunft merke, wenn ich einen Loader kaputt mache. Allerdings ist das schon eine ganze Menge Arbeit. Zur Zeit gibt es da eine abstrakte Basisklasse, bei der im Test die Methoden importerTest und exporterTest implementiert werden müssen. Dazu werden nun noch Anzahl importierter Meshes, Vertices und Faces überprüft:

Code: Alles auswählen

class utPLYImportExport : public AbstractImportExportBase {
public:
    virtual bool importerTest() {
        Assimp::Importer importer;
        const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", 0 );
        EXPECT_EQ( 1u, scene->mNumMeshes );
        EXPECT_NE( nullptr, scene->mMeshes[0] );
        EXPECT_EQ( 8u, scene->mMeshes[0]->mNumVertices );
        EXPECT_EQ( 6u, scene->mMeshes[0]->mNumFaces );
        
        return (nullptr != scene);
    }

    virtual bool exporterTest() {
        Importer importer;
        Exporter exporter;
        const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/PLY/cube.ply", 0);
        EXPECT_NE(nullptr, scene);
        EXPECT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "ply", ASSIMP_TEST_MODELS_DIR "/PLY/cube_test.ply"));

        return true;
    }
};
Falls da was schief geht, fällt es zukünftig also auf. Dazu gibt es noch eine Regressions-Testsuite, die gerade aber nicht läuft. Aber ich arbeite daran.

Re: Assimp-News

Verfasst: 04.08.2017, 12:35
von Krishty
Das gibt es doch schon, oder? Zumindest wurde mir bei GitHub mit deinen letzten Check-Ins als kleines rotes Kreuz angezeigt, dass es PLY-Probleme mit der Coverage geben würde (40 % fail oder so) … bloß habe ich das erst nach dem Merge entdeckt ;)

Re: Assimp-News

Verfasst: 04.08.2017, 13:04
von kimmi
Den IMporttest gab es schon, allerdings habe ich vergessen, die Parameter abzutesten ( in dem Unittest ).

Re: Assimp-News

Verfasst: 04.08.2017, 13:11
von Krishty
Ah okay!

Re: Assimp-News

Verfasst: 17.08.2017, 19:56
von kimmi
Ich habe bezüglich der verschiedenen Language-Bindings mall eine Umfrage ins Leben gerufen. Es würde mich freuen, wenn Ihr da mal abstimmt, um die Relevanz der verschiedenen Bindings besser abschätzen zu können: https://www.patreon.com/posts/asset-importer-13907338

Re: Assimp-News

Verfasst: 18.08.2017, 09:27
von kimmi
Habe gerade erst bemerkt, dass man zur Teilnahme bei Patreon angemeldet sein muß. Ich werde das Ganze mal auf der Website starten.

Re: Assimp-News

Verfasst: 24.08.2017, 17:09
von Krishty
C4D importiert mit falscher Orientierung.

Soweit ich das sehen kann, ist bei C4D X rechts, Y hoch, und Z in den Bildschirm hinein (left-handed). Die Dateidaten werden aber ohne Konvertierung nach Assimp übertragen und dort als right-handed behandelt.

Nachtrag: mein “fix” in void C4DImporter::InternReadFile:

    pScene->mRootNode = new aiNode("<C4DRoot>");
⇨   pScene->mRootNode->mTransformation.c3 = -1.0f; // transform left-handed to right-handed


… ich weiß aber gar nicht, ob Y/Z nicht auch getauscht werden müssen und wie das mit Texturen läuft usw. usf. Habe auch kein Cinema4D zum Testen hier. Ihr könnt das also sicher besser …

Re: Assimp-News

Verfasst: 04.09.2017, 14:07
von Krishty
Der Blender-Import interpretiert das Koordinatensystem falsch, oder? Von 20 Blender-Dateien, die ich stichprobenartig herausgesucht habe, war bei 15 offensichtlich Z oben statt Y. Beim Rest hätte man drüber streiten können, wie es der Künstler ausgelegt hat.

Re: Assimp-News

Verfasst: 04.09.2017, 14:13
von kimmi
Hatte ich gar nicht mehr auf dem Zettel, aber da war was, ja. Danke für den Hinweis! Mal sehen, ob ich das bald beheben kann.

Momentan versuche ich noch aus dem FBX-Transformationen schlau zu werden.

Re: Assimp-News

Verfasst: 04.09.2017, 15:28
von Krishty
FBX ist selten, oder? Seit letzter Woche crawle ich thingiverse, und unter den rund 320.000 Modellen, die ich bisher habe, waren vier FBX (dreimal binär, einmal Text). Die laden so weit ganz ordentlich.

Falls es dir hilft: Visual Studio kann ebenfalls FBX importieren; ich würde Microsoft zutrauen, die Referenzimplementierung lizensiert zu haben.

Nachtrag: Ja, unter Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\VsGraphics liegt eine libfbxsdk.dll von Autodesk. Kannst also im Zweifel mit Visual Studio vergleichen.

————

X3D geht nicht, sobald Texturen drin sind. Attribute "url" in node <ImageTexture> has incorrect value. sobald eine Datei das hier enthält:

Code: Alles auswählen

<?xml version='1.0' encoding='UTF-8'?>
	<X3D profile="Immersive" version="3.1">
	<Scene>
		<Shape>
			<Appearance>
				<ImageTexture url='texture.png'/>
			</Appearance>
		</Shape>
	</Scene>
</X3D>
Ich habe gerade nicht die Spezifikation parat um zu prüfen, ob das korrekt ist; aber es kommt häufig vor und FreeWRL (gammeligster X3D-Loader der Welt) lädt es.

Re: Assimp-News

Verfasst: 05.09.2017, 08:58
von kimmi
FBX wird oft angefragt. Und wenn ich hauptberuflich Assimp machen würde, wären die ganzen Bugs auch kein Problem :). Danke für den Bug-Report, das schaue ich mir auch mal an.

ich habe angefangen, unter https://www.patreon.com/assimp einen monatlichen Rückblick auf die Höhepunkte des aktuellen Masters zu schreiben.

Für August sieht das so aus: https://www.patreon.com/posts/asset-importer-14214732

Wenn Ihr Feedback für mich habt, nur zu.

Re: Assimp-News

Verfasst: 05.09.2017, 08:59
von kimmi
den 3D-Printer von thingiverse kenne ich :) ...

Re: Assimp-News

Verfasst: 05.09.2017, 11:10
von Krishty
kimmi hat geschrieben:den 3D-Printer von thingiverse kenne ich :) ...
Welchen?

Re: Assimp-News

Verfasst: 05.09.2017, 11:35
von kimmi
Den, den wir hier haben. Kenne den genauen Typen gar nicht.

Re: Assimp-News

Verfasst: 05.09.2017, 11:52
von Krishty
Ach ja, sie gehören zu MakerBot. Hat mit den Modellen dort aber nicht viel zu tun.

Re: Assimp-News

Verfasst: 05.09.2017, 13:05
von kimmi
Ich weiß, war mir beim Besuch der Website nur gerade aufgefallen. FBX wird in dem Umfeld auf wenig benutzt. Aber beim Import von Modellern wird es öfter verwendet.

Re: Assimp-News

Verfasst: 19.09.2017, 21:52
von kimmi
glFT2.0-Import und Export ist auf dem aktuellem Master: https://www.patreon.com/posts/14395686

Freuen uns über jegliche Form von Feedback. Dazu schlage ich mich noch immer mit FBX rum.

Re: Assimp-News

Verfasst: 20.09.2017, 10:15
von Thoran
Mal abgesehen davon, dass FBX eine API-Hölle ist, was ist Dein konkretes Problem?

Re: Assimp-News

Verfasst: 26.09.2017, 16:06
von kimmi
Dass das Kurbelwellenproblem noch besteht. Die Welle wird nicht richtig platziert, da ich die Connnections der jeweiligen FBXNodes korrekt auslesen muss. Und das habe ich zwar auf meinem Stapel zu erledigender probleme, aber noch nicht angegangen.

Re: Assimp-News

Verfasst: 28.09.2017, 14:53
von Krishty
Diese Änderung in SIBImporter.cpp ist mir aufgefallen, Zeilen 187–204:

  std::vector<unsigned char> str;
  str.reserve(numWChars * 4 + 1);



  utf8::utf16to8(start, end, back_inserter(str));



  str[str.size()] = '\0'; //
!!!
  aiString result = aiString((const char *)&str[0]);

Das stinkt zum Himmel. Es könnte durch ein Schlupfloch sein, dass man hinter die Größe eines std::vector schreiben/lesen darf, so lange er ausreichend groß reserviert ist … aber ich würde mich auf keinen Fall darauf verlassen und das sollte in jedem Review erneut die Sirenen aufheulen lassen.

Könnt ihr aiString keinen Konstruktor mit begin und end statt Nullterminierung verpassen, um die Situation zu entschärfen? Mit std::string würde ich an der Stelle auch einfach std::string result(str.begin(), str.end()); schreiben, anstatt Nullen in dunkle Bereiche von Arrays zu schieben …

… oder ändert es zumindest zu str.push_back('\0'); … und zu str.data() statt &str[0] …

… und das Speicherleck bei Exceptions durch die umliegenden new/delete sollte auch deutlich sein.

(Ich meckere normalerweise nicht über sowas, aber der Code wurde frisch geändert – und wenn man ihn schon ändert, dann bitte richtig™. Mit *jeder* STL löst der Code sofort eine Assertion aus; das bedeutet, dass der Autor vor dem Hochladen kein einziges Mal einen Debug Build kompiliert hat.)