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.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Mr. S
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von Aramis »

So!

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

wenn kein Widerspruch kommt, wuerde ich das heute Abend hineinmergen.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von Schrompf »

Go for it.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Mr. S
Beiträge: 27
Registriert: 09.06.2011, 09:06

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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 …
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von kimmi »

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

Gruß Kimmi
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von Aramis »

CMake-Build fuer MSVC nutzt jetzt PCH + Multicore und braucht damit bei mir noch 30s (voller Rebuild auf RELEASE).
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von Schrompf »

Cool, das ist doch was wert!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
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 - Brainstorming zum Release

Beitrag von kimmi »

Jupp, ich werde wieder aktiver werden. Hauskauf hat viel Arbeit mit sich gebracht, kann ich als Entschuldigung vorbringen.

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

Re: Assimp - Brainstorming zum Release

Beitrag von kimmi »

Wer ist eigentlich der aktuelle Maintainer vom Java-Port? Weiß das hier jemand?

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

Re: Assimp - Brainstorming zum Release

Beitrag von Schrompf »

Danke! Ich habe keine Übersicht, wie die Ports überhaupt funktionieren und wer da was getan hat... daher brauche ich da ja Hilfe.
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 - Brainstorming zum Release

Beitrag von kimmi »

ich kann mich da mal reinlesen. Vielleicht spricht der Code ja für sich :).

Gruß Kimmi
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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)
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von Schrompf »

Interessant. obj ist wahrscheinlich deswegen so beliebt, weil jede Mini-Engine und jedes Tool noch einen Loader dafür rumfliegen hat.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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.
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 - Brainstorming zum Release

Beitrag 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
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag 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]
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp - Brainstorming zum Release

Beitrag von kimmi »

Danke für den Bugreport, wir kümmern uns drumm :).

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

Re: Assimp - Brainstorming zum Release

Beitrag von kimmi »

Sollte erledigt sein.

Kimmi
Antworten