Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by anim

  1. currently you are deleting the original pathchname attribute, so next frame your @patch will be mostly 0s also, essentially every frame where there are no ew patches generated all of them will be 0 so in your sopsolver1/attribpromote1, uncheck Delete Original to keep the patchname attrib on points also you may want to merge your nodes after vellum source if you want to see the correct orient at the end of every frame
  2. Sculpt Tool

    Maybe use smooth brush to smooth out those imperfections any time you start noticing penetrations like that, as sculpt pushes along normals, so you will easily get intersecting geo on detailed surface
  3. seems to work exactly that way, what exactly is not working for you? attached file with the same code Specific_pscale_fix.hip
  4. If you switch Attributes drop-down to Point attributes it should work for point groups In the past I think Mantra didn't work with point based shop_materialpath so there is a chance it still doesn't, but if I remember correctly Redshift did, I haven't tried for a while though
  5. I'll check once I have access to Houdini
  6. Not by Houdini right now, but I think you may want something like this int values[] = findattribval(0,"point","random_number",3); @pscale = find(values, @ptnum) >= 0 ? chf('specific_pscale') : chf('rest');
  7. pcfind function question

    it's not random order, it's ordered by proximity you are looking up n-points in 2nd input whose "P" attrib value is within certain radius from certain value 1. from value of @P, which is different for each point, therefore you will get different points that are closest to that value @P ordered from closest 2. from value of @Cd, which is the same for each point (since nonexistent on first input it's the default value of) {1, 1, 1}, therefore for each point you will get the same array of points ordered by proximity to {1, 1, 1}
  8. Force Directed Graph OpenCL

    the indent is off on that line just erase the space in front of 'for' on the mentioned line
  9. Image to point

    you should be able to extract any data from deep image using dsmpixel() VEX function so if this data is for example P channel, you get array of the values per pixel and create a point for each of the values
  10. if your path attribute is Detail string attriute then it would be `details(-1,'path')`
  11. vortex filament example?

    I believe this distinction is pretty well described here https://www.sidefx.com/docs/houdini/dopparticles/filaments.html also it's possibly based on a paper like this, where you can learn more about the target use cases and comparison to other approaches http://page.math.tu-berlin.de/~pinkall/forDownload/filaments.pdf https://dl.acm.org/doi/abs/10.1145/1778765.1778852
  12. Assigning material to prim group

    or directly Material SOP for that matter but also you should be able to use wildcards, adhoc groups (or any syntax that group fields allow) with inprimgroup() function
  13. not sure if there is a node for this, I'm not that familiar with hfields but you should be able to do it in Volume Wrangle string pattern = "rocks path* dirt*"; // pattern matching layer names you want to combine float combinedlayers = 0; for (int i=0;i<nprimitives(0); i++){ string name = prim(0, "name", i); if (match(pattern, name)){ float value = volumesample(0, name, @P); combinedlayers = max(combinedlayers, value); // combining layers using maximum } } f@mask = fit01(combinedlayers,1,0); // mask will contain complementary areas to combined layers
  14. what is intrinsic in VEX?

    primintrinsic(), detailintrinsic() and corresponding set functions allow acces to intrinsic attributes on the geometry either at prim or detail level each prim type has specific set of intrinsic attributes and some intrinsics are read only, you can see them in Geometry Spreadsheet in Intrinsics dropdown more info also way to list them all is here https://www.sidefx.com/docs/houdini/model/attributes.html#intrinsic
  15. iterate over certain points

    if your array is not varying per point (at least from your example) and you still want to use Point wrangle instead of detail you can simplify your code further to int pts[] = neighbours(0,0); if(find(pts, @ptnum) >= 0) { @P.y = 1; } or @P.y += 1; if you want to offset them instead of hardcode to 1
  16. volume of an object affect on your effect

    oh, that was not clear at all, in that case you can use Distance From Geometry node for example, that will give you also some falloff Vex_fix2.hip
  17. volume of an object affect on your effect

  18. volume of an object affect on your effect

    you can use detail() function for example detail(1, "totalvolume");
  19. volume of an object affect on your effect

    you can use Measure SOP to get volume of a polygonal geo per piece for example or for the whole detail as long as it's manifold, watertight and geometry normals point outside the volume value should be correct then you can use it in your wrangle
  20. Bullet - dynamic constraint creation

    1. the 1f offset may have something to do with evaluation of the constraints if they are nor attached to an object, which is once per dopnet substep if you want it more precisely (during Bullet substeps) you will need to check Attach Internal Constraint to object and connect it just after object, but then you will have to have your active and passive rbds part of a single object, so a bit of rearranging the setup, but regardles at least it sort of works 2. seems like intrinsic transform is not reliable way to assume the initial pose, so I'd go back to using p@orient and v@pivot attributes as described at the beginning of this thread something like this: int found_pt = findattribval(1, "point", "name", s@name); if(found_pt != -1){ vector pivot = point(1, "pivot", found_pt); vector P = point(1, "P", found_pt); vector4 orient = point(1, "orient", found_pt); orient = qinvert(orient); v@P = qrotate(orient, v@P - P) + pivot; p@orient = orient; } also I made sure @restlength is initialized and computed in your file as it's necessary for spring constraint and switched f@strength attrib to prim as it's per constraint and also added switch to Soft constraint if you want to use that instead and tweak strength maybe as its much more stable than spring and has greater range of stiffness (I included f@stiffness prim attrib that controls it instead of f@strength which controls spring one) I may have changed something else while playing (I temprarily replaced your primcenter HDA as it was not embedded) dynamic_constraint_problem_fix.hip - alternatively you can also have the fragments glued together from the beginning and have the spring or soft constraints set as secondary constraints (s@next_constraint_name and s@next_constraint_type), then just break the glue when you need or with impacts and it should switch to secondary ones even during substeps
  21. Vellum @disableexternal per-object ?

    sure, just set it to 1 for points of the collider you want to disable or if you need more control about which parts of vellum collide with which you can use s@collisiongroup and s@collisionignore attributes as with pops or rbds
  22. Get prim attribute value via python

    also since you are trying to access prim attribute value you need to get a single prim first hou.node("/obj/GEO_model/null1").geometry().iterPrims()[0].attribValue("name")
  23. [SOLVED] @P in Flip/POP Vexpression

    it's just a false premise that you can't access @P, you definitely can so something like this is straightforward wind *= length(@P); the problem you are seeing is that you can't export your custom attribute like @test by default since it's not marked exportable inside of POP Wind using export prefix is the way to go as you figured, however that just defines the default value of the attribute so you can't assign any variables to it like @P, what you can do however is this export vector @test = 0; @test = @P;
  24. it's because File SOP imports image as Volume with viewport visualisation, which if you want to match you need to use Cd field in the shader however you probably want just texture mapped cards, which you can either - create grid and map your texture to it - or create Reference Image Object - or in sops create COP2 Network with File COP inside and let it output the image as Mesh
  25. t's all about evolution of the tools over time and then also keeping them around for backward compatibility for some time as people may rely on them things are being figured out new research is being done new solvers are always emerging, so useful things are being added to the software, but it's rarely all super compatible together that you can package it under one solver or system. So as I said once Vellum is mature enough and can handle physical materials FEM may be phased out, but that depends on roadmap for Vellum, so that may not be the intention, maybe MPM, IPC, ... will be implemented, who knows, It's also about giving people the options to test those methods in production and find out what works the best in terms of balance among speed, flexibility, robustness, accuracy, ... because all those methods may look amazing on paper until you actually have to use it yeah, improves it, as I mentioned, that doesn't mean it's actually resolution independent it was a bit of a stretch, but in Vellum no matter now high your stiffness values are (infinite would mean the highest possible float value you can type in) and how high you set constraint iteration or substeps, you will not get above certain level of stiffness if your geo is of higher resolution, like metal or long thin wire that you want to hold horizontally on one end and not expect to bend at all (or just tiny bit realistically) under just gravity force, or stiff rubber object or any stiffer material is much more robustly handled by FEM or MPM at the moment