Grooming Hair interactive speed

   6257   8   1
User Avatar
Member
623 posts
Joined: Nov. 2013
Offline
hello,
In this tutorial https://vimeo.com/116178807 [vimeo.com] , brush interactive is very smooth. But in my machine is about 10x slower. I don't think my workstation HP z620/quadro k4000 is so slow.
How about your grooming brush feedback speed?
thanks!
User Avatar
Member
4189 posts
Joined: June 2012
Offline
Testing hair grooming on OsX Yosemite, Gtx 980, 2x6core @3.33GHz, H14.0.201.13. I'm getting very interactive performance, almost at the level of the video.
User Avatar
Member
476 posts
Joined: Aug. 2014
Offline
On my Windows 7 machine (6-core 3930k, GTX660Ti) it's slow (at about 5-10 fps when grooming), but after I lay down some strokes it gets even slower. Sometimes I need to wait even four seconds for the stroke to pick up and start deforming guides.

Maybe if grooming was multi-threaded the performance would be more satisfying?
User Avatar
Member
617 posts
Joined: Aug. 2008
Offline
all depend on what are you doing, don't forget when you are grooming you are also taking in consideration the generation of the vdb volume, you can lower the resolution, or cache it.

also depending on how big the brush is will move more points at the same time and that can slow down the interaction, (this is something very noticeable in modo at the time of combing the hairs/curves.)

if you need to work with billion of millions of curves I will recommend to split the geometry into sections, and groom each part with a different node.

this way if something goes wrong in one section you don't need to start from scratch.
User Avatar
Member
527 posts
Joined: July 2005
Offline
We noticed the surpising lag involved in grooming as well even on our new demo workstation from dell that is stacked.

With a default sphere and default hair generation it was laggy with realtime stroke on.
soho vfx
User Avatar
Member
617 posts
Joined: Aug. 2008
Offline
with my home pc was ok, i need to check the toogle option.
User Avatar
Member
1769 posts
Joined: Dec. 2006
Offline
You don't have the interpolated hair on by accident? grooming should be fast, but only with guide curves.

If you are viewing the interpolated hair (you can turn this on, on the fur object basic tab), it is a good idea, when you are in groom tool, right click and turn off the “Draw real time”
daniel bukovec | senior fx td | weta digital
qLib -- http://qlab.github.io/qLib/ [qlab.github.io]
User Avatar
Member
476 posts
Joined: Aug. 2014
Offline
buki
You don't have the interpolated hair on by accident? grooming should be fast, but only with guide curves.

If you are viewing the interpolated hair (you can turn this on, on the fur object basic tab), it is a good idea, when you are in groom tool, right click and turn off the “Draw real time”
The interpolation gets disabled the moment I choose one of the groom shelf tools and it stays this way until I manually re-enable it.

Thanks for pointing out the Draw Realtime toggle. Turning it off makes grooming work much faster, but still nowhere as fast on a default sphere as it is on the head from the video, because there is a noticeable delay after I release the mouse button. And on the video not only realtime grooming is used, but there's also no delay after the stroke at all. Are parts of that video a time-lapse?

Given the fact that grooming is single-threaded and doesn't use any GPU acceleration, it's strange to see such discrepancy in performance between various machines.
User Avatar
Staff
637 posts
Joined: Aug. 2013
Offline
There are definitely some issues here that we're aware of. On of these is the delay that kicks in as you have more strokes. A hack to get around this is - create a new groom node every once in a while. You can do this by Ctrl+clicking on any grooming tools. That'll create a new curve groom with the same settings as the one before it.

Another thing you can do is switch over to polygon curves while grooming, that does improve interactivity substantially.

The grooming is mostly multi threaded, although we're currently using some hacks to get this to kick in for small number of hairs. Usually, vex sops only thread when they have at least 5x1024 elements to work on. Since we're mostly running over primitives here, this is often not the case. There are also other kinds of constant overhead that are especially visible with small inputs.

Kai Stavginski
Senior Technical Director
SideFX
  • Quick Links