Assimp - Brainstorming zum Release

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 26.01.2013, 19:23

Sehr schön! Wie weit bist du eigentlich mit der Blender/Assimp-Integration gekommen?

Im Prinzip ist der Code voll einsatzbereit, ich muss mich nur mal ums Zurueckmergen kuemmern :-)

Mr.S:

du hast natuerlich Recht, die Website ist nicht auf dem neuesten Stand. Wir muessen auch immer noch den git->svn mirror einrichten.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 02.02.2013, 15:55

CaptureAssimpStats.PNG
Es besteht kein Zweifel: wir werden immer populaerer. Mittlerweile bringt die durchschnittliche Woche 800 Downloads, Zugriffe ueber Package-Repositories sind ohnehin unzaehlbar.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Mr. S » 02.02.2013, 17:03

Aramis hat geschrieben:du hast natuerlich Recht, die Website ist nicht auf dem neuesten Stand. Wir muessen auch immer noch den git->svn mirror einrichten.

Stellt doch einfach komplett auf GIT um. SVN muss ja nicht (mehr) sein.

Ich nutze es auch um DAE Dateien in Ogre-Meshs zu konvertieren.
Mr. S
 
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 06.02.2013, 15:59

Website ist aktualisiert (und die Website ist jetzt auch auf Github).
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Schrompf » 06.02.2013, 16:15

Cool, Danke!
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3759
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Assimp - Brainstorming zum Release

Beitragvon Mr. S » 09.02.2013, 17:37

Im commit f7680f7f287bbdee63f113946d90db182afa1498 ist ein Fehler in der IFCOpenings.cpp:

Code: Ansicht erweitern :: Alles auswählen
2> IFCOpenings.cpp
2>..\..\code\IFCOpenings.cpp(1191): error C2440: 'Initialisierung': 'boost::shared_ptr<T>' kann nicht in 'Assimp::IFC::TempMesh *' konvertiert werden
2> with
2> [
2> T=Assimp::IFC::TempMesh
2> ]
2> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
2>..\..\code\IFCOpenings.cpp(1198): error C2440: '=': 'boost::shared_ptr<T>' kann nicht in 'Assimp::IFC::TempMesh *' konvertiert werden
2> with
2> [
2> T=Assimp::IFC::TempMesh
2> ]
2> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden


Anbei ein Bugfix, der zugleich auch noch die möglichen boost-Versionen aktualisiert.
assimp.txt
Boost update & bugfix
(1.4 KiB) 228-mal heruntergeladen
Mr. S
 
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitragvon Mr. S » 15.02.2013, 15:45

Ich habe ein interessantes Projekt gefunden mit welchem man IGES/STEP/STL einlesen kann: http://sourceforge.net/apps/mediawiki/n ... =Main_Page

Vielleicht kann man ja die Library (Nglib) in Assimp integrieren.

Edit: Es gibt auch bei http://www.gcad3d.org/ noch Implementierungen für IGES/STEP/STL.
Mr. S
 
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitragvon CodingCat » 22.02.2013, 19:30

Ich bin gerade über die Namen von Materialien und Meshes in Collada gestolpert. Bisher werden da wohl einfach die IDs als Namen eingesetzt, welche meist mit höchst unschönen Postfixes versehen sind. Fix anbei. Ich muss mich unbedingt mal um git kümmern. :/

Code: Ansicht erweitern :: Alles auswählen
// ColladaParser.cpp: ReadMaterialLibrary(...)
Material &material = mMaterialLibrary[id];

if (const char* name = mReader->getAttributeValue(GetAttribute("name")))
        material.mName = name;
else
        material.mName = id;

// create an entry and store it in the library under its ID
ReadMaterial(material);

// -----------------------------------------------------------------------------------

// ColladaParser.cpp: ReadGeometryLibrary(...)

// create a mesh and store it in the library under its ID
Mesh* mesh = new Mesh;
mMeshLibrary[id] = mesh;

if (const char* name = mReader->getAttributeValue(GetAttribute("name")))
        mesh->mName = name;
else
        mesh->mName = id;

// read on from there
ReadGeometry( mesh);

// -----------------------------------------------------------------------------------

// ColladaLoader.cpp: CreateMesh(...)
aiMesh* dstMesh = new aiMesh;
dstMesh->mName = pSrcMesh->mName;

// -----------------------------------------------------------------------------------

// ColladaLoader.cpp: BuildMaterials(...)
aiMaterial* mat = new aiMaterial;
aiString name( matIt->second.mName);
mat->AddProperty(&name,AI_MATKEY_NAME);
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
CodingCat
Establishment
 
Beiträge: 1856
Registriert: 02.03.2009, 22:25
Wohnort: Student @ KIT

Re: Assimp - Brainstorming zum Release

Beitragvon CodingCat » 24.02.2013, 16:02

Hm, die Dokumentation der Implementierungen von ColladaParser::GetAttribute und ColladaParser::TestAttribute ist genau verkehrtrum: Ersteres wirft, zweiteres gibt -1 zurück. Entsprechend muss es TestAttribute("name") heißen.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
CodingCat
Establishment
 
Beiträge: 1856
Registriert: 02.03.2009, 22:25
Wohnort: Student @ KIT

Re: Assimp - Brainstorming zum Release

Beitragvon Jonathan » 16.03.2013, 17:19

Ich habe gerade eben mal das git-Repo ausgecheckt, und direkt ein Problem gefunden:
Wenn man ASSIMP_NO_EXPORT einschaltet, sind in dermaterial.inl durch ein #ifndef eine ganze Menge Funktionen nicht definiert, die aber benutzt werden, so dass man massig Linkerfehler bekommt. Schaltet man den Export nicht aus, kompiliert es sauber durch.
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1221
Registriert: 04.08.2004, 20:06

Re: Assimp - Brainstorming zum Release

Beitragvon Jonathan » 16.03.2013, 17:51

Und noch ein Bug: Durch einen Fehler im Ogre-Importer, den ich noch nicht gefunden habe, wird ein nullptr als Material in die Szene gepackt. Beim Post-Processing knallt es dann, bei mir aktuell im "RemoveRedundantMaterials", wenn in ComputeMaterialHash aus der MaterialSystem.cpp darauf zugegriffen wird.
Dort aber eine Abfrage zu machen, wäre aber wohl der falsche Weg, davor gibt es doch einen Validation-Step der sowas melden könnte oder so. Der Hauptfehler liegt natürlich beim Importer, aber wenn man schon so ein Postprocessing hat, ist das IMO sehr schön, wenn das mit jeder Szene funktioniert, und nicht einfach abstürzt.
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1221
Registriert: 04.08.2004, 20:06

Re: Assimp - Brainstorming zum Release

Beitragvon Jonathan » 16.03.2013, 22:04

Ich hab gerade den Ogre.Loader gepatched. Ich hatte bei sourceforge einen Account, aber für github noch nicht. Daher verlinke ich mal den Patch, wäre nett, wenn den einer einpflegen könnte. (Wieso sind keine .patch Dateien beim Hochladen erlaubt?)
Dateianhänge
0001-Ogre-Material-nullptr-fix-Loader-is-hopefully-no-lon.txt
Assimp-Ogre Patch
(1.99 KiB) 222-mal heruntergeladen
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1221
Registriert: 04.08.2004, 20:06

Re: Assimp - Brainstorming zum Release

Beitragvon kimmi » 17.03.2013, 18:22

Hat die schon wer eingepflegt? Ich habe das gerade probiert und musste feststelllen: alles schon drinn :).

Kimmi
Benutzeravatar
kimmi
Kim Kulling
Moderator
 
Beiträge: 1386
Registriert: 26.02.2009, 10:42
Wohnort: Luebeck

Re: Assimp - Brainstorming zum Release

Beitragvon Jonathan » 18.03.2013, 11:32

Aus der Assimp FAQ:
Is ASSIMP able to export models?
No. ASSIMP is an import library. It is intended to import assets, which have been exported from programs like 3ds max, into game engines or other realtime visualization systems. Normally you won't need to export the assets again. If you really need this feature, your're free to open a branch and start coding.

Ich denke, das sollte geändert werden :D
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1221
Registriert: 04.08.2004, 20:06

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 27.03.2013, 14:55

Danke, das wird auch geaendert! :-)

Eine Frage hierzu:

https://sourceforge.net/tracker/?func=d ... id=1067634

der Patch fuegt ein Key-Value Metadata-Feld zu aiNode hinzu. An sich ziemlich ordentlich und durchaus nuetzlich (nicht nur fuer IFC). Von mir aus koennten wir das aufnehmen.

Wie steht ihr dazu?
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Schrompf » 27.03.2013, 15:26

Grundsätzlich bin ich dafür. Ich mache mir allerdings Sorgen, dass das dann eine Standardbehandlung für alle möglichen Extradaten wird, die einfach nur ignoriert werden, weil man so mühsam rankommt. Wenn, dann müsste man sehr genau dokumentieren, was es alles für Metadaten gibt. Und bei unserem aktuell niedrigen Pflege-Niveau wird das wohl kaum kommen.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3759
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Assimp - Brainstorming zum Release

Beitragvon Mr. S » 27.03.2013, 17:18

kimmi hat geschrieben:Hat die schon wer eingepflegt? Ich habe das gerade probiert und musste feststelllen: alles schon drinn :).

Nicht komplett, die aktuelle boost Version ist 1.54, während in CMakeList.txt immer noch 1.51 als aktuellste Version angegeben ist.

Zu dem Meta-Patch: Grundsätzlich ist der Zugriff auf Metadaten eine nützliche Sache, da z. B. Suchmaschinen diese gerne durchsuchen. Ich würde das als undokumentierte Funktion nach und nach überall einbauen. Da Metadaten teilweise frei geschrieben werden können ist eine Dokumentation der verfügbaren Daten auch nur teilweise möglich.
Mr. S
 
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitragvon kimmi » 28.03.2013, 14:59

Grundlegend dafür. ich würde zunächst einen sehr primitiven Ansatz vorgeben, um sondieren zu können, für wen das wirklich interessant ist. Ich vermute, dass das einige Rückmeldungen erzeuigen wird.
Wegen Boost: Danke für den Hinweis, ich ändere das.

Gruß Kimmi
Benutzeravatar
kimmi
Kim Kulling
Moderator
 
Beiträge: 1386
Registriert: 26.02.2009, 10:42
Wohnort: Luebeck

Re: Assimp - Brainstorming zum Release

Beitragvon Thoran » 28.03.2013, 16:35

Sorry, wenn das hie die falsche Stelle für mein Post ist. Ich habe auf der assimp.sf.net Seite im "Documents"Bereich versucht das README zu Python zu lesen und leider einen HTTP404-Fehler bekommen.
Der für das README angegebene Link ist: http://assimp.svn.sourceforge.net/viewv ... ision=HEAD
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelles Projekt: "Arbeitsttitel AlphaOmega"
Spieleengine SilverCore
Benutzeravatar
Thoran
Establishment
 
Beiträge: 191
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 29.03.2013, 00:22

Oje, das muss auch mal aktualisiert werden! Es sollte natuerlich auf Github zeigen.

Ansonsten: ich hab die Metadata-Sache mal in einem separaten Branch hinzugefuegt. So sieht es aus:
https://github.com/assimp/assimp/tree/assimp-metadata

Morgen fuege ich den IFC-Teil ein und aktualisiere CMake. Danach wuerde ich vorschlagen, dass wir den Branch einfach mal hineinmergen.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 29.03.2013, 15:24

So!

https://github.com/assimp/assimp/pull/21

wenn kein Widerspruch kommt, wuerde ich das heute Abend hineinmergen.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Schrompf » 29.03.2013, 15:44

Go for it.
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3759
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Assimp - Brainstorming zum Release

Beitragvon Mr. S » 29.03.2013, 18:41

Also der STEP-Reader funktioniert nicht.

Auf der Webseite von Rexroth (http://www.boschrexroth.de) kann man bei den Zylinderprodukten sich Zylinder konfigurieren und bekommt diese dann unteranderem als STEP- oder IGES-Datei zum Download. Ich kann die STEP-Dateien mit OpenCascade einlesen und natürlich mit der Autodesk-Produktpalette aber nicht mit ASSIMP.
Mr. S
 
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 29.03.2013, 19:05

Assimp unterstuetzt kein STEP - es unterstuetzt IFC, das wiederum die STEP-Syntax nutzt.

D.h.: wir haben einen Parser fuer STEP-Dateien und eine fertige Implementierung eines sehr aehnlichen Formats, aber das STEP-Geometrieformat selber wird aktuell nicht unterstuetzt.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Krishty » 31.03.2013, 14:21

Wenn ich mich recht irre, umfasst auch die pure Referenz von STEP mehrere hunderttausend Seiten; und allein die im Standard vorgeschriebenen Standarddatenbeschreibungen sind schon 60.000 Zeilen vorverfasster Code. Zu der puren Datenbeschreibung kommt ja noch die Metadatenbeschreibung hinzu, weil auch, wie die Daten vorliergen, durch die Datei programmiert ist. Aus den hunderten Protokollen, die STEP umfasst (vom Produktentwurf mit Einzelschwerpunkten Schiffbau / Automobilbau / Flugzeugbau über Fertigung mit Schwerpunkten Metallbau / Elektrik bis zum 3D-Rendering der Produktwerbung) müsste man, sofern man nicht die gesamte Informatikinfrastruktur von Dassault nachprogrammieren will, die wichtigsten raussuchen und implementieren. Und dann das Glück haben, dass es auch Bosch-Rexroth-Zylinder abdeckt.

Ich tippe mal ins Blaue, dass vorgefertigte Lösungen nur für viel Geld und nicht im Quelltext verfügbar sind. Und wenn ein Einzelner das als Hobby implementieren muss, sollte er mindestens ein Jahr Arbeit einkalkulieren.

(Ich musste mal das STEP-Protokoll des Deutschen Stahlbauverbands implementieren, was mit 100 Seiten Spezifikation wirklich nur ein Popel ist. Dafür nötig waren unter anderem eine Datenbank mit Profiltypen (glaubt mal ja nicht, dass da Polygone in der Datei liegen!); CSG; Abschneiden solider Volumenkörper an Ebenen; usw usf. Sogar den Parser hat es mir zerschossen weil sie Schlüsselwörter eingeführt haben, in denen Operatoren vorkommen (!!!). Also viel Spaß, an wem auch immer das mal kleben bleiben wird.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6591
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 31.03.2013, 16:05

Dafür nötig waren unter anderem eine Datenbank mit Profiltypen (glaubt mal ja nicht, dass da Polygone in der Datei liegen!); CSG; Abschneiden solider Volumenkörper an Ebenen

Genau das habe ich fuer unseren IFC-Loader (der auf Basis von STEP arbeitet) implementiert. Beziehungsweise versucht - der CSG-Teil funktioniert eher schlecht als recht, man koennte ihn auch als einen riesigen Hack bezeichnen. Sind locker 10kloc. Eine gute CSG-Lib mit kompatibler Lizenz existiert meines Wissens nicht. OpenCASCADE ist a) riesig und b) LGPL.

Die Tatsache, dass dieser Code bereits existiert und klassisches 3D/CAD-Step in etwa dieselben Primitiven wie IFC kennt, ist auch der einzige Grund, weshalb eine STEP-Implementierung in Assimp grundsaetzlich auch ohne externe Lib denkbar waere bzw. viel vorhandener Code genutzt werden koennte.

Um den ganzen Spass zu parsen benutzen wir einen Code-Generator, der die EXPRESS-Spezifikation in sehr templatelastiges C++ umsetzt. Das DOM-Erzeugen damit dann das kleinste Problem …
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Chromanoid » 08.04.2013, 00:51

Aramis hat geschrieben:Danke, das wird auch geaendert! :-)

Eine Frage hierzu:

https://sourceforge.net/tracker/?func=d ... id=1067634

der Patch fuegt ein Key-Value Metadata-Feld zu aiNode hinzu. An sich ziemlich ordentlich und durchaus nuetzlich (nicht nur fuer IFC). Von mir aus koennten wir das aufnehmen.

Wie steht ihr dazu?

Nur am Rande, vielleicht kann man beim Blender-Import damit Custom Properties abfertigen. Das ist sicher nützlich. Allerdings unterstützt Blender mehr Datentypen, vielleicht kann man die Properties ja irgendwie als String darstellen.
Benutzeravatar
Chromanoid
Christian Kulenkampff
Moderator
 
Beiträge: 3720
Registriert: 16.10.2002, 19:39
Wohnort: Lüneburg
Alter Benutzername: atr_23

Re: Assimp - Brainstorming zum Release

Beitragvon kimmi » 08.04.2013, 17:29

Damit könnte man auch im BSP einiges an Attributen mit abbilden.

Gruß Kimmi
Benutzeravatar
kimmi
Kim Kulling
Moderator
 
Beiträge: 1386
Registriert: 26.02.2009, 10:42
Wohnort: Luebeck

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 08.04.2013, 18:08

Hoert sich gut an - eventuell finde ich naechstens mal Zeit fuer Blender-Props (oder hast du Lust?).

Ansonsten habe ich eben spontan Travis-CI an unserem Repository ausprobiert. Dabei handelt es sich um einen hosted CI-Dienst fuer OpenSource-Projekte, der fuer eine gegebene Matrix aus Build-Konfigurationen Repositories jeweils in eine frische VM klont, durchkompiliert und ggf. Tests ausfuehrt - und das nach jedem Commit ins Repos aufs Neue und auch als Vorschau beim Mergen von Pull-Requests. Im Fehlerfall kriege zumindest ich aktuell eine Mail. Ausserdem zeigt ein farbenfrohes Icon auf unserer Github-Startseite den zuletzt getesteten Buildstatus an.

Eingestellt hab ich mal clang und gcc mit ASSIMP_ENABLE_BOOST_WORKAROUND=YES - beide laufen durch, aber clangs Warnungen deuten auf einige handfeste Bugs hin.

Meiner Meinung nach eine nette Sache um in Zukunft schneller mitzukriegen wenn wir was kaputtmachen. Wenn ich Zeit dafuer finde, werde ich die ganze Testsuite darauf laufenlassen.
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

Re: Assimp - Brainstorming zum Release

Beitragvon Aramis » 21.04.2013, 15:11

CMake-Build fuer MSVC nutzt jetzt PCH + Multicore und braucht damit bei mir noch 30s (voller Rebuild auf RELEASE).
Benutzeravatar
Aramis
Alexander Gessler
Moderator
 
Beiträge: 1451
Registriert: 25.02.2009, 20:50
Wohnort: 2016

VorherigeNächste

Zurück zu Allgemeines Talk-Brett

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], Linkdex [Bot] und 1 Gast

cron