Rotationszentrum festlegen?



  • Hallo!
    Wie schon mehrmals gesagt arbeite ich ja an einem Animationsprogramm um aus statischen Models Animationen zu machen. Habe da jetzt Indexed Vertex Blending reingeschmissen, funktioniert auch ganz gut. Als erstes wollte ich den MS-Tiger zum Leben erwecken. Dazu wollte ich erstmal die Schwanzbewegung halbwegs realistisch hinbekommen. Zum Testen lies ich erstmal den kompletten Schwanz um 360° rotieren 🙂
    Leider ist aber das Zentrum der Rotation nicht wie ich es gerne hätte die Verbindung zum "Po" sondern ich glaube D3DXVECTOR3(0.0f, 0.0f, 0.0f) ... kann (sicher) man das ändern?

    Danke,
    Gruß,
    Kevin



  • Also ich würde dir vorschlagen, das Teil, das du rotieren lassen möchtest, hat den Punkt um den es rotieren soll bei 0,0,0. Dann musst du es nur an die richtige stelle im Raum schieben, nachdem du es gedreht hast.

    Das ist so das erste was mir einfällt.



  • Problem hierbei ist dass ich Indexed Vertex Blending verwende und mir DirectX die Matrizen eigenständig aufsetzt...ich gebe bei den Vertices an, welche Matrizen verwendet werden sollen und der benutzt die dann...das wird alles am Stück gerendert...aber für das Problem müsste es doch eine Lösung geben!
    Kevin



  • ?
    Weiß dazu keiner eine Lösung? Wozu gibts denn dieses Indexed Vertex Blending wenn ich damit keine wirklichen Rotationen auf Körper durchführen kann? Was hilft es mir wenn die immer um 0 0 0 gedreht werden? Hier gibts doch so viele Cracks...von euch muss doch jemand wissen wie man mit sowas umgeht? 😞

    Kevin



  • Du gibst doch sicher irgendwo eine Matrix an, oder nicht?
    Dann baust Du diese Matrix so zusammen, dass eben nicht um (0, 0, 0) gedreht wird.



  • Wenn du noch so nett wärst und mir sagen könntest wie...klar könnte ich bei der Matrix noch angeben, dass das der Schwanz mit dem Ansatz zum Hintern bei 0.0.0 ist, aber dann wird der da auch gerendert! Dann steckt der Schwanz im Bauch vom armen Tiger...supa 😕



  • wo ist denn das problem? einfach zum 0 punkt transponieren, dann drehen, dann wieder zurücktransponieren. Also wenn du es alles in einer matrix haben willst, einfach transposematrix*drehmatrix*transposematrix



  • ich dachte dann heben sich die transformationsmatrizen auf....hmm...falsch gedacht? danke!


Anmelden zum Antworten