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

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

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
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:
Mesh 1: 239 vertices, 1 bone, material index 0
Mesh 2: 1762 vertices, 39 bones, material index 1
Mit Flag:
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