C++/HDK SOP performance on big meshes

   1676   0   0
User Avatar
Member
2 posts
Joined: 9月 2006
Offline
Hello Houdini Gurus!

I have written a custom SOP node in C++ using the HDK, with the SOP_Star toolkit example as a starting point. It reads in a proprietary mesh data format, and I'm running into some pretty serious performance issues when the amount of data gets large.

When I load up a large dataset, (approx 700k polygons), Houdini gets very slow when scrubbing the time slider (my SOP node has an input that is wired up to $FF). I'd say I'm only able to scrub at about 0.5fps.

This slowness happens regardless of how much time is spent in cookMySop. I have tried debugging this by having the cookMySop function build the mesh on its first execution, and then for subsequent executions, return immediately after parsing the input parameters (using evalFloat, evalInt, etc., just like the SOP_Star example).

I've manually timed the execution of the cookMySop function, and it runs in <1ms, and does absolutely nothing to modify the data of the SOP, yet the scrubbing time is still slow.

What's strange to me about this is that this slowness is relative to the amount of poly data my SOP creates. With small datasets, scrubbing is fast.

Is there some operation that is being performed on the geometry under the hood by Houdini every time the cookMySop function is run? Maybe there is a way that I can tell Houdini that cookMySop hasn't actually changed any geometry?

I'd appreciate any feedback you guys could give!
  • Quick Links