peliosis Posted January 19, 2006 Share Posted January 19, 2006 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 Quote Link to comment Share on other sites More sharing options...
Jason Posted January 19, 2006 Share Posted January 19, 2006 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. Quote Link to comment Share on other sites More sharing options...
peliosis Posted January 19, 2006 Author Share Posted January 19, 2006 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? Quote Link to comment Share on other sites More sharing options...
peliosis Posted January 19, 2006 Author Share Posted January 19, 2006 I'd better fill my avatar;) Quote Link to comment Share on other sites More sharing options...
Jason Posted January 19, 2006 Share Posted January 19, 2006 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")` Quote Link to comment Share on other sites More sharing options...
peliosis Posted January 19, 2006 Author Share Posted January 19, 2006 Once I think I really got it,there always open some tiny new door with a brand new world behind them Thank you Jason. Quote Link to comment Share on other sites More sharing options...
AndrewVK Posted January 20, 2006 Share Posted January 20, 2006 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 Quote Link to comment Share on other sites More sharing options...
peliosis Posted January 20, 2006 Author Share Posted January 20, 2006 Thanks Andrew, I just wanted to ask how you created grass with script in some earlier post but perhaps this will explain. Quote Link to comment Share on other sites More sharing options...
peliosis Posted March 2, 2006 Author Share Posted March 2, 2006 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? Quote Link to comment Share on other sites More sharing options...
Andz Posted March 3, 2006 Share Posted March 3, 2006 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). Quote Link to comment Share on other sites More sharing options...
Jason Posted March 3, 2006 Share Posted March 3, 2006 I am rendering a car in Mantra (using Read From File) which in total has a poly count of ~11 million polygons - and it renders in under 2gb. Typically hovering around 1.6gb Quote Link to comment Share on other sites More sharing options...
peliosis Posted March 3, 2006 Author Share Posted March 3, 2006 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. Quote Link to comment Share on other sites More sharing options...
Jason Posted March 3, 2006 Share Posted March 3, 2006 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.