Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by anim

  1. your name attribute is string, not int so instead of Assemble SOP use Connectivity SOP, to create primitive int attribute (by default named class), then bind that class attribute in your shader as int
  2. Delete them after attribinterpolate as before they are not in the correct position relative to the camera anyway Alternatively store unique @id attribute on points before deleting, then after deleting this attribute value will not change so you can use it as a seed for attribute randomize nodes which will then produce stable values per point
  3. you don't have to attribtransfer anything in Attribinterpolate specify only P instead of * if you don't want it to update other attributes from the right input
  4. what I meant is that if you have efficiently instanced packed geo in houdini (many packed primitives point to the same geometry in memory) and you export as .abc preserving instancing (so .abc is pretty lightweight) reading such .abc back into houdini would bring in each individual packed alembic primitive having unique geometry memory reference, losing the notion of referencing the same geo source I'm not sure if this is still the case, but it used to be that way
  5. Your scatter is operating on time dependent geometry so probably producing different results every frame and also making your attribinterpolate sort of useless Make sure to frame hold your geo before scatter If your geo is just deforming, attribinterpolate will make sure points stick to corresponding prims
  6. Last time I checked Houdini wasn't able to import instanced geo from alembics as instances either. Luckily there is .usd now
  7. if you use path attribute to build hierarchy from it will not be saved as an attribute to the geo, it will literally split the geo into separate objects based on the path, most of the applications bring it in as separate objects but the naming should be coming from the path attribute unless you are exporting packed primitives packed primitives may still be forced to separate objects to preserve instancing and if more of them have the same path, then houdini has to make up the names so I'd try unpacking everything, setting up clean path attribs and then the geo should come in into blender segmented only based on path attribute with correct names
  8. Vein pulled out effect using Vellum

    you can increase drag force or post a hip file showing the issue, doesn't have to be your exact scene
  9. then you can store your already computed v that you are happy with into some temporary attrib like v@tmpv using Attribute Swap SOP, method: Move and in DOPs use POP Wrangle: v@force = v@tmpv * chf("weight"); it will use your v@tmpv vector (further scaled by weight parm) as a force since force is added to velocity each timestep it will naturally accelerate, so just adjust weight to control the rate
  10. instead of feeding initial velocity from SOPs, use POP Force DOP or other forces force acts on velocity every timestep, therefore it will keep gradually increasing your particles velocity you can also add some POP Drag or POP Wind to introduce some air resistance to not accelerate forever
  11. it evaluates when something dirties the node, like if the inputs or parameters change or are time dependent if it's not time dependent it will only cook once, not every frame, but also you can lock the geo using Stash SOP or save to disk (.abc, .usd, ...) and load back in, so that even if it's animated it will be faster than loading custom format using python
  12. Ray SOP ignore backfaces

    if you want your ray to continue through all backfaces and hit something behind you'd need to do something along the lines suggested in previous posts vector t = chv("t"); vector dir = normalize(chv("dir")); float maxlength = chf("maxlength"); // get all intersection int prims[]; vector hitPs[], primuvs[]; intersect_all(1, t, dir*maxlength, hitPs, prims, primuvs, .001, .001); // filter out backface intersections and stop at first frontface vector outP = t + dir*maxlength; foreach(int i; vector hitP; hitPs){ int prim = prims[i]; vector primuv = primuvs[i]; vector hitN = primuv(1, "N", prim, primuv); float dot = dot(dir, hitN); if (dot < 0){ outP = hitP; break; } } // create line int pt0 = addpoint(0, t); int pt1 = addpoint(0, outP); addprim(0, "polyline", pt0, pt1); ts_intersect_ignore_backfaces.hip
  13. Pivot at the bottom of an object

    what you are doing with your bbox(0, 1) in Y is just making sure that your pivot's Y coordinate has the same value as the bottom of the geo however since your animation seems to be in XZ plane, Y doesn't change therefore pivot will not move you can put following expressions to px | py | pz: centroid(0, 0) | bbox(0, 1) | centroid(0, 2) to center pivot in XZ and move to bottom in Y
  14. Python SOP or Python based geometry HDA is definitely the way to go it's really not a good idea to use Add SOP with thousands of parameters if you are reading in thoudands of points from your custom data file, also baking in the data is a big disadvantage, Python SOP can read your file live and you can always use Stash SOP after to store the geo in the file if you really want that you can also have a look at the Table Import SOP which is an example of Python Based HDA, so you can have a look at the code section to see how it works
  15. Vellum simulation issue...

    it's your attach constraint inside of Vellum Solver (turn on Vellum Solver/Visualize/Constraints/Attach To Geometry to see) currently you are attaching all the points of the cloth, so just specify your point pintar group in it's Geometry Group parameter, also you don't need Target Group as Attach Constraint will attach the points to the closest surface by default additionally to have your pintar group contain all desired points set your group2 mode to Union With Existing instead of replace EDIT: aso you've put your handle geo into the Vellum Solver Target Path, which can cause problems if you had some constraints matching animaton as the handle geo is not the same topology as the cloth geo, so whatever the intention was I'd keep that in mind
  16. yes, to modify initial state properties of the cloth you can do it this way just make sure you set the Bend Stiffness on Vellum Constraint to Scale By Attribute and put your attribute name in there
  17. it's different since transferring vertex UVs is not trivial and Attribute Transfer uses very naive approach that it guaranteed to not work if you have any seams the reason is that at the seam 2 or more vertices attached to the same point have different UV values, however since Attribute Transfer uses spatial proximity to sample values it will assign the same value to all vertices that share a point since they have the same P you may have more success with GameDev UV Transfer
  18. surfsect is for NURBS and Bezier Surfaces, while boolean is for polygons also surfsect is pretty old and may have a lot of issues as the whole NURBS support in Houdini
  19. Flatten VDB sdf from multiple VDBs?

    you can still use use Flatten All B into A, are you having any issues with that?
  20. Flatten VDB sdf from multiple VDBs?

    there is also SDF Union operation
  21. Attribute from map with udim textures

    Try using uppercase <UDIM> or before H18 you have to use %(UDIM)d
  22. you can directly save and load those cpio files instead of managing real copy buffers allowing you to have both, local copy/paste buffer and custom one(or more)
  23. since polypath is just an HDA you can easily modify it to allow to specify such group, if you look inside, it's just an addition of the green groupcombine node polypathgroup_mod.hipnc
  24. Attribute stamp not working

    that's not even using a stamp function if you put this into blast Group parm it should do what you expect: @class=`stamp("../copy1", "rand", 0)` however since you are using H18, you can directly use Copy to Points, rename rand into class and use class as a Piece attribute, can't post a file as I don't have access to H18 at the moment
  25. import V to vellium cloth

    do your v stuff inside of the vellum solver sop, that's the place for all the forces in your case you can just use POP Force or POP Wind DOP, both of them have noise controls