Seite 18 von 19

Re: Assimp - Brainstorming zum Release

Verfasst: 27.03.2013, 14:26
von Schrompf
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 27.03.2013, 16:18
von Mr. S
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 28.03.2013, 13:59
von kimmi
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

Re: Assimp - Brainstorming zum Release

Verfasst: 28.03.2013, 15:35
von Thoran
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

Re: Assimp - Brainstorming zum Release

Verfasst: 28.03.2013, 23:22
von Aramis
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 29.03.2013, 14:24
von Aramis
So!

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

wenn kein Widerspruch kommt, wuerde ich das heute Abend hineinmergen.

Re: Assimp - Brainstorming zum Release

Verfasst: 29.03.2013, 14:44
von Schrompf
Go for it.

Re: Assimp - Brainstorming zum Release

Verfasst: 29.03.2013, 17:41
von Mr. S
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 29.03.2013, 18:05
von Aramis
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 31.03.2013, 14:21
von Krishty
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.)

Re: Assimp - Brainstorming zum Release

Verfasst: 31.03.2013, 16:05
von Aramis
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 …

Re: Assimp - Brainstorming zum Release

Verfasst: 08.04.2013, 00:51
von Chromanoid
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 08.04.2013, 17:29
von kimmi
Damit könnte man auch im BSP einiges an Attributen mit abbilden.

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 08.04.2013, 18:08
von Aramis
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.

Re: Assimp - Brainstorming zum Release

Verfasst: 21.04.2013, 15:11
von Aramis
CMake-Build fuer MSVC nutzt jetzt PCH + Multicore und braucht damit bei mir noch 30s (voller Rebuild auf RELEASE).

Re: Assimp - Brainstorming zum Release

Verfasst: 21.04.2013, 17:33
von Schrompf
Cool, das ist doch was wert!

Re: Assimp - Brainstorming zum Release

Verfasst: 01.08.2013, 09:35
von Schrompf
Leute! Bin ich inzwischen der Einzige, der überhaupt noch die Stellung im Sourceforge-Forum hält? Da ist z.B. grad ne Frage zum Java-Port, von der ich keine Ahnung habe. Zeigt euch dort doch mal wieder.

Re: Assimp - Brainstorming zum Release

Verfasst: 01.08.2013, 10:03
von kimmi
Jupp, ich werde wieder aktiver werden. Hauskauf hat viel Arbeit mit sich gebracht, kann ich als Entschuldigung vorbringen.

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 01.08.2013, 10:05
von kimmi
Wer ist eigentlich der aktuelle Maintainer vom Java-Port? Weiß das hier jemand?

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 01.08.2013, 10:26
von Schrompf
Danke! Ich habe keine Übersicht, wie die Ports überhaupt funktionieren und wer da was getan hat... daher brauche ich da ja Hilfe.

Re: Assimp - Brainstorming zum Release

Verfasst: 01.08.2013, 10:29
von kimmi
ich kann mich da mal reinlesen. Vielleicht spricht der Code ja für sich :).

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 22.10.2013, 20:21
von Jonathan
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.
Sollte vielleicht mal geändert werden.

Re: Assimp - Brainstorming zum Release

Verfasst: 15.05.2014, 12:15
von Aramis
Ich betreibe ja schon seit einiger Zeit einen Online-3D-Model-Konvertier-Service, der intern natuerlich Assimp verwendet.

Anbei sind aktuelle Statistiken bezueglich der Popularitaet einzelner Formate:

Most popular input formats (count)
3ds (28717)
obj (22460)
stl (15340)
dae (15147)
dxf (10424)
lwo (7618)
x (5864)
mdl (3405)
blend (3063)
ply (2345)
smd (1632)
b3d (971)
md3 (845)
xml (745)
lws (575)
ase (566)
md5mesh (550)
xgl (318)
off (295)
md2 (271)

Most popular output formats (count)
obj (53570)
stl (23308)
3ds (21501)
dae (17042)
x (4124)
ply (3165)
stlb (76)

Re: Assimp - Brainstorming zum Release

Verfasst: 15.05.2014, 12:57
von Schrompf
Interessant. obj ist wahrscheinlich deswegen so beliebt, weil jede Mini-Engine und jedes Tool noch einen Loader dafür rumfliegen hat.

Re: Assimp - Brainstorming zum Release

Verfasst: 15.05.2014, 13:06
von Krishty
Ich komme bald an den Punkt, wo ich die Daten aus meinem Tool exportieren muss, so dass möglichst viele Engines sie verstehen. Da kommt mir so eine Statistik natürlich gelegen. Also OBJ ist de-facto-Standard, meint ihr?

Re: Assimp - Brainstorming zum Release

Verfasst: 15.05.2014, 13:28
von Schrompf
Für alles, was nur ne Triangle Soup will, ist OBJ der Standard. Sobald mehr als 64k Vertices rausfallen, stirbt OBJ. Sobald nennenswerte Hierarchien mit Transformationen abgebildet werden sollen, stirbt OBJ. Sobald irgendwas animiert werden soll, stirbt OBJ. Und zu guter Letzt: falls Du Lichtquellen, Kameras und dergleichen brauchst, ist OBJ aus dem Spiel.

[edit] Animationen, Kameras, Lichter... die anderen Formate können das theoretisch, aber die Exporter implementieren es trotzdem nicht, glaube ich.

Re: Assimp - Brainstorming zum Release

Verfasst: 15.05.2014, 23:12
von kimmi
Freut mich zu sehen, dass mein kleiner Loader sich so wacker hält. ich denke, einfache statische Meshes sind der Anfang einer jeder Engine und deswegen hält sich das Format. Außerdem ist es human-readable. Und exportiert man einfache Daten für FE-Netzte, reicht das auch. Mehr ist nicht drinnen.

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 13.08.2014, 01:00
von Jonathan
Wo wir hier schon einen inoffiziellen Assimp-Entwicklungsthread haben, poste ich gleich mal einen Bug.
Ich habe eine OBJ-Datei, von der ich glaube, dass sie früher einmal geladen wurde, jetzt streikt der Importer aber komplett. Weder mein Spiel noch Aramis Meshviewer kann das Modell laden.

Hier die Materialdatei:

Code: Alles auswählen

# Blender3D MTL File: BG_Sphere1.blend
# Material Count: 1
newmtl BG_Sphere_BG_Sphere2.jpg
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0
Ni 1.000000
d 1.000000
illum 2
map_Kd BG_Sphere2.jpg
Hier die Fehlermeldung:
The string "" cannot be converted into a value.
Hier der Code:

Code: Alles auswählen

// Assimp::ObjFileMtlImporter::load() Line 148

	while ( m_DataIt != m_DataItEnd )
	{
		switch (*m_DataIt)
		{
		case 'K':
			{
				++m_DataIt;
				.....
				else if (*m_DataIt == 's')
				{
					++m_DataIt;
					getColorRGBA( &m_pModel->m_pCurrentMaterial->specular ); <<---- hier
				}


// ObjFileMtlImporter::getColorRGBA(aiColor3D * pColor) Line 229
void ObjFileMtlImporter::getColorRGBA( aiColor3D *pColor )
{
	ai_assert( NULL != pColor );
	
	float r, g, b;
	m_DataIt = getFloat<DataArrayIt>( m_DataIt, m_DataItEnd, r );
	pColor->r = r;
	
	m_DataIt = getFloat<DataArrayIt>( m_DataIt, m_DataItEnd, g ); <<---- hier
	pColor->g = g;
Wie man sieht, steht nur 1 Wert drin, es werden drei erwartet und es kracht. Die Intuition wäre in diesem Fall natürlich, dass alle drei Werte 0 sind. Keine Ahnung, in wie weit das Standard ist, aber der Importer könnte ja auch einfach robust sein und Fehler tolerieren (ja, das ermutigt immer, unsaubere Dateien zu haben, aber trotzdem - man kann ja eine Warnung geben).
Ich bin in der Assimp-Entwicklung grad nicht so drin, sonst hätte ich vielleicht einen richtigen Patch eingereicht, aber mit dieser Beschreibung sollte es ja auch einfach zu fixen sein. Ich habe für mich fürs erste die Material-Datei gefixt, aber auf lange Sicht wäre ein gefixter Importer vermutlich schöner.

[edit]Ich habe das selbe Problem bei einem Haufen weiterer Dateien. Ich bin mir sicher, dass die früher einmal ohne Probleme geladen wurden.[/edit]

Re: Assimp - Brainstorming zum Release

Verfasst: 13.08.2014, 08:44
von kimmi
Danke für den Bugreport, wir kümmern uns drumm :).

Gruß Kimmi

Re: Assimp - Brainstorming zum Release

Verfasst: 16.08.2014, 11:52
von kimmi
Sollte erledigt sein.

Kimmi