MDX9 - Probleme mit skeletaler Animation



  • servus,
    also ausgangspunkt ist mdx9 unter c# und skeletale animation

    ich wollte eigentlich schön alle vertices in einem vertexbuffer packen und dann mit einem indexbuffer die dreiecke rendern.
    aber jeder vertex bestimmt zu welchem bone er gehört und damit wird dann auch bestimmt welche Matrix ich in die worldmatrix stecke.
    mein problem ist nun, dass es eben dreiecke gibt, dessen vertices zu unterschiedlcihen bones gehören können. dh: ich male dann zB den ersten vertex des dreiecks mit matrix1 und muss dann die matrix2 in die worldmatrix stecken um dann die anderen beiden vertices mit matrix2 zu rendern. das bedeutet aber, dass sie einzelne drawIndexPrimitives-aufrufe benötigen. mdx kann dabei aber gar nicht verstehen, dass die ersten beiden vertices ein dreieck bilden sollen mit dem letzten vertex vom vorherigen aufruf.
    meine bisherige lösung ist es alle dreiecke, deren vertices zum selben bone gehören normal im vertex und indexbuffer gemalt werden und die dreiecke, deren vertices zu unterschiedlichen bones gehören einzeln per hand nachgezeichnet werden müssen. dh: matrix-multiplikationen werden auf der cpu ausgeführt und ständig über den Bus geschoben...
    eine alternative wären sonst nur vertexshader. aber an die trau ich mich im moment noch nicht dran. deshalb wollt ich fragen, ob da jemand schon erfahrung hat oder nur eine idee hätte oder ob es für solche fälle in mdx noch funktionen lauern, die ich noch nicht kenne.
    puh, recht langer text, aber irgenwie auch komisch das problem in worte zu fassen....

    heimschmiede


Anmelden zum Antworten