Thema: Delphi Vektor Problem (3D)

Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#24

Re: Vektor Problem (3D)

  Alt 10. Okt 2003, 16:29
Du setzt die Transformationsmatrix als Weltmatrix und renderst einfach die betreffenden Vertices, Rest erledigt 3D-Api bzw. Grafikkarte ;c)

Ich würde dir empfehlen, einfach die Punkte in Matrizen umzurechnen. Wie ich weiter oben schon erwähnte, bekommst du den Winkel (und somit die Rotation) über das Skalarprodukt und die Translation kannste ja direkt ausrechnen, davon ausgehend, dass du für jeden Knochen zwei Punkte hast (nämlich seinen Startpunkt und den Startpunkt des nächsten). Aus dem Winkel errechnest du die Rotationsmatrix und aus der Translation halt die Translationsmatrix, und dann multiplizierst du die beiden (aber bitte in der richtigen Reihenfolge, die ich gerade nicht im Kopf habe ) und setzt sie als Weltmatrix. Bei D3D also IDirect3DDevice9::SetTransform(D3DTS_WORLDMATRIX, &Matrix) oder so. Und dann renderst du die Vertices, die zu dem Knochen gehören -> Grafikkarte transformiert sie alle so wie den Knochen. Die Transformationsmatrizen berechnen kannst du z.B. mit den D3DXMatrixTranslation und D3DXMatrixRotationAxis Funktionen, im DirectX SDK steht aber auch, wie du die Matrizen ganz einfach von Hand berechnest. In dem Artikel, zu dem ich oben verlinkt habe, glaube ich auch ;c)
Ach, und ich glaube, eine Skalierung ist nicht mit dieser Methode zu erkennen -> einfacher wäre die Speicherung mit Matrizen wie z.B. das X-Format es macht.

So, und was meinst du jetzt mit ANWENDERFREUNDLICH? ;c)
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat