Low fps after merging geografts with latest update

Issue #635 resolved
Buddyspencer13 created an issue

Hi Thomas, I wanted to comment about a problem I have found with the version of the addon you have uploaded, and I don't know if it has to do with some new feature you have added.

After merging the geografts I noticed that I had a big drop in performance fps, when playing an animation in the viewport.

Steps to reproduce the problem :

1- Load any model in DAZ, e.g. GF8, add one or two geografts in my case I used, golden palace and breastcular, save scene, export to Blender.

2- Once the model with the geografts is imported, join all the armatures, import pJCM's to the base model and transfer them to one or more geografts.

3- Save the scene in Blender, without merging the geografts to the model, this in order to compare both versions of the Addon, and to see the bug, when switching versions.

4- With the scene already saved, merge the geografts here, and turns off the global subdivision of the model or set it to 0, animate any bone for example the neck bone or the head, and preview the animation, with the fps predefined at 60.

5- Test both versions, from step 3.

Stable version and no problems for me so far (Import_Daz-2b1073e9f301) 1.6 and 1.5.1

When I did the test of the model and the animation I got a preview of 60fps or more.

Affected version (Import_Daz-533f0aa4a1e1) 1.6

When I did the test of the model and the animation I got a preview of 39-40fps

Comments (12)

  1. Thomas Larsson repo owner

    Strange. The only thing that has changed recently is that Merge Geografts adds a table with old and new vertex numbers to the mesh. I don’t see why that should affect performance, but in the last commit it was made optional, just in case it matters.

  2. Buddyspencer13 reporter

    From what I see it seems that something about the new function affects and lowers performance, I just tested the latest version, and I disabled the add vertex table function, before joining the geografts and now it no longer affects performance.

    The function of adding morphs once the geografts are joined on the base model, is lost along the way, by doing so, do you plan to make more changes or further changes for the time being? the function is amazing and it's fantastic that you managed to do this, but it could be improved without affecting the performance later on? thanks for that little temporary fix.

  3. Xin

    I suspect Blender’s implementation is looking for/expecting driven values in the huge table, which causes slow downs during playback. This is still a thing Blender’s animation system could handle better, but, as a workaround, have you considered using an external file Thomas? here is the relevant code I used for the HD addon, maybe you find it useful:

  4. Thomas Larsson repo owner

    Xin, the problem with an external file is that files can be moved, and then the connection is lost. Of course, textures are external files too, so external files can be handled, but I rather not open that can of worms.

  5. Thomas Larsson repo owner

    New tool in the last commit, Finalize Meshes, clears all collection properties for all meshes in the character. This should bring animation back to speed again, but also disables some features. It may be a good idea to save the file before doing this, so you can go back.

    Another thing that improves performance, if you have loaded many morphs, is the Disable Drivers button. I loaded 40 expression morphs (20 shapekeys) and got the following benchmarks:

    • 20 fps: Drivers on, meshes not finalized
    • 30 fps: Drivers on, meshes finalized
    • 30 fps: Drivers off, meshes not finalized.
    • 60 fps: Drivers off, meshes finalized.

    For some reason I had to enable and disable drivers one extra time before coming back to 60 fps.

    Loading the morphs took much longer when using a table than using the vertex numbers themselves, but that was expected, of course. So even if you can load morphs after geografts have been merged, it is better to do it before.

  6. Alessandro Padovani

    I’m a bit confused, couple questions please.

    1. What features are disabled by “finalize meshes“. Specifically, is it possible to animate the figure, I mean edit the animation keyframes, preserving morphs and jcms ?
    2. What “drivers off“ is for. I mean how the figure can be useful without drivers. Specifically is it possible to playback the animation preserving morphs and jcms ? I mean if we don’t need to edit the animation anymore, possibly baking it to FK before disabling drivers.

  7. Thomas Larsson repo owner
    1. All mesh collection properties at the end of geometry.py are cleared. Not sure exactly what is disabled, but probably merging geografts, transfer shapekeys to geografts, loading morphs after geograft merge, and maybe something more. Things you do when building the character. Morphs and jcms are still there.
    2. To speed up posing and preview in the viewport. Drivers should be turned on for rendering, but then the render time probably dominates anyway.

  8. Alex Johnson

    the most geografts with new update versions make for Fps low because the 2 systems of this system with the people are not compatible with each other, wordle so it is necessary to research to eliminate io games the most inappropriate things to create a version completely.

  9. Indulge Me

    My current viewport fps is 4, having merged geograft (the AP genital graft). I tried to minimise the morphs loaded, restricting to visemes, basic expressions and JCMs. I loaded morphs onto the graft of course, before merging. I’ve “Finalized” meshes. Tried it with all three rigs and it’s slow with all of them. I hate to say that Daz timeline is actually faster for me but it’s true. Without the graft Blender is very fast.

    This is actually one of the reasons I’d like to round-trip anim between Blender and Daz. I can work with a non-graft, non-morph character in Blender at real-time speed, then load anims into Daz and render/characterise/morph/expression over there. Unfortunately that aspect doesn’t work properly either. Anims and poses don’t seem to move the hip properly in the first instance. Anyway that’s a different issue.

  10. Log in to comment