[DirectX] Objekte transformieren - Verständnisfrage



  • Hallo;

    wenn ich in DirectX ein Objekt transformieren will, muss ich dafür eine Matrix anlegen.
    Diese Matrix kann ich dann mit diversen DirectX-Funktionen bearbeiten, um z.B. das Objekt zu drehen.
    Die Transformation wird dann durch Aufruf von

    device->SetTransform(D3DTS_WORLD, &matrix);
    

    vor jedem Rendervorgang durchgeführt.

    Habe ich das so richtig verstanden? 😕

    Verbraucht der Aufruf von SetTransform viel Rechenleistung? Kann man das irgendwie optimieren?

    Tubos


  • Mod

    du hast es richtig verstanden, falls du einen andere transformation für das nun zu zeichnende mesh möchtest, wirst du das vorerst so machen müssen.

    später kannst du mit streamdividern und vertexshadern optimierungen durchführen dafür. aber die meißten spiele zur zeit machen es noch so wie du das richtigerweise verstanden hast 😉

    der aufruf verbraucht nicht mehr performance als die meißten anderen set... funktionen auch.

    rapso->greets();



  • Danke!



  • @ rapso:
    wie geht denn das:

    rapso schrieb:

    mit streamdividern und vertexshadern optimierungen durchführen

    ?

    würd mich mal interessieren, da ich grad am rumoptimieren bin.
    geht das dann auch im OpenGL standart (2.0?)?



  • die andre technik zieht bis zu 30% mehr leistung-.-


Anmelden zum Antworten