Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Hi all, I'm currently contemplating the most efficient way to connect planes along their intersections. The use case I'm considering is creating a game level for example. It would take a bit of time to connect all vertices manually in e.g. Blender, so I'm thinking about creating a pipeline in Houdini which would do that for me. Step 1 would be something like creating simple quads in Blender like so: Then I would run a Houdini pipeline and it would connect these quads along their closest neighbor's intersections and create a closed surface like the next image attached: Now, I've created a first pass of the tool in Blender, but I'm actually curious if there's something in Houdini which could help me automate the process. Thank you all in advance!
  3. Today
  4. Hi, I am working on a Time-lapse animation using heightfields. I am animating some noise offset to create the effect that the landscape is changing. I would really like to use the heightfield erode to add more detail. I am not sure how to set this up seeing that the heightfield erode only works on a single frame. How can I erode per frame, could this be a PDG solution? Any advice would be greatly appreciated.
  5. Hi - Before the copytopoints you can add an "Atribute Adjust Vector" node and set it to only edit P.y, then change it to adjust with a random value. Hope this helps
  6. Thank you. The problem with the direction has been solved. I really appreciate it.
  7. Hi, in sweep1 -> construction tab -> up vectors section -> turn on "use target end up vector" checkbox
  8. hard to tell from that screenshot, but maybe try to clamp the velocity and/or divergence for example: // in a gasWrangle: v@vel = normalize(v@vel) * min(length(v@vel),chf("max_speed")); f@divergence = min(chf("max_divergence"),f@divergence);
  9. Yesterday
  10. I used boolean shatter (with treat as surface option for both sets) to split the geometry A. However, the node drops all edge groups in the geometry. As in the attached file, I'm finding a way to keep the geometry A's edge groups after shattering, just like the DESIRED_OUTPUT node on the right side. I want to know how to shatter the (planar) geometry without losing edge groups or reassigning them after splitting. Thank you. boolean.hipnc
  11. in the attached hip, I've managed to randomise the pscale but I need to vary the Y position of each box, preferably control by how much it varies randomise offset from grid.hiplc
  12. Hey I just tumble across the Houdini Artist and found that you also can do this with Lab Calculate Thickness tool Or float u; float v; vector p; int i; float maxdist = 999; //assumes point normal exists i = intersect(0, v@P-(v@N*0.001), -v@N*maxdist, p, u, v); //get depth and copy to attribute f@d = length(v@P - p); Here is the post and its comment may relate to your solution: https://www.facebook.com/groups/371132239669253/search/?q=edge fracture
  13. Hey there, I am currently modering and animating a pendant light shape by Italian designer Lorenzo Morandi. I am having trouble getting the animation to work. Any help would be appreciated. What you want to solve 1,I want to move animation smoothly. 2,The part connected to the circle does not want to change its orientation.
  14. Not sure what's going on here but in this particular file (which has a ton of cached sims and is not particularly easy to upload unfortunately) there are these weird jutting artifacts whenever I advect things off the main sim. Which I really need to do :). Any thoughts to what this might be would be extremely helpful!
  15. node.parm('num_materials').removeMultiParmInstance(1)
  16. Last week
  17. For any Polygon, Convert Line to split edges, then Measure (Length/Perimeter). Attribute Promote (Minimum) to Detail to get lowest value. However, you might want to attempt this method instead.
  18. Hi, I have a wedge attribute through TOPS that goes from 0 to 9. If I input `@wedge` on a group paramater, it works. The group value changes depending on the work item active/selected. As expected. But if I put this in an attribute wrangle. It will always stay zero. Is there a way to make the attribute wrangle also dynamically update? You can check an illustration below: wedge.mp4 debug_wedge_attribute_on_vex.hipnc
  19. @Atom Thanks. It now works as epected! Didn't know you can actually refer an object through a string in VEX rather than adding it on on a parameter/through expression. I guess the keything is adding those colon :
  20. Try passing the direct path instead of 0. string handle_path = "op:/obj/geo1/dopnet1:crowdobject1/Geometry"; float len = agentcliplength(handle_path, @id, "walk"); f@attr_len = len;
  21. Cool, I've just replaced the iterative approach by a tracer that does practically the same thing. int steps = chi('steps'); float w = chf('width'); float dist = 0.0; if(f@mask < 0.5){ vector pos = v@P; for(int i = 0; i < steps; i++){ vector grad = volumegradient(0, 'height', pos); pos -= normalize(grad) * w; float mask = volumesample(0, 'mask', pos); if(mask > 0.5){ dist = 1.0 - i / (steps - 1.0); break; } } } f@mask = max(f@mask, dist); snow_accum.hipnc
  22. @Atom Thanks for the response. Nice catch on the f@len. I revised the VEX with the len attribute but it still gives me a 0 value. Are there any other areas I should look into? My main concern would be the (0,0, "walk") Considering that the crowd trigger does not have an upstream node. So maybe that's why its nofetching a value?
  23. How to access a preset with python, is this possible?
  24. adjusting the setting like that takes a long time and sometimes just confusing. A easier way to do it is to animate the joints in all the ways you want them to move, create a motion clip and then feed that into the third input of the configure joints node. You have to set the configure joints to read the motion clip from the second input. the configure joints node will look at all the transforms in the motion clip and set all the constraints up for you.
  25. Hey everyone, I'm having a hard time trying to pass a struct to another struct as reference. All I can seem to be doing is a straight up copy. I know passing variables to methods or functions in vex are references but as soon as they get assigned they are copied into the new variable. Here is a brief example of what I'm talking about. struct test_1{ int a = 123; void print(){ printf("test_1 a value : %f\n",a); } } struct test_2{ test_1 t; void print(){ printf("test_2 a value : %f\n",t.a); } } cvex test(){ test_1 t1 = test_1(); test_2 t2 = test_2(t1); t1.a = 456; t1->print(); t2->print(); } The output will be test_1 a value : 456 test_2 a value : 123 I would expect it to be 456 for both if they are passed as reference. I've tried passing the struct in a method instead of the implicit constructor and same result. struct test_1 gets copied into the t variable of struct test_2 I basically have a few objects/structs referencing a main config/parameter struct. but when any one of these structs updates the config it doesn't get updated in the other structs. I basically need to go and reassign the struct to all other objects/struct again..... Is there no other way ? also I have many of these objects reading the main struct and it seems like a waste of memory to have to copy the struct over and over into each object/structs. Any help here would be greatly appreciated
  1. Load more activity
  • Create New...