Hi, it has been a while since I dropped in the forums.
I'm making an HDA that has an object subnet with editable contents. I want the main HDA interface to make changes to the selected nodes inside that subnet but when you select any or multiple of those nodes Houdini changes the network to focus on one of the selected nodes.
Is there any way to suppress that behavior for just that HDA? I am aware that you can pin the networks but this is not ideal since you would have to unpin them to do return to your preferred behavior for other operations.
I've looked into using select scripts to change the network back to the users original network but they run on each selected node, so isn't really ideal.
Found 42 posts.
Search results Show results as topic list.
Technical Discussion » Suppress network change when selecting objects in subnets?
-
- jrwillette
- 49 posts
- Offline
Technical Discussion » Limit scope of what nodes are visible within an HDA?
-
- jrwillette
- 49 posts
- Offline
I'm building a template Redshift Material by making an HDA based on the RS Material Builder. In the original node, when you hit the TAB menu, only the RS nodes are shown, but in my copy I get all the shading nodes.
I don't see anywhere in the Type Properties to set this, is there a way I can limit the scope of what nodes are available inside this asset?
Thanks.
I don't see anywhere in the Type Properties to set this, is there a way I can limit the scope of what nodes are available inside this asset?
Thanks.
Edited by jrwillette - 2019年1月8日 16:04:31
Technical Discussion » Bundles
-
- jrwillette
- 49 posts
- Offline
SimonBundles are about the only way to handle lightmasks for subnetworked lights and other types of masks unless you list each light/obj seperatly.
I'm also curious as to what they offer, I must be missing the point somewhere.
I currently use groups to turn objects off and on for rendering different layers, but was thinking of switching over to using bundles since I wouldn't have to have groups in all my subnets. A bundle can contain a node that is inside a Digital Asset without having to unlock and modify the asset. An event script could be used to create or modify bundles that are needed for certain assets. We still have to unsync all the assets before changing the display flags for rendering of course but that is all handled in the render script.
I know that bundles were a bit buggy when they were first introduced. New objects would show up in every bundle so it was necessary to run a script to fix your bundles… I hope that has changed.
jason_iversonI'm pretty sure bundles are not rooted to any network, they are global, you can to an opbls from any network and get the same list of bundles. My first impression was that it would be confusing and defeat the purpose of them if there were multiple lists of bundles, like having different sets of global variables…. But thinking on it more it would be quite handy, a digital asset could contain it's own list of bundles, and those bundles could be bundled in other bundles…. but that's not how it works, for now at least. It would be cool if you could at least have a group in your bundle.
What is misleading as that the Bundle List Pane has an address bar which insinuates that the bundle defined might be rooted in a certain network. I'd love for bundles to have roots but if not, at least to remove the address bar.
What does everyone think about this? Am I mistaken?
I'm not sure why it has the address bar, perhaps because it's a side effect of having the use of the tree view?
Technical Discussion » vex builder - alpha, opacity, and emission
-
- jrwillette
- 49 posts
- Offline
Emission:
Yes you would want to add the emission value to the color from your Lighting Model before it gets multiplied by the Alpha.
If you want your emission to be effected by your transparency, you would multiply them together before adding that to the Lighting Model result.
Yes you would want to add the emission value to the color from your Lighting Model before it gets multiplied by the Alpha.
If you want your emission to be effected by your transparency, you would multiply them together before adding that to the Lighting Model result.
Technical Discussion » vex builder - alpha, opacity, and emission
-
- jrwillette
- 49 posts
- Offline
If you are using the Lighting Model VOP you usually don't want to multiply the color output by another color unless you are trying to achieve a specific effect.
Any multiplying of colors should be done before the “diff” input on the Lighting VOP, including multiplying in your transparency color (transparency is different than Alpha).
Here is a typical flow for both Cf and Of with the use of the Lighting VOP:
Any multiplying of colors should be done before the “diff” input on the Lighting VOP, including multiplying in your transparency color (transparency is different than Alpha).
Here is a typical flow for both Cf and Of with the use of the Lighting VOP:
- Color = UserDefinedColor * TextureColor * Cf
Transparency = UserDefinedTransparency * Of
Alpha = TextureAlpha
Color*Transparency–>“diff of LightingVOP”–>“clr from LightingVOP”*Alpha–>Cf - Transparency*Alpha–>Of
Keep in mind that the VOP, viewer pane is often misleading, make sure to do test renders.
Technical Discussion » vex builder - alpha, opacity, and emission
-
- jrwillette
- 49 posts
- Offline
To use an Alpha you need to multiply your exsisting Color and Transparency by the Alpha value before they go into Cf and Of. Generally, if you are not doing anything fancy, like a matte shader, you don't have to wire anything into Af, since it is by defualt the average of Of.
If you are using a Color Texture Map with an Alpha, ensure that you select RGBA Values as the Signature of your Texture VOP. You then need to convert from Vector4 to Vector, there will be two outputs, a vector and a float; The vector is your Color and the float is the Alpha.
If you are using the color component of your Texture, you will want to unpremultiply it before using it in your Lighting Model… this way you will avoid getting black edges. To unpremultiply you divide the Color by the Alpha.
If you are using a Color Texture Map with an Alpha, ensure that you select RGBA Values as the Signature of your Texture VOP. You then need to convert from Vector4 to Vector, there will be two outputs, a vector and a float; The vector is your Color and the float is the Alpha.
If you are using the color component of your Texture, you will want to unpremultiply it before using it in your Lighting Model… this way you will avoid getting black edges. To unpremultiply you divide the Color by the Alpha.
Technical Discussion » creating a additive group
-
- jrwillette
- 49 posts
- Offline
Ah, here is the kicker with the POP method… When you Copy Groups from Source it only gets the info from the first frame, so you would have to use the Group SOP with Bounding… Bounding Box and Sphere wouldn't work so well if you need them to rotate. Bounding Object or Metaball should work fine though.
So you could import a simple shape (a box, sphere, or lowres version of your object) or Meta Balls attached to your moving object and use that as your Bounding Object in a Group POP with Preserve Group on.
So you could import a simple shape (a box, sphere, or lowres version of your object) or Meta Balls attached to your moving object and use that as your Bounding Object in a Group POP with Preserve Group on.
Technical Discussion » creating a additive group
-
- jrwillette
- 49 posts
- Offline
I thought he was doing this in SOPs… perhaps if you used a Soft Body in POPs, where every point was a Fixed Point following the Source Position this may work. Looks like you could “Copy Groups from Source” and then preserve the points within a certain group with a Group SOP.
Just to defend my earlier methods
I was doing a lot more than just holding the group once it entered it… but a POP solution may have worked… Not sure how it would perform with large datasets, but POPs is usually pretty good with that.
Just to defend my earlier methods

Houdini Lounge » Architectural Visualization Pricing
-
- jrwillette
- 49 posts
- Offline
I'm really sorry, that was a bit of a joke… I know nothing of architectural rates, or the time involved in the projects. $400-$500 gross for a project doesn't seem very profitable unless you can turn it over in a day or two. Maybe if you could make a Digital Asset that did everything for you, but that doesn't seem likely.
Technical Discussion » animating to sound
-
- jrwillette
- 49 posts
- Offline
Yes, you can load in a supported Audio file in a File CHOP (.wav, .aiff, .au…) enable the Bluish Green Audio Flag.
Under the Menu Bar select: Windows>Audio Panel
Select “Time Line” Sometimes the panel is a bit touchy, you may have to try toggleing between “Test” and “Time Line” or switch “Meter” on and off.
Under the Menu Bar select: Windows>Audio Panel
Select “Time Line” Sometimes the panel is a bit touchy, you may have to try toggleing between “Test” and “Time Line” or switch “Meter” on and off.
Technical Discussion » creating a additive group
-
- jrwillette
- 49 posts
- Offline
I just dealt with something similar to this recently. You need to be able to access the data from the previous frame. There are several ways to do this, each with their own set of disadvantages:
- CHOPS:
- Based on your group, set an attribute to 1 (if not in group value should be 0).
- Use a Geometry CHOP to import your data.
- Use a Hold CHOP and wire your Geometry CHOP into both inputs.
- You should now have a channel that turns on when the point enters the group and never turns off… I think.
- You can use a Channel SOP to import the data back onto your geometry.
- Use a Group SOP based on expression, myattrib > 0.
- Disadvantage: If your geometry is dense, this can take a long time and possibly crash.
- VEX: This is a tough one and I'm not going to go into much detail
- Assign an attribute based on the group, same as the CHOP method.
- This is where it gets tricky, you have to write a VEX function that has two inputs, the first input is your “Live” data, the second input is a File SOP that is reading the output of this node at the previous frame. ( So after this node you would have a ROP that is writing the data for the current frame ).
- The vex function compares the data from the current frame to the data of the prevous frame (if attribPrevousFrame == 1 then attribCurrentFrame = 1)
- Disadvantages: Must save data to disk… can take a long time but won't crash.
- Martian Tools : Feedback SOP
- Haven't used it, but it supposidly gives you the data from the previous frame so you don't have to save geometry to disk.
- Disadvantages: Costs Money.
I personally used the VEX route because I was dealing with 100,000+ points and CHOPS just couldn't handle it, bless it's little heart.
Houdini Lounge » Architectural Visualization Pricing
-
- jrwillette
- 49 posts
- Offline
$400 - $500 / day sounds pretty good for residential stuff, I don't see what the problem is. :wink:
Technical Discussion » help: prman sprite
-
- jrwillette
- 49 posts
- Offline
It is quite possible that renderman does not support a sprite render as implemented in Houdini. But I'm not up to date on Prman myself, so it is only a guess.
Technical Discussion » What renderer is rendering me?
-
- jrwillette
- 49 posts
- Offline
The Select SHOP can switch shaders based on renderer, could this not be useful?
But you are most likely familar with that, and wouldn't be helpful for doing Auto-Gen shadow maps?
In that case, Edward's suggestion is a good solution, one could change the creation script for the render nodes to add this on creation. Of course any existing nodes would have to be treated differently.
The docs suggest using a RENDERPASS variable for doing such things (See Switch SHOP), but they say that you must set this variable before rendering.
There is also the RenderMask for shaders, not sure it there is a way to abuse this or not. That suggests that it wouldn't be too difficult to make a function or variable accessable in Houdini to do what you want, but I don't think one currently exists.
But you are most likely familar with that, and wouldn't be helpful for doing Auto-Gen shadow maps?
In that case, Edward's suggestion is a good solution, one could change the creation script for the render nodes to add this on creation. Of course any existing nodes would have to be treated differently.
The docs suggest using a RENDERPASS variable for doing such things (See Switch SHOP), but they say that you must set this variable before rendering.
There is also the RenderMask for shaders, not sure it there is a way to abuse this or not. That suggests that it wouldn't be too difficult to make a function or variable accessable in Houdini to do what you want, but I don't think one currently exists.
Technical Discussion » What wrong with Collision POP
-
- jrwillette
- 49 posts
- Offline
Technical Discussion » What wrong with Collision POP
-
- jrwillette
- 49 posts
- Offline
A few things to look at:
- In the Collision POP enable deforming geometry… It seems to suggest that it only works with triangulated geomtry. I'm not sure if simply triangulating the geometry on input will work since the triangles may change from frame to frame, would need some testing.
- If your particles or deforming geometry are moving fast particles can sometimes sneek through, you can try oversampling.
- Not sure if it would help but you could try a small value in the hit tolerance. This sets the distance from the surface at which a particle collides, but may give it some virtual thickness which may or may not keep particles from penetrating.
Houdini Lounge » After using copy, How do I select one of the copies
-
- jrwillette
- 49 posts
- Offline
Yeah, I guess we assumed you weren't using a template. If you need groups for templated points you will have to use the stamping feature of the Copy SOP, and a param() function in a Group SOP before the Copy.
I don't have time to go into detail right now, but will later if needed.
I don't have time to go into detail right now, but will later if needed.
Houdini Lounge » After using copy, How do I select one of the copies
-
- jrwillette
- 49 posts
- Offline
BTW: The Duplicate SOP should be used instead of the Copy SOP whenever possible. It is much faster, but lacks many of the powerful functions of the Copy SOP. Just remember that the “Number of Copies” is addative, so the actual number of objects is always 1 greater than the copy number.
Houdini Lounge » After using copy, How do I select one of the copies
-
- jrwillette
- 49 posts
- Offline
ungriaIt is a function of the Copy SOP. Turn on “Create Output Groups”, the default should be which will make a numbered group for each copy of the incoming geometry.
How can create a group for each element copied?
Houdini Lounge » Learning Houdini...No, really... learning Houdini
-
- jrwillette
- 49 posts
- Offline
Well, I learned Prisms first and moved on to Houdini, but I don't think that is still an option
Besides I think Houdini is probably easier to learn.
I think to learn any high level software well you have to do a lot of on the job training. I need that deadline staring me in the face to motivate me into learning. And I think it is worth mentioning that I learn how to use Houdini every minute of every project, and I've been using it since Version 1 (before that if you count Prisms and Sage). It is a continual process.
To be quite honest, if I had it all to do over again it would be quite a daunting task and I too wouldn't even know where to begin.
I would be interested to know what challenges a new Houdini user faces, from the first time opening up the software to reading through the documentation and following tutorials. What are the most confusing things, what concepts are the most difficult to adjust to.
The whole “How to Learn Houdini” issue keeps coming up, and there never seems to be a good answer. I think the Houdini community (and SESI too) has to learn how to teach Houdini better before that question can really be answered. It seems like there have been several good starts (the tutorials for example), but never an ongoing process. The exchange is another good start, the ability to download other peoples work to use as examples is a great learning resource.

I think to learn any high level software well you have to do a lot of on the job training. I need that deadline staring me in the face to motivate me into learning. And I think it is worth mentioning that I learn how to use Houdini every minute of every project, and I've been using it since Version 1 (before that if you count Prisms and Sage). It is a continual process.
To be quite honest, if I had it all to do over again it would be quite a daunting task and I too wouldn't even know where to begin.
I would be interested to know what challenges a new Houdini user faces, from the first time opening up the software to reading through the documentation and following tutorials. What are the most confusing things, what concepts are the most difficult to adjust to.
The whole “How to Learn Houdini” issue keeps coming up, and there never seems to be a good answer. I think the Houdini community (and SESI too) has to learn how to teach Houdini better before that question can really be answered. It seems like there have been several good starts (the tutorials for example), but never an ongoing process. The exchange is another good start, the ability to download other peoples work to use as examples is a great learning resource.
-
- Quick Links