Jump to content

1500x1500 cubes


Recommended Posts

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:

post-960-1205759028_thumb.png

This image is full HD with raytraced shadows and DOF:

post-960-1205759115_thumb.png

Render time ~ 2h 25min.

Well, it renders.

Georg

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

post-960-1205777208_thumb.jpg

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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:)

elef_od.jpg

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

Link to comment
Share on other sites

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

post-209-1205893109_thumb.png

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

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