3D Objekt Bounds nach Tranformation??



  • Hallo Leute,

    nehmen wir an ich habe einen Würfel, welcher anfangs bzw. beim Laden ne Kantenlänge von 4 einheiten hat, und postionier ihn im Zentrum. Nun führe ich Transformationen aus.. Skalierung rotaion etc.

    Wie bekommen ich nun die Objekt-Bounds des Würfel nach seine Tranformationen raus? Wenn er größer skaliert wurde und ne drehung drine hat, brauch er ja mehr Platz im 3D Raum.

    Grüße



  • hmm.. das din nennt man Galub BoundingBox.. aber nach der transformation des würfel verändert sich diese nich? Oder ist das normal? Bezieht sich die Boundingbox immer auf die Ursprungs maße des Objekts?



  • Du kannst die Eckpunkte der Bounding-Box einfach mit der gegebenen Matrix transformieren.
    Andersrum kannst Du auch die Frustum-Planes mit der Inversen in den Objektraum transformieren und dort pruefen, ob einer der (untransformierten) Boundingbox-Eckpunkte im Frustum liegt.



  • ahh ok, d.h. ich nehm die urspurng Bound des Objekts bzw. des Szenengraphs und erechne über die transforamtionsmatrix die BoundingBox.. naja ich arbeite in c# Viewport3D wpf ... Transform3D u. Visual3D Objekte.. hat jemand ne idee wie ich genau das da mache?

    EDIT: Es klappt danke :

    Transform3D xx= Transfrom3D();
    xx.Add(..);
    xx.Add(..);
    xx.Add(..);
    
    Rect3D CurrentBounds= xx.TransformBound(sczene.Bounds);
    

Anmelden zum Antworten