Import SOP chews up memory

   2691   5   3
User Avatar
Member
2036 posts
Joined: Sept. 2015
Offline
I have a system with 16GB.

An OBJ scene with about 100k primitive spheres copied to points.

When I render with Mantra my system shows only 15% memory use, and the render result happens pretty quickly.

However, in a LOPs network with a SOP Import node(set to Load As Reference), my memory use shoots up to 60% and it takes about 15-20secs to finish(loading).

And thats in Houdini GL view, not yet rendering with Karma.

And this is for just the first frame of an animated sequence.(couldn't get to second frame, ran out of memory and crashed).

Maybe I just have a memory leak for my system when it comes to LOPS.

If anyone has a chance, feedback on using this file is appreciated.
Edited by BabaJ - Jan. 2, 2020 14:24:02

Attachments:
Karma vs Mantra.hiplc (12.0 MB)

User Avatar
Staff
727 posts
Joined: Oct. 2012
Offline
If you look at the scene graph tree, you'll see that there is a separate primitive for every sphere. It would probably be more efficient to set up a point instancer prim, or import as points with a width attribute
User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
cwhite
If you look at the scene graph tree, you'll see that there is a separate primitive for every sphere. It would probably be more efficient to set up a point instancer prim, or import as points with a width attribute

Same for mantra, why would you copy spheres to points, when points render as spheres anyway?
User Avatar
Member
2036 posts
Joined: Sept. 2015
Offline
If you look at the scene graph tree, you'll see that there is a separate primitive for every sphere. It would probably be more efficient to set up a point instancer prim, or import as points with a width attribute

Yes this is what I initially was thinking. It sort of indirectly adds to my ‘question’ I've had about USD when I first started learning it.

As a starting point I assume USD is like a different method of ‘looking’ at the data ‘underneath’.

Like having a different ‘style’ of a Master Boot Record of a disks bits of data.

Like Houdini has its' version of looking at it, while USD has another - the assumption being the data underneath doesn't change;

When converting from one to the other.

So when importing the already copied to points, I would assume it shouldn't be much work for that conversion.

That being said - the LOPs InstanceToPoints node indeed is the solution for the ‘issue’.

However, I can't seem to figure out to get it to use the points pscale attribute to vary the scaling of the spheres being copied.

I'm assuming I will have to ‘transfer’ that ahead of time and create usd variances of scale for the sphere itself?


Same for mantra, why would you copy spheres to points, when points render as spheres anyway?

* Because it's a work in progress

* Much easier and quicker to see geometric modifications and results from sop operations in the viewport instead of having to render out a sequence.

* It's being created in stages of bgeo caches that will be layered to each other.

* The spheres will be swapped out with other geometric polygonal shapes.

Thanks guys for your feedback.
Edited by BabaJ - Jan. 2, 2020 18:15:23
User Avatar
Member
7737 posts
Joined: Sept. 2011
Offline
BabaJ
That being said - the LOPs InstanceToPoints node indeed is the solution for the ‘issue’.

However, I can't seem to figure out to get it to use the points pscale attribute to vary the scaling of the spheres being copied.

It should work immediately when using a SOP source for the instance points. Last I checked, I think this was not working when using a USD ‘points’ primitive with a ‘widths’ attribute. I think if you use the ‘pack and instance’ option on the copy sop when copying the geometry in sops, there is an option when importing to lops to recreate the sop instancing using either instancable references or a point instancer. This should at least prevent the run away ram usage.

BabaJ
* Because it's a work in progress

* Much easier and quicker to see geometric modifications and results from sop operations in the viewport instead of having to render out a sequence.

* It's being created in stages of bgeo caches that will be layered to each other.

* The spheres will be swapped out with other geometric polygonal shapes.

Fair enough, I'm just giving you a hard time.
User Avatar
Member
2036 posts
Joined: Sept. 2015
Offline
Fair enough, I'm just giving you a hard time.

Well, you and Tamte have a license to do so, considering the help you guys provide to myself and indirectly reading others posts.

It should work immediately when using a SOP source for the instance points.

Well, what do you know - re-opened the hip file again. No show in viewport. Create new viewport window - shows up with pscale applied as expected.

Don't know if it's my system(been using the same one since I started with houdini H14), but ever since 17.5, and especially now with 18(more so in LOPs context viewport);

I'm finding I have to kill viewport windows and create new ones often to get updates to screen. Sometimes they are blank, sometimes ghosted with previous settings( old settings and new settings creating double images), etc.

One of those things it's hard to replicate - but it may just be my system - won't know until I get a new system and compare.
  • Quick Links