Found 56 posts.
Search results Show results as topic list.
Technical Discussion » Colored smoke with KARMA XPU
- Benyee
- 56 posts
- Offline
For the shader, try to use the imported Cd field to control the scatter, and a constant color to control the absorption.
Technical Discussion » Combine fireball explosion with RBD destruction of object?
- Benyee
- 56 posts
- Offline
Sometimes I use the parameter "force matte", or set the parameter "matte shading" on object node.
And I also make takes for each render layers.
In this case I don't render separate matte for anything.
And I also make takes for each render layers.
In this case I don't render separate matte for anything.
Technical Discussion » Combine fireball explosion with RBD destruction of object?
- Benyee
- 56 posts
- Offline
Mine is just like you mentioned at the end, render rbd as matte for fireball.
Another thing you should be aware of is you should use the same motionblur setting for the two layers.
For rendering the rbd with a black material, I've never tried, it could be an option but need to be tested.
Another thing you should be aware of is you should use the same motionblur setting for the two layers.
For rendering the rbd with a black material, I've never tried, it could be an option but need to be tested.
Technical Discussion » Combine fireball explosion with RBD destruction of object?
- Benyee
- 56 posts
- Offline
The general approach for simulation is rbd first, and then pyro, baked rbd will affect pyro as colliders.
Then render rbd and pyro separately.
Then render rbd and pyro separately.
Technical Discussion » Using RBD Cluster with DOP Netowrk?
- Benyee
- 56 posts
- Offline
litote
I might ask a question about the foreach loop part once I try to follow the setup as it is a bit hard fro me to follow.
In the foreach loop, steps include:
1 take one chunk;
2 pack the chunk geometry to get rbd points, and also transfer cluster attribute because I will use it to identify the final constraint geometry;
3 promote cluster to point attribute as I found that point attribute can be inherited in the next step;
4 create the constraint geometry between the rbd points created in step 2.
I should say, the operation for cluster attribute in step2 and step3 is not necessary, it’s just for visualizing or identifying the constraint geometry by cluster attribute, and it doesn't affect the sim result.
So the entire setup in the loop can be replaced by a simpler approach,
just use one ConnectAdjacentPieces node and set the connection type parameter to the second option.
Edited by Benyee - 2023年8月24日 11:58:12
Technical Discussion » Using RBD Cluster with DOP Netowrk?
- Benyee
- 56 posts
- Offline
litote
I am unfamiliar with a couple of the nodes you used. Could you please run through what is happening in the For Each loop step by step?
Also, can you explain what the Connect Adjacent Pieces and the RBD Convert Constraints (both connected) are doing, precisely?
I just presented some comments for the nodes and setups.
litote
I had expected you to use the RBD Constraint Properties node to use the RBD Cluster node's intracluster and clustertocluster groups in its Constraint Group field, as I have see them used with the SOP level RBD Bullet Solver). Is this not possible for use in a DOP Network set up? Is this why you have instead created your own cluster groups?
In this case I just created those 2 type of constraints separately and manually, of course you can try using RBD Cluster’s constraints groups, but you should connect the node Voronoifracture’s 2nd output to the 2nd input of node RBD cluster, it's possible to use it in DOP as using the manually built ones.
This approach(manually) might be more flexible, but it’s not necessary, depends on the situation.
Edited by Benyee - 2023年8月24日 01:37:33
Technical Discussion » Using RBD Cluster with DOP Netowrk?
- Benyee
- 56 posts
- Offline
Here is a simple example to illustrate how to config bullet RBD constraints with RBD cluster node in SOP level
and use these constraints in DOP. Hope it helps.
and use these constraints in DOP. Hope it helps.
Technical Discussion » Interpolation problem in Francitonal Frames
- Benyee
- 56 posts
- Offline
Technical Discussion » FLIP simulation stability and time scale issue
- Benyee
- 56 posts
- Offline
Technical Discussion » why when increasing vellum substeps with wire jumps?
- Benyee
- 56 posts
- Offline
Soft pin works well in this situation, perfect. It seems only hard pin for orientation causes the single frame popping, hard pin for position doesn’t affect.
Technical Discussion » How to remove points but keep lines?
- Benyee
- 56 posts
- Offline
64669804In this case you can try filtering points by calculating point angles with vex.
I want to remove the selected points in Figure 1 (these points have been defined in the group) but keep the lines. I hope it looks like picture 2 after removing. I tried 'remove inline points', but it didn't work as expected.
int pts[]=expandpointgroup(0,'group1'); int nb_pts2[]; string edges='',edge; // foreach(int pt;pts) { int nb_pts[]=neighbours(0,pt); for(int i=0;i<len(nb_pts);i++) { int ingrp=inpointgroup(0,'group1',nb_pts[i]); if(!ingrp) { pop(nb_pts,i); } else push(nb_pts2,nb_pts[i]); } //printf('%d\n',len(nb_pts)); // int pt_nb0=nb_pts[0]; int pt_nb1=nb_pts[1]; vector pos0=point(0,'P',pt_nb0); vector pos1=point(0,'P',pt_nb1); vector cur_pos=point(0,'P',pt); vector dir0=normalize(pos0-cur_pos); vector dir1=normalize(pos1-cur_pos); float angle=degrees(acos(dot(dir0,dir1))); setpointattrib(0,'angle',pt,angle,'set'); if(angle>175) { setpointgroup(0,'smooth_pts',pt,1,'set'); } }
Technical Discussion » flip particles collasped after turning on "density" attribut
- Benyee
- 56 posts
- Offline
I think you should check off "solver pressure with adaptivity" if "density by attribute" was on
due to the unsupported varying density in the adaptive solver currently.
due to the unsupported varying density in the adaptive solver currently.
Technical Discussion » why when increasing vellum substeps with wire jumps?
- Benyee
- 56 posts
- Offline
tamteLogically, the setup must work well, however, if pin the orientation of roots, the hairs still pop at frame 79. Is this strange issue caused by or related to roots collision or other aspects?
you should deform it after vellumhair1, not before, since vellumhair1 is computing the hair orient and for that to be stable it's better to compute it on rest hair
but also it is only important if you are pinning orientation to animation, which you are not doing anymore in the latest file, still good to keep in mind, especially for stiffer hair if you want them to follow root's orient
another issue is that your root point is forced into collision with the sphere, the easiest is to set disableexternal to 1 for root points
Technical Discussion » Convert RDB sim to FLIP fluid after destruction occurs
- Benyee
- 56 posts
- Offline
It seems that at least these two steps you should improve.
Frist, use the dynamic rbd geo as the flip initial source, and then make the particles to inherit the velocity of rbd.
Frist, use the dynamic rbd geo as the flip initial source, and then make the particles to inherit the velocity of rbd.
Technical Discussion » how to apply a force to rbd object outside of center of mass
- Benyee
- 56 posts
- Offline
I think you just need to move the center of mass to the custom position.
And then, you should tell the solver you will use custom center of mass rather than the one computed by it.
So you can set these related rbd attriutes after the rbd configuration like this:
"com" parameter must be the custom position.
And then, you should tell the solver you will use custom center of mass rather than the one computed by it.
So you can set these related rbd attriutes after the rbd configuration like this:
i@computecom=0; v@pivot=chv("com");
"com" parameter must be the custom position.
Technical Discussion » Constraint one curve to another (Trunk -> branch)
- Benyee
- 56 posts
- Offline
Technical Discussion » Fuse/combine Boolean Pieces with same name attribute
- Benyee
- 56 posts
- Offline
You should override the name attribute before sim if you modified it.
In this case, checking on the option "create convex hull per set of connected primitives"
of the RBDpackobject is recommended.
In this case, checking on the option "create convex hull per set of connected primitives"
of the RBDpackobject is recommended.
Technical Discussion » flickering in retiming a mesh with unchanging topo
- Benyee
- 56 posts
- Offline
This doesn't seem to be a problem caused by retime node.
Check it again you'll find there is some deformation probelm on your REST geo, for example frame 30,
you got "slump effect" on the surface.
So I tried to smooth it out by adding a attribblur node, then the flickering disappeared.
Check it again you'll find there is some deformation probelm on your REST geo, for example frame 30,
you got "slump effect" on the surface.
So I tried to smooth it out by adding a attribblur node, then the flickering disappeared.
Edited by Benyee - 2023年6月28日 11:51:28
Technical Discussion » How to create an Absolute Reference Copy of a node
- Benyee
- 56 posts
- Offline
I'm not sure if there are some new approaches in the newer Houdini versions
can achieve the function you mentioned.
This is a script I wrote before that can do batch conversion from relative refs to absolute ones.
You can try it as a python shelf tool.
can achieve the function you mentioned.
This is a script I wrote before that can do batch conversion from relative refs to absolute ones.
You can try it as a python shelf tool.
import string def abs_path_reference(node): parms = node.parms() #filter string type parameters refParms = [] for i in parms: if ( (i.rawValue().find('ch("../') != -1) or (i.rawValue().find('chs("../') != -1) ): refParms.append(i) print(str( len(refParms) ) + " parameters channel referenced and modified to:") #loop for finding out node(s) which channels reference from for parm in refParms: orig_expr=parm.rawValue() absPathStrs=[] relPathStrs=[] for i in parm.rawValue().split('('): for j in i.split(')'): if j.find('../')!=-1: tmp1=j.split('/') tmp1.pop() tmp2='/'.join(tmp1) relNodePath=tmp2[1:len(tmp2)] refNode=node.node(relNodePath) absNodePath=refNode.path() absPathStrs.append(absNodePath) relPathStrs.append(relNodePath) #setting new expressions new_expr=orig_expr for index in range(len(relPathStrs)): count=new_expr.count(relPathStrs[index]) new_expr=new_expr.replace(relPathStrs[index],absPathStrs[index],count) print(new_expr) parm.setExpression(new_expr) print("-------------------------------------------") #excute script sels = hou.selectedNodes() for sel in sels: abs_path_reference(sel)
Edited by Benyee - 2023年6月22日 08:53:32
Technical Discussion » Get String of Edge Group like this: p36-37-38 p12-13
- Benyee
- 56 posts
- Offline
tamte
you should be able to do just this in Detail wrangle
int pts = expandedgegroup(0,'edge_group');
string edge_strings;
for(int i = 0; i < len(pts); i += 2) {
append( edge_strings, sprintf("p%d-%d", pts, pts) );
}
s@edgegroup_string = join(edge_strings, " ");
Generally,the function “expandedgegroup” is handy and powerful, nice solution, thanks.
-
- Quick Links