Fibermesh hair and viewport lag

marblemarble Posts: 7,500

I have some really nice hair items which are fibremesh. I'd love to use them more but I find it kills the viewport response so that posing becomes a real PITA. So I end up not using them.

Is there a way to improve the viewport performance? I tried the usual stuff in preferences - hardware alias and using the "Best" setting but it is still very slow. I am using the normal OpenGL view, not the IRay preview.

Comments

  • DaWaterRatDaWaterRat Posts: 2,885

    Maybe turn their visibility off until everything else is posed?

    I make an active effort to avoid fibermesh for exactly this reason.

  • marblemarble Posts: 7,500

    Turning off the visibility of the hair makes no difference. I also thought it would but no joy.

  • linvanchenelinvanchene Posts: 1,386
    edited June 2017

    edited: rephrased some sentences and added more information

    Turning off the visibility of the hair makes no difference.

    That is odd. You should see an improvement when hiding high geometry count objects.

    -> Which viewport drawing settings have you been using?

    -> Can you give a specific product example which type of fibermesh hair is giving you trouble?

    - - -

    - - -

    Some general information about fibermesh hair as a starting point to make sure we are talking about the same things:

     

    ->  Fibermesh hair in the narrower sense of meaning does not use transparency maps at all.

    The thickness of fiber hair can be

    - a strand of points (no thickness -> no refraction, no subsurface scattering, just backlighting effects)

    - a thin cylinder volume in the form of a hair strand (the increased point count allows for thickness -> refraction, subsurface scattering possible)

    - - -

    - Some render engines support spline based fiber mesh hair.

    The benefit of splines is that they are not using up a lot of space in RAM and VRAM because the hair is not based on actual geometry. Just a preview in the form of curves is shown in the viewport and the final hair quality will show up during rendering.

    - - -

    - Some artists just create really thick fiber mesh hair with a low hair strand count.

    The benefit of those hairs is that they give realistic subsurface and refraction effects for figures standing in the background when a light source shines at the head from behind.

    However, up close those thick fiber hair types may look more artificial then higher quality transparency map hair types.

    - - -

    - Some artists combine countless thin layers of plane shaped hair strands with transparency maps. Depending on your system and render engine those "mixed fiber planes and transparency map" hair types

    - slow down the real time and openGL viewport

    - cause artifacts in 3rd party render engines that impose a limit on maxium ray bounces through transparency  map layers

    - > 100s of transparency layers may actually be slower to render than point strand or volume based  fiber mesh hair without any transparency maps. (!!!)

    - - -

    - - -

    Suggested system requirements for "high quality" cylinder based fiber mesh hair simulating a real life hair strand count:

    For using geometry based fiber mesh hair with around 140'000 hair strands you may at least want 32 GB RAM and 8 GB of VRAM.

    - - -

     

     

    Post edited by linvanchene on
  • marblemarble Posts: 7,500
    edited June 2017

    Can you give a specific example which fibermesh hair is giving you trouble?

    - - -

    No point of me writing a "10 page essay" about using fibermesh hair if we might not be talking about the same thing.

    - - -

    Just the 1st part of the essay to give you an idea what kind of can you are about to be opening:

    - - -

    ->  Fibermesh hair in the narrower sense of meaning does not use transparency maps at all.

    The thickness of fiber hair can be

    - a strand of points (no thickness -> no refraction, no subsurface scattering, just backlighting effects)

    - a thin cylinder volume in the form of a hair strand (the increased point count allows for thickness -> refraction, subsurface scattering possible)

    - - -

    Some artists have come up with some "interesting" solutions that combine countless thin layers of hair strands with transparency maps. Depending on your system and render engine those "mixed fiber and transparency map" hair types

    - slow down the viewport

    - cause artifacts in 3rd party render engines that impose a limit on maxium ray bounces through transparency  map layers

    - > 100s of transparency layers may actually be slower to render than point strand or volume based  fiber mesh hair without any transparency maps.

    - - -

    Suggested system requirements for "high quality" fiber mesh hair simulating a real life hair strand count:

    Using fiber hair with around 140'000 hair strands you may at least want 32 GB RAM and 8 GB of VRAM.

    - - -

    The hair I tried today was Soto's Buzzed Hair and also Short Cropped Hair by RedzStudio. I have no idea how many strands they have.

    My PC is Windows 10 64 bit with an i7 6700 CPU and 32GB RAM. I have a GeForce 970 to drive the display, etc., and a 1070 (8GB) just for IRay. The rendering in IRay is not a problem - it is quick. The only problem is the posing lag in the Viewport - which is, I assume, because of the high polygon count. I thought that making the hair invisible might make it easier to pose the figure but that's not so. I wondered whether these is another "trick", perhaps.

    Interestingly, I ended up using the George Hair which is also, I am almost sure, fibremesh. The lag was certainly not so severe using Georges's hair.

    Post edited by marble on
  • linvanchenelinvanchene Posts: 1,386
    edited June 2017

    edited: currently having problems uploading some images... will continue editing this post later. 

    marble said:

     

    The hair I tried today was Soto's Buzzed Hair and also Short Cropped Hair by RedzStudio. I have no idea how many strands they have.

    My PC is Windows 10 64 bit with an i7 6700 CPU and 32GB RAM. I have a GeForce 970 to drive the display, etc., and a 1070 (8GB) just for IRay. The rendering in IRay is not a problem - it is quick. The only problem is the posing lag in the Viewport - which is, I assume, because of the high polygon count. I thought that making the hair invisible might make it easier to pose the figure but that's not so. I wondered whether these is another "trick", perhaps.

    Interestingly, I ended up using the George Hair which is also, I am almost sure, fibremesh. The lag was certainly not so severe using Georges's hair.

    Both Soto's Buzzed Hair and George Hair work extremely well on my system with no noticeable lag when using the Texture shaded or even Nvidia Iray preview drawing style.

    I have not purchased a license for the Short Cropped Hair because it is from another store.

    ​- - -

    @ DAZ Studio settings that adjust viewport lag

     At which setting is the option Preferences / Interface / Display Optimization: "none" or "best"?

     

    -> On my system with the setting at "none" viewport lag is noticeable. With the setting at "best" viewport lag was gone in the tested scene.

    -> A few years ago the OcDS plugin developer suggested to keep display optimization at "best" always.

    I do not know if there are any negative side effects or situations for which it is suggested to leave this setting at "none."

     

    - - -

    @ George Hair vs Buzzed Hair

    Buzzed Hair 2'316'058 Vertices

    George Hair - 700'028 Vertices

    -> This may explain why George Hair performed better on your system.

    - - -

     

    I thought that making the hair invisible might make it easier to pose the figure but that's not so. 

    I was not able to figure out why "hiding" the hair in the scene tab does not solve the lag for you.

    On my system hiding a high polygon count hair object created in Zbrush did immediately remove the lag caused by that object.

    As far as I remember this always worked like that.

    Example: In scenes that use a lot of instances I was always able to hide some instance groups by clicking on the eye symbol and any lag would be gone

     

    I wondered whether these is another "trick", perhaps

    There must be something that prevents that "hiding" a scene object has the intended effect. Anyone else go an idea?

     

     

    Preferences - Interface.jpg
    732 x 758 - 134K
    Buzzed Hair 2'316'058 Vertices.jpg
    1920 x 1080 - 517K
    George Hair - 700'028 Vertices.jpg
    1920 x 1080 - 444K
    Post edited by linvanchene on
  • wolf359wolf359 Posts: 3,931

    I find that turning off the visibility greatly improves viewport peformance

    that Buzzed hair is unsable if I dont.

  • marblemarble Posts: 7,500
    edited June 2017

    I can confirm that the visibility switch (the little eye in the Scene Tab) does not help with the posing lag.  Correction: just checked this with a base G3F and just the Buzzed Hair loaded and there is a difference between Visible and Hidden. Not a great difference and the lag is still very noticeable compared to no hair loaded but I was wrong, there is a difference.

    Here are my prefs at the moment:

    Prefs.JPG
    804 x 693 - 65K
    Post edited by marble on
Sign In or Register to comment.