Smooth Animation playback on DAZ Studio timeline

cain-xcain-x Posts: 158
edited December 1969 in Daz Studio Discussion

I’m most interested in DAZ Studio and viewport speed when posing & animating. DAZ will skip frames when it does not have the power to show all the frames during playback on the timeline. Poser does have the option to NOT skip frames but this is not available in Studio 4.6 (as far as I can see).

Preferably, I’d like to see an animation playout at 60 fps (or at least 30 fps) for a scene with one or two characters and mid to high poly count props (cars for example) with mid/high res textures. This is without frame skipping.

I understand for these situations turning subdivision to 0 and switching the view to smooth shaded or a wire frame will improve performance somewhat. However, it is still frame skipping (using a quad core Xeon proc with hyperthreading and nvidia quadro 2000). At best, I would achieve 5-10 fps. If set to bounding boxes, it is silky smooth of course.

What would be the cheapest recommended graphics card that can achieve this. Are there any CPU/RAM/mobo AND DAZ Studio settings considerations?

Animation in DAZ is important in my line of work and smooth playback would greatly improve my workflow. It would keep everything on one program - for my needs and simplicity.

Comments

  • bighbigh Posts: 8,147
    edited December 1969

    ffzero58 said:
    I’m most interested in DAZ Studio and viewport speed when posing & animating. DAZ will skip frames when it does not have the power to show all the frames during playback on the timeline. Poser does have the option to NOT skip frames but this is not available in Studio 4.6 (as far as I can see).

    Preferably, I’d like to see an animation playout at 60 fps (or at least 30 fps) for a scene with one or two characters and mid to high poly count props (cars for example) with mid/high res textures. This is without frame skipping.

    I understand for these situations turning subdivision to 0 and switching the view to smooth shaded or a wire frame will improve performance somewhat. However, it is still frame skipping (using a quad core Xeon proc with hyperthreading and nvidia quadro 2000). At best, I would achieve 5-10 fps. If set to bounding boxes, it is silky smooth of course.

    What would be the cheapest recommended graphics card that can achieve this. Are there any CPU/RAM/mobo AND DAZ Studio settings considerations?

    Animation in DAZ is important in my line of work and smooth playback would greatly improve my workflow. It would keep everything on one program - for my needs and simplicity.

    graphic card will not help - sounds like you need more memory

  • chorsechorse Posts: 163
    edited August 2014

    The single frame can be done in DS. All that would be needed id someone to program the button. There was the Animator DAZ Studio PlugIn for DS3 that had an option to do this. The plugin was really buggy, but the single frame worked well. DS automatically adjusts the frame rate to the power of the computer. To get single frames you will need an extremely powerful computer with lots of RAM. I talking about 8 - 12 processors and lots of RAM.

    There is another problem with DS4 and above. I believe it is processing items in the scene that are not needed by certain modes. I.e. when you switch to bounding box or wire bounding box there are hardly any polys to push and the animation should run at near normal speed single frames, but since DS3, this has not been the case. There is no, or a very slight determinable difference in speed between full texture mode and wire bounding box mode. The same animation scene in Poser or DS3 runs at almost full speed in single frame bounding box modes. I can only assume, that in DS4 and above, unnecessary objects or items are being processed in all nodes, which of course defeats the purpose of the nodes in the first place.

    I made a bug report on this when they actually had a bug reporter and they confirmed the behavior, but did not do anything about it. If you wish maybe you should give the new bug report a try.

    Post edited by chorse on
  • cain-xcain-x Posts: 158
    edited December 1969

    Thanks for the feedback.

    @chorse: Do you have a bug number I can reference? I'd be interested to see the progress of it. It seems if money was no issue, we may still be running into some bug or ceiling preventing smooth playback on the viewport.

    Does anyone have any experience with fluid animation playback on the viewport (with a single Genesis model, fully clothed and texture shaded)?

    I've got an older Dell Precision T3500 (Xeon W3530 @ 2.80 Ghz quad core with Hyper-Threading, 6 Gig RAM and a NVIDIA Quadro 2000). This was my system when I had to work on CAD stuff from my work. It has now been handed down to me as they spec out a new machine. I do have 12 more Gigs laying around I need to install so I will get on installing more RAM which may be the issue as you both pointed out.

    I know where DAZ is coming from and it is no animation powerhouse. However, there are some neat tools that make it worth while to animate simple things in (i.e. DAZ scripting, puppeteer, tool settings, etc). With the content available and the ease of posing, animation is not far behind. I hope they build this out more.

  • chorsechorse Posts: 163
    edited September 2014

    The bug report (47968) was made in 2012 under the old Mantis bug tracker which is no longer available. DAZ basically said there wasn't a problem. Actually I should have probably emphasized that it was the frame rate that increased not the overall animation time. Here is the the original bug report thread:

    Date Submitted: 2012-09-22 05:58 MDT
    Last Modified: 2012-09-24 02:53 MDT
    ======================================================================
    Summary: Choosing Wire or Solid Bounding Box No Longer Enhances Posing Speed or Animation playback

    Description:
    Previously choosing wire or solid bounding box from the document window enhanced the performance and playback of animation. Now these settings have no effect on posing speed or animation playback. They program responds similar to full texture shaded setting.

    It was convenient use the bounding box settings, because it would playback an animation scene almost at frame by frame. This was extremely useful for viewing the animation and correcting movement anomalies that are missed in the skip frame mode. We now have to render out the scene first to see these anomalies. This is a time-waster.

    It was also useful in quickly posing/positioning large movements/position of characters and objects in the scene.

    Although the current preview pane speed is greatly enhanced, and thanks for that. It is significantly slower in the bounding box mode than previous versions of DS.
    ======================================================================

    ----------------------------------------------------------------------
    (0102316) DoctorJellybean (manager) - 2012-09-24 02:54
    https://bugs.daz3d.com/view.php?id=47968#c102316
    ----------------------------------------------------------------------
    Assigned to Spooky, as he is the animation guru :)

    ----------------------------------------------------------------------
    (0102334) DAZ Spooky (administrator) - 2012-09-24 13:51
    https://bugs.daz3d.com/view.php?id=47968#c102334
    ----------------------------------------------------------------------
    I am seeing a speed up on Genesis, roughly half a second on a 6 second Animation. Same animation with V4, roughly a second difference.

    Once you start adding lots to the scene the draw becomes secondary to the binding due to the polycount and the difference gets smaller to non-existent.

    ----------------------------------------------------------------------
    (0102336) chorse (reporter) - 2012-09-24 14:44
    https://bugs.daz3d.com/view.php?id=47968#c102336
    ----------------------------------------------------------------------
    Yes there is a slight increase, but compared to previous versions the increase is almost insignificant. Since I like to use the bounding box as a last check on the animation before rendering out the scene, it is usually fully populated. But in previous versions of DS the loaded scenes did not cause this a significant slowdown in bounding box or wire-frame mode.

    So I am thinking something is being calculated that does not need to be calculated in wireframe or bounding box mode.

    ----------------------------------------------------------------------
    (0102337) DAZ Spooky (administrator) - 2012-09-24 14:57
    https://bugs.daz3d.com/view.php?id=47968#c102337
    ----------------------------------------------------------------------
    Binding needs to be calculated for the bounding boxes to be where they are supposed to be.

    Post edited by chorse on
  • ReDaveReDave Posts: 815
    edited December 1969

    If the slow-down also happens in wireframe or bounding box modes I'd say it's due to smoothing modifiers, which are a CPU only thing. However part of the problem can also be video-card related.
    DS skips frames by default; to play them all, you need to enable that option by going on the top right corner of the DAZ Studio Timeline and select "Play All Frames". However by selecting it I'm getting a slower than real-time replay (it takes about 6 seconds for 30 frames, at 30fps) using just Stonemason's Enchanted Forest and four figures (V3 RR, V3 SAE, Genesis1 and Genesis2 ) doing random aniblocks. This despite the fact I have a pretty strong videocard: nvidia 670m with 3GB of memory.

  • chorsechorse Posts: 163
    edited December 1969

    I was just saying in DS 4.XX and above the wire or solid bounding box should run at near single frames at normal speed, perhaps skip every 2nd or 3rd frame, but not 6 to 10 frames like it does in full texture mode. In DS 3.xx the animation would run at near single frame rate in the wire or solid bounding box mode, the same for Poser 2014. Alternatively in DS4.XX , the change in the number of frames skipped is almost imperceptiblebetween full texture mode and wire bounding box mode. Something is wrong in the way DS.4 is rendering the animation. I assume it is calculating something in the scene that it does not need to. In the wire bounding box mode there should be significantly less to render, and a significant decrease in the number of frames skipped, but that does not appear to be the case in DS4.XX.

    I was just pointing it out in the bug tracker, but the developer did not see anything wrong. IMHO DS was developed mainly for 2D artists, most of the animation enhancements have been by third party developers. I like using DS for animation because I can work quicker. The posing tools are so much better than any other program out there, but I am not sure how much focus the the developers give to DS animation.

    I have a Intel QuadCore processor and 16 GB Ram, so I do think it's the processor.

  • philiphowephiliphowe Posts: 53
    edited September 2014

    What ReDave said is correct. If you turn off smoothing for the clothes, you will get faster previews in your animations. I just went through this entire process and tested it again- with smoothing on, it slows down. (You turn off smoothing in in the parameters tab, per item.) You can also drop the Subdivision level down, as they said, since its an animation, unless you are doing closeups where the figure stands still, otherwise its overkill. The default Genesis/2 figures all use hi-res mats made for detailed close up renders, not animations. Downsizing some of the textures means less load = faster animations.
    I'm running 32gigs of ram on an 8 core with a fast GPU. At least in my case its wasn't the processor as much as the unneeded hi textures and especially having smoothing turned on.
    Now, if I can just figure out why these damn aniblocks are suddenly giving me trouble. I know you should always start with a base T (Parameters- reset to Clear figure pose) but when I use a second one, G2 suddenly wraps her arms around herself. It wasn't doing that before, worked fine and I use all G2 aniblocks. Beats me, just another thing to have to figure out...
    Update- just figured it out. It works only if I use the top level of Animate2, not a subtrack.
    Now, however, when I go to bake it to the timeline, it reverts my child morph back to an adult. Hummm... Onward...

    Post edited by philiphowe on
  • bighbigh Posts: 8,147
    edited December 1969

    What ReDave said is correct. If you turn off smoothing for the clothes, you will get faster previews in your animations. I just went through this entire process and tested it again- with smoothing on, it slows down. (You turn off smoothing in in the parameters tab, per item.) You can also drop the Subdivision level down, as they said, since its an animation, unless you are doing closeups where the figure stands still, otherwise its overkill. The default Genesis/2 figures all use hi-res mats made for detailed close up renders, not animations. Downsizing some of the textures means less load = faster animations.
    I'm running 32gigs of ram on an 8 core with a fast GPU. At least in my case its wasn't the processor as much as the unneeded hi textures and especially having smoothing turned on.
    Now, if I can just figure out why these damn aniblocks are suddenly giving me trouble. I know you should always start with a base T (Parameters- reset to Clear figure pose) but when I use a second one, G2 suddenly wraps her arms around herself. It wasn't doing that before, worked fine and I use all G2 aniblocks. Beats me, just another thing to have to figure out...
    Update- just figured it out. It works only if I use the top level of Animate2, not a subtrack.
    Now, however, when I go to bake it to the timeline, it reverts my child morph back to an adult. Hummm... Onward...

    I know child G1 works fine with aniBlock bake to DS timeline
    don't have child for G2

  • philiphowephiliphowe Posts: 53
    edited December 1969

    I was able to make it work without reverting to adult again or losing the other morphs. Looks like you have to go to the keyframe mode in Animate2 to save the aniblock, which shows up under My Lib/aniblocks. Kind of cool, I can use any of the ones I make for any characters.
    Since this works, I see no reason to do the test animations with the figures in clothing. Seems to run MUCH faster if I just do the initial aniblocks with the base G2 figure, then save it and use it on my morphed figure with clothes when ready. I'll test that next.
    Apparently, the subtracks need to be saved as separate aniblocks. I was hoping that the face morphs I made would save into the body aniblocks but the don't. So I'll go back to yet another saved version and grab those, combine them if possible, bake this to Timeline, click on the baked timeline and make a new aniblock (not sure what one is best - there are 2 options, Direct Copy or Transofr to Objects POV) Then click on this new aniblock, title it, and save it as a new aniblock that goes in my animate folder.
    That's the process... .so far. Inching my way there. These would have been much easier, of course, with any manuals. I watched and read up on anything I could find. At least this way its forcing me to memorize this rather awkward process. If DS had a more complete timeline with real key graphs that you could delete and add to at will, it would all be so much faster and smoother. Not sure why they don't except for the obvious - the program was designed for still renders, not animation. I'm tempted to try it in Maya or Max via the Alembic exporter. From what I've seen of iClone, the only advantage there, if there is one, is the facial morphs and talk, or text to speech implementation. Curious.

  • cain-xcain-x Posts: 158
    edited December 1969

    Alright, I found an opportunity to do some Fraps testing of the Viewport. I don't have screenshots on me but I'll try my best to describe the scene. This is on the same Intel Xeon quad and Quadro 2000 card using DAZ Studio v4.6.

    Scene:
    V4.2 EZ figure (with a morph applied to change the facial features) with shorts, bikini top, and shoes. Long hair included. V4 is seated in a medium poly car (Noble m400 for reference). Everything textured (low-medium sized maps). The animation has V4 in the act of driving (steering, shifting, pedal pumping, body related movement). Most of the animations were done via Puppeteer. 2380 frames total at 30 fps.

    - Camera moving about a paused (static) scene. Capped at 60 fps.

    - Playing the full scene (regardless of camera position) -
    V4 resolution:
    Base: 7-8 fps
    17k: 8-9 fps
    4k-2k: 9-10 fps
    1K: 10 fps solid

    - Playing another project where the legs and feet are only moving - Base res: 10 fps peaking 11 fpa

    Oddly, smooth shaded has no affect on the fps. Changing to Wirebounded box only improved it to 10-11 fps. Very very slight improvement.

    - Deleted the car mesh (including interior): 10 fps normally and peaking at 11 fps.
    So it looks like removing unneeded static mesh objects does improve it but really not all that much. Imperceptible to human eyes. I should note that the steering wheel and shifter were animated so perhaps that may have had some sway in the bench mark.

    - Removed V4 clothing (shorts and top): 15-16 fps - min 14 fps
    Dramatic improvement here, even when said items were not visible in the Viewport.

    - Removed hair: avg 22 fps peaking 23 fps
    Another Dramatic improvement. The hair is also rigged and followed the motions of the head.

    - Removed shoes: avg 28 fps peaking 29 fps
    I was surprised here. Not sure what poly count those shoes were but they were only high heeled sandals.

    - Removed non-visible shoes: avg 30 fps peaking 32 fps
    I was testing shoes and I made these invisible. Apparently they were still fit to V4 so I removed them.
    Wirebounding mode does not improve here.

    - Removed pedals (gas, brake, clutch): Now peaking at 33 fps
    This as the last animatable item to be removed.

    - Setting V4 back to Base res: 15 fps peaking 16 fps
    I've noticed that if V4 has some extra motion (moving many bones), the fps drop is 1fps. Not much but interesting to note.

    - V4 at 1K res and having her foot selected using the Universal tool: 16 fps
    This is a dramatic drop. Apparently when DAZ has to draw the universal tool (for xyz movement) on her foot, it causes the fps to go down.

    - V4 at 1k res and waist selected (locked from moving): 30 fps avg
    As long as the tool does not need to be redrawn on the screen, it does not impact the overall fps much. However, it still drops it some.

    Conclusions and additional observations:
    It seems most of the impact is due to the IK calculations that DAZ must perform to move the respective meshes (v4, clothes, shoes, hair, etc...) during an animation. If bounding boxes are affected, then it may just be the IK calculations. Fewer the moving parts, better the overall fps. Looking at the CPU, it never peaks above 12% utilization (only using a single thread when Multithreading is On) and the GPU core load is averaging 8%. I can't see where the bottleneck is happening. I've already upgraded my memory to 18 Gig so that should be plenty.

    Perhaps the animation code (as well as posing) is not optimized for multithreaded operation. The more meshes that must move/morph during posing/animation, the slower the fps. Can anyone from DAZ or knowledgeable mods also contribute to this discussion? Is there room for improvement here in the future? Is there anything in addition to my findings that can further increase the animation playback frame rate?

    Thanks!

  • cain-xcain-x Posts: 158
    edited December 1969

    Actually, I should say that removing static meshes can improve frame rate by 2-3 fps in certain camera angles and depending on what is visible.

  • cain-xcain-x Posts: 158
    edited December 1969

    Anyone from DAZ at all that can comment or am I posting in the wrong forum?

    Some more testing was done and it seems that making the mesh invisible does not improve anything in regards to FPS playback performance.

  • cain-x said:

    Alright, I found an opportunity to do some Fraps testing of the Viewport. I don't have screenshots on me but I'll try my best to describe the scene. This is on the same Intel Xeon quad and Quadro 2000 card using DAZ Studio v4.6.

    Scene:
    V4.2 EZ figure (with a morph applied to change the facial features) with shorts, bikini top, and shoes. Long hair included. V4 is seated in a medium poly car (Noble m400 for reference). Everything textured (low-medium sized maps). The animation has V4 in the act of driving (steering, shifting, pedal pumping, body related movement). Most of the animations were done via Puppeteer. 2380 frames total at 30 fps.

    - Camera moving about a paused (static) scene. Capped at 60 fps.

    - Playing the full scene (regardless of camera position) -
    V4 resolution:
    Base: 7-8 fps
    17k: 8-9 fps
    4k-2k: 9-10 fps
    1K: 10 fps solid

    - Playing another project where the legs and feet are only moving - Base res: 10 fps peaking 11 fpa

    Oddly, smooth shaded has no affect on the fps. Changing to Wirebounded box only improved it to 10-11 fps. Very very slight improvement.

    - Deleted the car mesh (including interior): 10 fps normally and peaking at 11 fps.
    So it looks like removing unneeded static mesh objects does improve it but really not all that much. Imperceptible to human eyes. I should note that the steering wheel and shifter were animated so perhaps that may have had some sway in the bench mark.

    - Removed V4 clothing (shorts and top): 15-16 fps - min 14 fps
    Dramatic improvement here, even when said items were not visible in the Viewport.

    - Removed hair: avg 22 fps peaking 23 fps
    Another Dramatic improvement. The hair is also rigged and followed the motions of the head.

    - Removed shoes: avg 28 fps peaking 29 fps
    I was surprised here. Not sure what poly count those shoes were but they were only high heeled sandals.

    - Removed non-visible shoes: avg 30 fps peaking 32 fps
    I was testing shoes and I made these invisible. Apparently they were still fit to V4 so I removed them.
    Wirebounding mode does not improve here.

    - Removed pedals (gas, brake, clutch): Now peaking at 33 fps
    This as the last animatable item to be removed.

    - Setting V4 back to Base res: 15 fps peaking 16 fps
    I've noticed that if V4 has some extra motion (moving many bones), the fps drop is 1fps. Not much but interesting to note.

    - V4 at 1K res and having her foot selected using the Universal tool: 16 fps
    This is a dramatic drop. Apparently when DAZ has to draw the universal tool (for xyz movement) on her foot, it causes the fps to go down.

    - V4 at 1k res and waist selected (locked from moving): 30 fps avg
    As long as the tool does not need to be redrawn on the screen, it does not impact the overall fps much. However, it still drops it some.

    Conclusions and additional observations:
    It seems most of the impact is due to the IK calculations that DAZ must perform to move the respective meshes (v4, clothes, shoes, hair, etc...) during an animation. If bounding boxes are affected, then it may just be the IK calculations. Fewer the moving parts, better the overall fps. Looking at the CPU, it never peaks above 12% utilization (only using a single thread when Multithreading is On) and the GPU core load is averaging 8%. I can't see where the bottleneck is happening. I've already upgraded my memory to 18 Gig so that should be plenty.

    Perhaps the animation code (as well as posing) is not optimized for multithreaded operation. The more meshes that must move/morph during posing/animation, the slower the fps. Can anyone from DAZ or knowledgeable mods also contribute to this discussion? Is there room for improvement here in the future? Is there anything in addition to my findings that can further increase the animation playback frame rate?

    Thanks!

    Actually this is a very interesting discussion for animators and it seems in 2020 much didn't happen in this regard. I am experiencing the same issues as you. When I remove g8 clothing the animation gets much smoother (even when it was hidden before). My CPU also has almost no load, but the viewport is only giving about 8 FPS. Not smooth at all. 

    Only solution is remove the clothing, but how should I animate without the clothing. In many scenes the clothing is important to see for collission for example. 

    Did anybody already post a feature request in this regard? 

  • Yeah this is definitely an issue that I'm running into. 

    Would love some guidance here. 

  • yonderworks said:

    Yeah this is definitely an issue that I'm running into. 

    Would love some guidance here. 

    The simplest and most accurate way is to just make a test render. This can be highly optimized. In the render settings editor tab, under the render engine dropdown, select viewport. While it renders you can watch the timeline single-step through each frame in the render range. On my machine (intel i7 and I'm pretty sure GPU isn't involved in drawing the viewport) this takes 3 to 5 seconds per frame, so it's a very fast render. And you can keep all clothes visible and all smoothing, collision, and joint correctives active. Just make sure that you have a a scene headlamp active because iray lighting of course won't be processed. 

  • mbh1729_1bc220806c said:

    yonderworks said:

    Yeah this is definitely an issue that I'm running into. 

    Would love some guidance here. 

    The simplest and most accurate way is to just make a test render. This can be highly optimized. In the render settings editor tab, under the render engine dropdown, select viewport. While it renders you can watch the timeline single-step through each frame in the render range. On my machine (intel i7 and I'm pretty sure GPU isn't involved in drawing the viewport) this takes 3 to 5 seconds per frame, so it's a very fast render. And you can keep all clothes visible and all smoothing, collision, and joint correctives active. Just make sure that you have a a scene headlamp active because iray lighting of course won't be processed. 

    Best tip ever for checking your animations that I have found.  The viewport render is extremely fast, about 1 sec per frame on my pc, so I can get a look at what I am working with in a few minutes, versus an hour or two for an non viewport render.  thx for this tip!!

  • mbh1729_1bc220806c said:

    The simplest and most accurate way is to just make a test render.

    I also wrote a little program that I integrated into explorer to right click on a folder and have ffmpeg join all the images inside it into an .mp4.   I don't think you need code actually, you can probably do it by adding a registry entry.  This is the best "full fps preview" I know of.  Otherwise in later Daz versions there's a Play All Frames option, but it's obviously not full speed.  Daz is super slow compared to anim playback in, say, Blender.  Probably all the morph work it's doing.  Blender also slows down once you've got all the JCM etc. hooked up.

Sign In or Register to comment.