Directx 9 Translation

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von stefan15.

    Directx 9 Translation

    Hallo Leute!

    Ich bin momentan am verzweifeln...Mein Problem ist, dass ich ein Objekt unabhängig von der Umgebung bewegen möchte. Mein denkansatz ist wie folgt:
    Eine Hilfsmatrix anlegen mit der neuen Position
    Diese Matrix dann der Device übergeben.
    Liege ich da mit meiner vorstellung richtig oder geht das anders ? ?(
    Wenn es wie oben geschrieben funktioniert, wie setzt ich das um ? Meine bisherigen Versuche haben leider alle keinen Erfolg gebracht... ;(

    Danke für jeden Tipp !

    MFG Stefan

    Hier noch einer der Ansätze:

    VB.NET-Quellcode

    1. Dim helpmatrix As Matrix
    2. helpmatrix = Matrix.Translation(0.07, 0.0, 0.0)
    Hi
    einfach Translate der Instanz der bereits bekannten Matrix aufrufen. Du könntest zwar auch eine Matrix-Multiplikation durchführen, aber das ist extrem unperformant:

    VB.NET-Quellcode

    1. Dim myCurrentMatrix = iwas
    2. myCurrentMatrix.Translate(0.07, 0.0, 0.0)

    Da es sich nicht um eine Referenz handelt, musst du die Matrix anschließend wieder zuweisen.

    Gruß
    ~blaze~
    Aber dann bewege ich doch wieder alle objekte in der Matrix ?!?!
    Was ist denn die bereits bekannte matrix ? Die Worldmatrix ? Wie übergebe ich denn einer bestimmten Matrix die Objekte? Ich habe absolut keine idee wie ich das umsetzten soll...
    Schau noch mal, was ich geschrieben habe.

    VB.NET-Quellcode

    1. Dim matrix As Matrix = Matrix1
    2. Device.Transforms.World = matrix
    3. Draw1()
    4. matrix.Translate(1.0f,0.0f,0.0f)
    5. Device.Transforms.World = matrix
    6. Draw2()

    Schau dir mal Matrizen, Vektoren usw. genauer an, die sollte man bei DirectX schon verstanden haben.

    Gruß
    ~blaze~