Jump to content

Heavy Geo Rendering Ninjitsu


Recommended Posts

Today I received my copy of "Magic of houdini", great book, maybe too many very easy things too deeply explained but after a few quaters of reading I found it very useful.

Rendering objects from file took my attention and I tried it on my 80 MB bgeo tree model.

I noticed that it loads alot faster than standard stdin (as stays in rendering progress output), perhaps due to my mistakes but I cut rendering time by half after renderong the tree from file.

Earlier loading stdin took minutes which was strange because NO cooking took place, the last stage of the tree was locked or the tree was loaded with file sop and a few operations were applied.

Here comes my question... According to production techniques is it common and efficient and vastly used to break complex models into pieces (by shader) export everything to bgeo and render from files?

My tree is developing, 300 deadly frames of growth, few shaders randomly altered by attributes(leaf colour). It reaches mentioned 80 and some megabytes (bgeo format). Now should I break it and render geometry of each part (300 frames of each, up to say 40 MB frame) than bring them all in and render from files?

It could be an overkill! what to use copy sop than? To copy 100 of complex, animated buildings, all set up and explode them? Messy.

I don't think this is very efficient because of all troble it brings, including lack of disk space.

But since rendering from disk produced rather significant rendertime shortening??? I'm a bit

tired of testing but probably the standard setup took so long because of my error, but how the hell could I make such an error, I checked everything many times.

What are possible solutions?

Would be grateful for some "production" help

Link to comment
Share on other sites

If you can't take direct advantage of instancing, definitely the most effecient and easy route to take is to write out all of these objects to disk, along with a bounding-box geometry. Now load them back in and use the Render From File (Bounded) capabilities.

This helps in several ways: firstly, Houdini then never has to load the them - saving on RAM. Secondly, because Mantra loads the bgeos from disk directly you dont have to wait for the extra time hit of Houdini feeding the geometry as IFD to Mantra. Thirdly, Mantra can even potentially toss out geometry and reload geometry within the same frame if it feels like it needs to.

This is very easy to set up - if you want you can use the Archive ROP to good effect.

Do you have an idea how to execute this? We can help more if you get stuck trying this out.

Link to comment
Share on other sites

Secondly, because Mantra loads the bgeos from disk directly you dont have to wait for the extra time hit of Houdini feeding the geometry as IFD to Mantra.

23916[/snapback]

So thats why it is so fast!

The "feeding" sometimes can take a very long time. I somehow clicked here and there and the scene renders much faster now, but still worse than from file:)

That solves my another problem, I was unable to render geometry of over 2million polys (more less) because of memory error. If I'm not mistaken when rendering from file this geo can be enormously big? Or does does have to load one object as a whole for rendering?

I don't have an idea how archiving works, the help didn't help here also:).

Bounding trick is nice but shouldn't it be done automatically?

Isn't it tedious to set it all up?

Split, render out, bring back, reapply the shaders, check and fill bounding values...what if geometry changes?

Do you script it all or do I miss something?

Link to comment
Share on other sites

Bounding trick is nice but shouldn't it be done automatically?

Isn't it tedious to set it all up?

Split, render out, bring back, reapply the shaders, check and fill bounding values...what if geometry changes?

Do you script it all or do I miss something?

23920[/snapback]

In large scale production, you really need it to be a manual process; electing very carefully when to archive, etc. However, for the single user working more casually it does seem to be a bit of a setup. Take advantage of the Archive ROP and the fact that you can use ROP dependancies to ease this workflow. Once you've set it up once things should move smoothly. Use Takes.

Another little trick I do to help "automate" things is to set an expression in the Render From File field to an undisplayed File SOP inside its object with something like `chs("filesop/file")`

Link to comment
Share on other sites

It could be an overkill! what to use copy sop than? To copy 100 of complex, animated buildings, all set up and explode them? Messy.

23914[/snapback]

You can control copySOP with help of HScript.

Copy cell_pre.cmd and cell_post.cmd to $HOME/houdini8.0/scripts/ folder.

If nothing changes over time ("Primitives to copy" and "Template to Copy to")

then disable Pre-Render and Post_Render scripts in MantraROP

and run cell_pre.cmd from textport:

source cell_pre.cmd /obj/needls 100000 5 10 5

where:

/obj/needls - node to process

100000 - number of copies

5 10 5 - how to divide template in X Y Z

If You want to animate copies (stamping e.t.c) then use this scripts as Pre/Post in MantraROP.

If You want to animate template (deform) with Motion Blur then forget about

this scripts...it is necessary to choose other approach to control CopySOP in this case.

FightWithCopySop.zip

Link to comment
Share on other sites

  • 1 month later...

Is there any dirty straight way of rendering high polycounts?

I had some problems because many times houdini fills the memory up and announces memory allocation error (windows) or just hangs having 100% processor load (linux).

I've done some tests with rendering from file, no archiving and loading on demand since all of the objects are visible. Houdini tries to load everything then hangs.

Is there other simple way (like change bsp settings in raytracers) to render some millions of polys without adding more ram?

I'm not talking about some high fidelity operations, scripting like andrew wrote, instances...no.

What to do if all the geometry is visible, and everything is unique.

Jason posted some 9 million car model, I have a few hunderd thousand and can barely work.

My friend is on max and vray and rendered 8 million architectural animated scene (all in viewport at the same time) in pal res with very rough, flickering GI in a minute per frame!

No matter the quality, in houdini loading it would take more time.

Is there a solution for 8 million visible polys to be rendered with my M70 2 gigs of ram?

Link to comment
Share on other sites

My friend is on max and vray and rendered 8 million architectural animated scene (all in viewport at the same time) in pal res with very rough, flickering GI in a minute per frame!

No matter the quality, in houdini loading it would take more time.

Is there a solution for 8 million visible polys to be rendered with my M70 2 gigs of ram?

25309[/snapback]

Hi peliosis, Vray can render objects from disk, are you sure they were really there on viewport? I'm 99.9% sure Max can't handle more than 2.5 mil. polygons without XRef (external references).

Link to comment
Share on other sites

Hi peliosis, Vray can render objects from disk, are you sure they were really there on viewport? I'm 99.9% sure Max can't handle more than 2.5 mil. polygons without XRef (external references).

25322[/snapback]

I'm sure since max orbits 4 million scene quite easily on my system.

Jason, are all parts of that car visible in a shot? Does it load them all before rendering?

I've got to do a few more tests then.

Thanks for your replies.

Link to comment
Share on other sites

I'm sure since max orbits 4 million scene quite easily on my system.

Jason, are all parts of that car visible in a shot? Does it load them all before rendering?

I've got to do a few more tests then.

Thanks for your replies.

25348[/snapback]

I was talking about Mantra. Houdini has a hard time with displaying so many polys, but I never need to display them. I make use of (auto-generated) bounding boxes for each part of the car and ask Mantra to read the pieces directly from disk. And yes, the entire car is in frame, full screen, for most of the shot - and it's exhibits full raytraced reflections. In my initial tests I was lighting the car with ambient occlusion and it rendered amazingly fast for that amount of geometry.

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...