Hi
I have a problem with rendering objects using Delayed Load procedural.
For example i have some geometry with 10 shaders attached to it by per-primitive basis.
I write this geometry to .bgeo file. Then i use Delayed Load procedural to render it and i get result with no shaded geometry. Why? But if attach 1 shader in object level everything is ok.
What should i do if i want to render geometry using Delayed Load with many shaders attached to it.
Delayed Load and per-primitive shaders
8445 13 2- sanchez79
- Member
- 35 posts
- Joined: July 2005
- Offline
- Simon
- Member
- 2199 posts
- Joined: July 2005
- Offline
- anakin78z
- Member
- 80 posts
- Joined: July 2005
- Offline
I noticed this as well… Looks like a bug to me.
Edit: there's a button in the Render tab of the mantra rop labeled Force VEX Shader Embedding, which makes this work, sorta. It'll work as long as the shader is in your hipfile. In h8 there was a way to save the geometry with the shader definition, which means you didn't need to have an instance of the shader in your scene.
Edit: there's a button in the Render tab of the mantra rop labeled Force VEX Shader Embedding, which makes this work, sorta. It'll work as long as the shader is in your hipfile. In h8 there was a way to save the geometry with the shader definition, which means you didn't need to have an instance of the shader in your scene.
Edited by - Oct. 8, 2007 13:25:21
- sanchez79
- Member
- 35 posts
- Joined: July 2005
- Offline
- mark
- Staff
- 2587 posts
- Joined: July 2005
- Offline
Simon
try turning on “declare all shops” in the rop node. ( H8 )
not sure about H9 as i haven't used it yet.
Hmm… This button seems to be missing in H9.
I've added support for this for the next build of Houdini. The changes were all in Python scripts in $HH/soho. Though, to take advantage of this, you'll have to install the new parameter “Declare All Materials” (via. Edit Rendering Parameters on the output driver)
Edit: Note that the "Force Embedding of VEX' means that the VEX code in the .hip file should override any OTLs (or missing OTLs) on remote machines. It makes the IFD a little more portable (though larger).
- jason_iversen
- Member
- 12397 posts
- Joined: July 2005
- Offline
Would it make sense to also be able to specify a property per SHOP as to whether it gets embedded or declared?
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
also, http://www.odforce.net [www.odforce.net]
- Simon
- Member
- 2199 posts
- Joined: July 2005
- Offline
That would certainly be handy if possible. One of the downsides to “declare all shops” is the amount of time it spends embedding shaders that aren't used.
We have shader otls in our master hip files with a 1000 plus shaders in them, with declare all shops on it has to process every shader before generating an ifd even though a lot of times only a tiny percentage of the shaders are in use at any one time, and an even smaller number are only applied at prim level.
We have shader otls in our master hip files with a 1000 plus shaders in them, with declare all shops on it has to process every shader before generating an ifd even though a lot of times only a tiny percentage of the shaders are in use at any one time, and an even smaller number are only applied at prim level.
The trick is finding just the right hammer for every screw
- mark
- Staff
- 2587 posts
- Joined: July 2005
- Offline
Simon
That would certainly be handy if possible. One of the downsides to “declare all shops” is the amount of time it spends embedding shaders that aren't used.
We have shader otls in our master hip files with a 1000 plus shaders in them, with declare all shops on it has to process every shader before generating an ifd even though a lot of times only a tiny percentage of the shaders are in use at any one time, and an even smaller number are only applied at prim level.
There are two approaches to selection
1) Look for a parameter on a SHOP to force export
2) Have a bundle of SHOPs on the output driver
The problems with (1) are that you end up having to evaluate parameters on every SHOP (not a huge deal). But the other problem is differentiating between this parameter and an actual shader parameter for the SHOP.
So, I think that (2) is probably the easiest route to go. I'll see about trying to fix this today. It should be fairly straight-forward.
Hmm… Apparently, there isn't any HOM support for bundles, which does throw a wrench in the works.
I'll have to have a closer look.
- Simon
- Member
- 2199 posts
- Joined: July 2005
- Offline
The nice thing about the way it works at present is its a no brainer, it always works its just slow.
I assume if you do set up bundle support that leaving the bundle empty would default to what it does now and it would just dump everything into the ifd. That way we could choose between setup time and render time as the pay-off.
I assume if you do set up bundle support that leaving the bundle empty would default to what it does now and it would just dump everything into the ifd. That way we could choose between setup time and render time as the pay-off.
The trick is finding just the right hammer for every screw
- sanchez79
- Member
- 35 posts
- Joined: July 2005
- Offline
- aracid
- Member
- 154 posts
- Joined: July 2005
- Offline
Hey
Could anyone tell me why this Delayed Read file isnt working as it should - with shader assignment, it loads the geom, but forgets the shader assignment.
I pretty much do the same thing in H8 and it works fine, but in h9 it doesnt ?
I can only scratch my head and think its a bug, but from what is said above, i must be missing a step.
thanks in advance
Brian
Could anyone tell me why this Delayed Read file isnt working as it should - with shader assignment, it loads the geom, but forgets the shader assignment.
I pretty much do the same thing in H8 and it works fine, but in h9 it doesnt ?
I can only scratch my head and think its a bug, but from what is said above, i must be missing a step.
thanks in advance
Brian
- JasonSlab
- Member
- 1533 posts
- Joined: March 2020
- Offline
- mark
- Staff
- 2587 posts
- Joined: July 2005
- Offline
aracid
Hey
Could anyone tell me why this Delayed Read file isnt working as it should - with shader assignment, it loads the geom, but forgets the shader assignment.
I pretty much do the same thing in H8 and it works fine, but in h9 it doesnt ?
I can only scratch my head and think its a bug, but from what is said above, i must be missing a step.
thanks in advance
Brian
Sorry to take so long to reply. It slipped from my radar. Thanks for the reminder jason|slab :-)
This was a subtle one. Took a little digging to discover that you had assigned the surface SHOP (/shop/material1/v_polka) as the material.
However, the “Declare All SHOPs” will declare the material (the entire material), /shop/material1.
So, when mantra tries to resolve /shop/material1/v_polka, it can't find it since the material was specified as /shop/material1.
Does that make sense, if it doesn't I can try to expand. As I said, it's a pretty subtle issue.
- JasonSlab
- Member
- 1533 posts
- Joined: March 2020
- Offline
-
- Quick Links