Jump to content

Instancing: Rendering - Evaluating Python Message


jujoje

Recommended Posts

Hi,

I've been having difficulty with point instancing.

Basically I have a fairly simple setup:

1 object to be instanced

1 instance node with the points to be instanced onto.

A camera and a spotlight.

When I render the scene houdini then spends a seemingly inordinate amount of time displaying the message "Rendering - Evaluating Python" before it renders. During this time I can't cancel the render and Houdini pretty much locks up until the actual rendering starts. The situation is made worse if I use a material override so that the instance object inherits the colour.

At the moment it's taking about 10min evaluating python then 5 to render the scene. This also happens with the ipr renderer, and doesn't seem to make much odds whether the renderer is micro polygon or pbr

I'm curious as to what is going on when Houdini is evaluating python (I guess it's something to do with translating the scene), and whether I'm missing something obvious as to how instancing works. At the moment the whole evaluating python step is making instancing fairly unusable, so I'm pretty sure it's something I'm doing wrong.

In case it's of any use:

Houdini 10.0.553

Mac Pro 8-core

12 GB Ram

OSX 10.6.2

Unfortunately the scene I'm using is a bit to heavy to upload. I've attached a somewhat more basic example that should illustrate the basic setup I'm using.

Any help would be greatly appreciated, this has been puzzling me for some time and it'd be good to work out what mantra's up to.

Julian

instance.zip

Link to comment
Share on other sites

I can give you a little word on instancing and perhaps a tip that might speed up your workflow:

1) When instancing geometry, the actual geometry will be written into the ifd once and then be referenced for any time it is used. If this geometry is really heavy, this will take a while.

2) It is a lot faster to instance a delayed load object. That way the "geometry" of the instanced object is almost nothing as it is reduced to a link to the file on disk. Also if you are not using raytracing, the geometry does not need to be kept in memory and will only be loaded if its bounding box is hit by a render bucket.

3) The most efficient way so far I found is writing your own dso, but that might be too much for your needs. Have a look as well at Mark's Clusterthis dso. You could also try writing your own.

Link to comment
Share on other sites

Thanks for tips on instancing, certainly made things a bit clearer. I'll definitely have a look into using the delayed load shader and see how it goes. Having given it more thought the solution to my problem would probably be to use the delayed load shader and work out a way of splitting out the geometry rather than using instancing (as it avoids having to use any overrides and should conserve memory) .

I had a look at the Clusterthis dso and it looked ideal for what I was trying to achieve, but no h10 version yet. If I get time I’ll definitely look to writing my own dso, gives me a good reason to start having a look into the hdk.

Once again thanks for the tips.

Julian

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...