Animation über Scenenode-transformation oder Skeleton?



  • Hallo Leute,

    was is der übliche Vorgang für Animationen bzw. Bewegung von Modellen in einer 3D-Umgebung?

    Nehmen wir an ich möchte einen Industrie-Robotor animieren. Da hätte ich ja zwei möglichkeiten:

    1. Ich zerlege das Modell in einzelen Geometrie-Knoten für jedes Roboter-Arm-glied und bewege die Achsen diese über Scenenode-rotationen.

    2. Ich erstelle ein Skeleton welches ich entsprechend der Robotorachson ausrichtige, und animiere den Robotorr über das sekeletion.

    Welche Option braucht mehr Performance, wann wird welche eingesetzt? (ich verwende ogre3d)



  • In deinem Fall macht natürlich nur die Scenenode-Rotationen Variante Sinn. Warum? Weil ein Roboter aus vielen einzelteilen besteht, die über Achsen und ähnliches verbunden sind, dia aber alle einzeln nur rigide transformiert werden (d.h. sie verbiegen sich nicht).

    Da sowas bei Mensch und Tier unrealistisch aussieht gibt's Skelettanimation hier können mehrere rigide Trafos auf einen Teil des Meshes wirken. D.h. ein Vertex wird entsprechend aller auf ihn wirkenden Trafos transformiert und dann werden diese transformierten Positionen interpoliert. Im Ergebnis verformt sich z.B. ein Knie dann irgendwie nicht-rigide. Aber du musst ein Skelett definieren, und noch schlimmer, für jeden Vertex die Gewichte bezüglich aller auf ihn wirkenden "Knochen" optimal bestimmen.

    Ich spiel zwar keine Spiele, gehe aber davon aus, dass darum in den meisten Spielen noch die Scenenode-Rotationen Variante verwendet wird.


Log in to reply