rdg Posted March 17, 2008 Share Posted March 17, 2008 Following some posts here and over at SESI I noticed I never instanced anything in houdini. first tries with delayLoad instanced constantly crashed so I decided to stay on known territory. 1500x1500 cubes: This image is full HD with raytraced shadows and DOF: Render time ~ 2h 25min. Well, it renders. Georg Quote Link to comment Share on other sites More sharing options...
stevenong Posted March 17, 2008 Share Posted March 17, 2008 Hey rdg, I understand it's a test but the final render, to anyone who doesn't know what you've done, seems to a greyscale image. I would copy the boxes to a shape or something to better illustrate what you're doing. Or colour the boxes or something. Cheers! steven Quote Link to comment Share on other sites More sharing options...
Jason Posted March 17, 2008 Share Posted March 17, 2008 Nice to see the test working:) Further reading: MantraInstancing This page is a little old but it does try to illustrate that instancing becomes more effective if your geometry is more complex - since there is a little overhead per instance. Try instance some cooler geometry:) Quote Link to comment Share on other sites More sharing options...
spev Posted March 17, 2008 Share Posted March 17, 2008 Have you tried comparing H8 and H9 ifd gen speed with instancing??? I found it to be a bit slower Quote Link to comment Share on other sites More sharing options...
rdg Posted March 17, 2008 Author Share Posted March 17, 2008 seems to a greyscale image you are right and this probably belongs into the WIP forum as well. In the meantime I instanced three different delayed load boxes with displacement - not 1500x1550 but ~12000 I am currently rendering an animation. Howto change the color and texture is the next task ... it's getting more and more wip-ish. Btw, I am rendering the anim from the gui as the IFD generation takes a very long time. Here is a thread about instancing onto delayed loads. They mention a VRAY_procedural. Is this availiable somewhere? Thanks to the reminder for the wiki-page as well, it might enlighten me further. Cheers, Georg Quote Link to comment Share on other sites More sharing options...
edward Posted March 17, 2008 Share Posted March 17, 2008 VRAY_Procedural is an HDK class that you would subclass from if you wish to create your mantra plugin for geometry generation at render time. If you just want to load .bgeo files at render time (instead of embedding it into the .ifd), the Delayed Load SHOP is good enough. Make sure you read the helpcard. Quote Link to comment Share on other sites More sharing options...
rdg Posted March 17, 2008 Author Share Posted March 17, 2008 the Delayed Load SHOP is good enough. Make sure you read the helpcard. This means, that I haven't written the right attributes into my bgeo file? Loading the instances from a delayed load works fine. Loading the points where I instance on doesn't yet. I'll check this tomorrow. Quote Link to comment Share on other sites More sharing options...
Jason Posted March 17, 2008 Share Posted March 17, 2008 Have you tried comparing H8 and H9 ifd gen speed with instancing???I found it to be a bit slower It is a little slower due to being driven by python (SOHO) but it does go to C++ for all the really heavy lifting. However if you have models with a large numbers of primitive groups, it's a LOT faster. Besides, with the new H9 functionality it far outstrips the H8's power so I'm willing to pay the price:) Quote Link to comment Share on other sites More sharing options...
rdg Posted March 18, 2008 Author Share Posted March 18, 2008 not quite "heavy geometry": http://www.preset.de/2008/0318/ Quote Link to comment Share on other sites More sharing options...
rdg Posted March 18, 2008 Author Share Posted March 18, 2008 Make sure you read the helpcard. I reread the helpcard over and over again. Now I know that I have to attach the vm_geo_file shader as procedural shader not as material - though this works as well. Anyway: As soon as my instance points are a delay load they don't render. I read the different IFDs generated by different setups but all I see is that there is no instancing. In this file I combined the three - in my opinion - crucial networks: 1: usual instancing: instance attribute on the points places the teapots 2: instance points written to file: read with a fileSOP and the teapots instance. 3: vm_geo_shader reads the bgeo from 2: no teapots In this case it doesn't matter if I attach the shader as material or as a procedural shader. if I untick the "instance points" parameter - the grid is rendered. question.tar.gz Which helpcard am I missing? Georg Quote Link to comment Share on other sites More sharing options...
rdg Posted March 18, 2008 Author Share Posted March 18, 2008 try to illustrate that instancing becomes more effective if your geometry is more complex - since there is a little overhead per instance. Try instance some cooler geometry:) Dont't know if this cooler geometry - but it's definitely more heavy. http://www.proforma.preset.de/2008/0318/elefant/ animated stampede, well the crowd sim is another story. Georg Quote Link to comment Share on other sites More sharing options...
Netvudu Posted March 18, 2008 Share Posted March 18, 2008 And the video is so much better because of the elephant sounds Quote Link to comment Share on other sites More sharing options...
edward Posted March 19, 2008 Share Posted March 19, 2008 Ok, I cheated and went back to the H9 Alpha thread. Here's a simple .hip file. Sorry, I didn't get to your file, Georg. To use it: 1. Load the .hip file and hit the render button inside /obj/RENDER_ME_INSIDE_FIRST to generate the delayed read archives. 2. Now hit the render button on /out/mantra1 You should see the different instance geometry with the random point colors I assigned inside /obj/instance1. So you've probably figured out most of this already but a recap: 1. Use the Instance Object to do point instancing. Turn on the Point Instancing parameter 2. Inside your instance object, you have the point geometry that you want to render with. 3. You will want to create a "material" in SHOPs for your instances. Do this by creating your surface shader SHOP and then collapse it into a subnet. Inside, you should see it connected to an output node. Inside here, create your Mantra Delayed Load SHOP and connect it to the output node. Jump back up one level. You need to promote the shader parameters inside to the subnet level. Right-click on your "material" shop and choose Promote Material Parameters. Voila, your instancing material is now setup. 4. Ok, now go back to the SOP inside your Instance object. Append a Material SOP. Assign these parameters: Attributes = Point Attributes, Material = your material SHOP, Overrides use local variables = ON, Local Overrides = # of material overrides you want (>= 1). Click on Choose Parameter and pick something that you want to change on a per point level. Then for the value you want to override, give it an expression based on $PT. I think that's pretty much it. Cheers! pt_instance.hip Quote Link to comment Share on other sites More sharing options...
rdg Posted March 19, 2008 Author Share Posted March 19, 2008 So you've probably figured out most of this already but a recap: I did. Thanks for this file which explains it very well. But: My real question is: How can I delayLoad the instance points? In you file this would be /obj/instance1 ... Quote Link to comment Share on other sites More sharing options...
edward Posted March 20, 2008 Share Posted March 20, 2008 Ah, so I finally understand what you've been asking all along. And I don't know whether you can. Take a look a the rendered .ifd file and realize that when the Instance object is rendered, it structures the IFD fundamentally different. You may or may not need to go down to IFD scripting to do it. Quote Link to comment Share on other sites More sharing options...
rdg Posted March 20, 2008 Author Share Posted March 20, 2008 when the Instance object is rendered, it structures the IFD fundamentally different. It does. BTW, in the file you send the $HIP in the overridden instancepath is missing. At least it just renders if I add it. Enough instanced for this week. Georg 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.