Bitte testen: Skinning



  • Hallo,

    ich habe jetzt meinen 3ds max-Exporter soweit fertiggestellt. Er kann unter anderem auch Skinning mit Animationen exportieren, was Charakteranimationen mit Bones enorm vereinfacht.
    Ich würde mich freuen, wenn Ihr mal ein kleines Demoprogramm testen könntet und mir schreiben würdet, wie viele Frames pro Sekunde das Programm erreicht:
    http://www.scherfgen-software.net/downloads/tutorials/emm_demo_2.zip

    Hier findet Ihr die komplette Referenz meines EMM-Dateiformats:
    http://www.scherfgen-software.net/downloads/tutorials/emm.pdf

    Danke!



  • 60 fps im Vollbild, 1024x768.

    P4 2,5 GHz, ATI Raedon 9000

    Hast du VSync an? Im Fenster hab ich bei der Startgröße 500.



  • ~590 FPS auf GeForce 4 MX



  • 50fps bei 1024*768.
    Hab Ati Rage 128 pro und P3 550mhz.



  • Das V-Sync könnt Ihr im Menü (F2 drücken) ausschalten.
    Ich habe das DirectX-Sample-Framework verwendet.
    Aber die bisherigen Ergebnisse klingen gut 🙂



  • full screen 1280*960 85fps mit xp 1700+ und gf4 ti4200
    im normalen hab ich 490fps

    edit
    wenn ich vp auf software stelle hab ich im kleinen 620fps und im großen 85fps


  • Mod

    hardware VP 420fps
    software VP 1200fps

    p4 2ghz gffx5900 (glaube ich)

    rapso->greets();



  • Fenster:

    Auflösung [px] | Framerate [fps]
    ----------------------------------
    500 x 375      | ca 910
    1024 x 768     | ca 180
    1280 x 960     | ca 225
    

    Fullscreen: (1680 x 1050)
    Hier liegt die Framerate bei ca 60fps

    System:
    CPU: Intel Pentium M 1.5GHz
    GPU: Ati Mobility Radeon 9200 mit 64MB dedicated RAM.

    An den Einstellungen hab ich nix geschraubt, sondern alle so belassen, wie du sie zunächst aufsetzt.

    -junix



  • Danke an alle! Im Vollbildmodus sollte man D3DPRESENT_INTERVAL_IMMEDIATE wählen, dann wird V-Sync ausgeschaltet. Was mich wundert: Warum ist es mit Software VP schneller als mit Hardware VP? Hat jemand eine Idee?


  • Mod

    TomasRiker schrieb:

    Danke an alle! Im Vollbildmodus sollte man D3DPRESENT_INTERVAL_IMMEDIATE wählen, dann wird V-Sync ausgeschaltet. Was mich wundert: Warum ist es mit Software VP schneller als mit Hardware VP? Hat jemand eine Idee?

    zwei gründe die mir einfallen würden...

    wenn du einen vertexshader nutzt, könnte es am nicht für die gpu optimalem source liegen oder daran dass du vielleicht unmengen an constanten in die graka schieben mußt (Vielleicht die skinning matritzen).

    wenn du das skinning per cpu machst könnte ein bufferlock die gpu stallen während im softwaremode die gpu weiterläuft (weil auf einer vertexbuffer kopie gearbeitet wird) und man asynchron die daten in den buffer schaufelt.

    wäre also vielleicht gut wenn du sagen könntest wie du das skinning durchführst damit wir mögliche optimiserungspunkte finden 🙂

    was noch sein könnte, wäre ein vertexbuffer format, dass die graka nicht mag, z.b. weil es nicht 32byte alligned ist.

    rapso->greets();



  • Das Skinning wird in Software verarbeitet, mit einem dynamischen Vertex-Buffer. Man müsste also optimalerweise das Rendern und das Skinning zeitlich so legen, dass sie sich nicht in die Quere kommen...


  • Mod

    versuch mal ohne bufferlock und neufüllen des vertexbuffers das skinning abarbeiten zu lassen und uppe die version, dann kann ich dir sagen ob sich die hardware vp version beschleunigt, zur zeit ist die ja 3mal langsammer bei mir hier als software vp.

    rapso->greets();



  • Ja, es liegt definitiv daran - bei Skinning ohne Buffer-Lock schafft er bei mir 1800 Frames. Ich hab's jetzt so gemacht, dass standardmäßig D3DPOOL_MANAGED genommen wird, jetzt kommt er mit Lock auf 1500 Frames bei Hardware und 1000 bei Software. Ich denke, dass das OK ist...


  • Mod

    deswegen gibt es ja vertexshader, locks = evil 😉

    rapso->greets();



  • Bei mir(AMD Athlon 1.4Ghz 256mb Ram, Geforce2 Mx) läufts sogar auch noch mit
    ~80fps bei 1024 * 768.Geil! 😃
    Julian



  • Was ist das eigentlich genau was du da gemacht hast und testen möchtest?


  • Mod

    er ein hat plugin für 3dsmax geschrieben mit dem man ein animiertes objeckt aus max exportieren kann und es dann angezeigt wird. dabei benutzt er "skinning" um eine qualitativ hochwertige animation der objeckte zu erhalten bei relativ wenigen animationsdaten die anfallen.

    rapso->greets();



  • Auch über 1000 fps.

    Aber wehe man wagt es auf REF umzuschalten und dann zurück auf HAL...

    Athlon XP 1800+ / 512 MB / Radeon 9500



  • Demnächst wird es den Exporter und den Loader dann zum Download geben, damit man mit relativ wenig Aufwand animierte Szenen/Objekte (Spielfiguren) in seine Programme einfügen kann. Der Loader ist bisher nur für Direct3D ausgelegt, aber das Format an sich ist unabhängig von der Rendering-API.

    Ein Modell kann man dann z.B. so laden und eine Animation drauf abspielen:

    Scene player("player.emm");
    player.getRootObject()->playAnimation("walk");
    


  • hey,

    ich habe 2652 FPS im Fenster (standardeinstellung), ich mag dein Programm 😃


Anmelden zum Antworten