[ASSIMP] Normierung von Quaternionen
Verfasst: 01.07.2012, 13:56
Das neue PhysX SDK (3.2) verhält sich sehr vorbildlich bei der Validierung von Daten. So bin ich aufgrund neuerlicher Crashes meines Import-Tools (fehlgeschlagene PhysX Assertions) darauf gestoßen, dass aiMatrix4x4::decompose() gar keine normierten Quaternionen liefert. Das könnte der Grund für eine Vielzahl von Problemen sein, die ich im letzten Jahr mit PhysX hatte (vor meinem Bug Report zu Mesh Scaling war PhysX selbst jedoch an einigen Stellen so buggy, dass ich den Fehler bis gerade eben nie vernünftig lokalisieren konnte). Deshalb die Frage: Ist das so gewollt?
Obendrein hat sich wohl leider ein grober Bug in die aiQuaternion::Normalize()-Funktion eingeschlichen, dessen bisherige Unbemerktheit schon äußerst überraschend ist: :mrgreen:
Obendrein hat sich wohl leider ein grober Bug in die aiQuaternion::Normalize()-Funktion eingeschlichen, dessen bisherige Unbemerktheit schon äußerst überraschend ist: :mrgreen:
Code: Alles auswählen
inline aiQuaternion& aiQuaternion::Normalize()
{
// compute the magnitude and divide through it
const float mag = x*x+y*y+z*z+w*w;
// BUG: mag ist Betrag zum Quadrat, Quadratwurzel fehlt
if (mag)
{
x /= mag;
y /= mag;
z /= mag;
w /= mag;
}
return *this;
}