Seite 1 von 1

Sinn von aiProcess_Debone

Verfasst: 14.07.2012, 02:59
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

Re: Sinn von aiProcess_Debone

Verfasst: 15.07.2012, 18:03
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.

Re: Sinn von aiProcess_Debone

Verfasst: 15.07.2012, 18:14
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.

Re: Sinn von aiProcess_Debone

Verfasst: 16.07.2012, 01:29
von Aramis
Oje - ich hab ehrlich gesagt keine Ahnung, wie das im Preset landen konnte. Muss da jedenfalls dringend raus.

Re: Sinn von aiProcess_Debone

Verfasst: 16.07.2012, 01:43
von Artificial Mind
Wie heißt nochmal "git blame" für svn? ;)

Re: Sinn von aiProcess_Debone

Verfasst: 16.07.2012, 02:09
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

Re: Sinn von aiProcess_Debone

Verfasst: 16.07.2012, 11:30
von Artificial Mind
Ups, naja, ein Fix mehr :D

Re: Sinn von aiProcess_Debone

Verfasst: 16.07.2012, 15:52
von kimmi
Das ist falsch formuliert. Es sollte eher heißein: ein Fehler weniger :).

Gruß Kimmi

Re: Sinn von aiProcess_Debone

Verfasst: 18.07.2012, 00:33
von Aramis
r1292, done.

Re: Sinn von aiProcess_Debone

Verfasst: 18.07.2012, 13:56
von klickverbot
Bugfix-Release? Der Debian-Zug ist aber wohl schon längst abgefahren…

Re: Sinn von aiProcess_Debone

Verfasst: 20.07.2012, 21:10
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.

Re: Sinn von aiProcess_Debone

Verfasst: 21.07.2012, 11:23
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.