Sinn von aiProcess_Debone

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
mOfl
Beiträge: 37
Registriert: 23.10.2010, 21:53

Sinn von aiProcess_Debone

Beitrag von mOfl »

Hallo Leute,

ich habe eben meine Assimp-mit-OpenGL-Demo auf Assimp 3.0 umgestellt, was glücklicherweise sehr unkompliziert war. Mir ist allerdings aufgefallen, dass seit der letzten SVN-Version, die ich verwendet habe, das Post-Processing-Flag aiProcess_Debone eingeführt wurde. Was genau ist der Sinn dieses Flags? Sollen dadurch Dummy-Bones entfernt werden, die von manchen Programmen zu Meshes ohne Animation erstellt werden?

Für das bekannte Model des Zwergs hat das nämlich einen unangenehmen Nebeneffekt.

Ohne das Flag:
Bild

Mesh 1: 239 vertices, 1 bone, material index 0
Mesh 2: 1762 vertices, 39 bones, material index 1

Mit Flag:
Bild

Mesh 1: 57 vertices, 0 bones, material index 1
Mesh 2: 57 vertices, 0 bones, material index 1
Mesh 3: 239 vertices, 0 bones, material index 0
Mesh 4: 1648 vertices, 37 bones, material index 1

Offensichtlich degeneriert im Post-Processing-Schritt das größere Mesh (der Körper), das kleinere (die Axt) verliert seinen Bone und ist dann nicht mehr animiert, sondern liegt statisch im Ursprung.

Ich werde das Flag dementsprechend einfach nicht verwenden, aber ich will doch mal auf das Verhalten hinweisen, weil ich nicht weiß, ob das komplett durchdacht wurde, was das für Auswirkungen hat, wenn man das zum Preset aiProcessPreset_TargetRealtime_MaxQuality nimmt, welches relativ häufig defaultmäßig verwendet wird.

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

Re: Sinn von aiProcess_Debone

Beitrag von Schrompf »

Der Step war ein Beitrag eines Community-Mitglieds. Meiner Meinung nach eine selbstherrliche Pfeiffe, aber da das ein offenes Projekt sein soll, darf man Beiträge nicht aufgrund persönlicher Animositäten ablehnen. Der Step ist aber komplett optional und kommt (hoffentlich) in keinem der Presets vor. Ich halte ihn für nutzlos.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
mOfl
Beiträge: 37
Registriert: 23.10.2010, 21:53

Re: Sinn von aiProcess_Debone

Beitrag von mOfl »

Schrompf hat geschrieben:Der Step ist aber komplett optional und kommt (hoffentlich) in keinem der Presets vor. Ich halte ihn für nutzlos.
Doch, wie bereits erwähnt:

Code: Alles auswählen

#define aiProcessPreset_TargetRealtime_MaxQuality ( \
	aiProcessPreset_TargetRealtime_Quality   |  \
	aiProcess_FindInstances                  |  \
	aiProcess_ValidateDataStructure          |  \
	aiProcess_OptimizeMeshes                 |  \
	aiProcess_Debone						 |  \
	0 )
in Version 3.0.1270. Finde ich halt etwas riskant, weil das das Preset ist, das ich (und auch andere Leute) standardmäßig verwende.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Sinn von aiProcess_Debone

Beitrag von Aramis »

Oje - ich hab ehrlich gesagt keine Ahnung, wie das im Preset landen konnte. Muss da jedenfalls dringend raus.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Sinn von aiProcess_Debone

Beitrag von Artificial Mind »

Wie heißt nochmal "git blame" für svn? ;)
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Sinn von aiProcess_Debone

Beitrag von Aramis »

An der Art und Weise, wie ich es formuliert habe, konnnte man vermutlich schon heraushoeren dass ich den Patch damals eingecheckt habe :D
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Sinn von aiProcess_Debone

Beitrag von Artificial Mind »

Ups, naja, ein Fix mehr :D
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Sinn von aiProcess_Debone

Beitrag von kimmi »

Das ist falsch formuliert. Es sollte eher heißein: ein Fehler weniger :).

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

Re: Sinn von aiProcess_Debone

Beitrag von Aramis »

r1292, done.
klickverbot
Establishment
Beiträge: 191
Registriert: 01.03.2009, 19:22
Echter Name: David N.

Re: Sinn von aiProcess_Debone

Beitrag von klickverbot »

Bugfix-Release? Der Debian-Zug ist aber wohl schon längst abgefahren…
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Sinn von aiProcess_Debone

Beitrag von Aramis »

Naja, notfalls kann man die Leute ja drauf hinweisen, nicht das aiProcessPreset_TargetRealtime_MaxQuality -Flag zu verwenden.

Aktuell trudeln einige Berichte ueber Probleme mit dem Obj-Loader ein. Warten wir ab, ob sich die bewahrheiten bzw. bis sie gefixt werden, dann koennten wir evtl. ein Bugfix-Release in Erwaegung ziehen.
klickverbot
Establishment
Beiträge: 191
Registriert: 01.03.2009, 19:22
Echter Name: David N.

Re: Sinn von aiProcess_Debone

Beitrag von klickverbot »

Naja, das Problem, das ich sehe, ist, dass wohl viele Leute, die sich nicht weiter um die Details kümmern wollen, einfach eines der Presets verwenden werden. Bin mir aber nicht sicher, ob ich mit meiner Einschätzung richtig liege – bzw. weiß ich auch nicht, in wie vielen Fällen der Debone-Step wirklich versagt.
Antworten