Jump to content


Popular Content

Showing most liked content since 05/09/2021 in all areas

  1. 2 points
    This version references a CHOP wave in sample/hold mode. The scatter fetches this chopnet value for the seed. Here's a quick attempt at synchronizing the scatter change with the color fade. A lag channel is added to the CHOP network to generate a source supplied to the color node. You can adjust the period of the wave1 node to change the speed for both outputs. Use the phase to align the red waveform with the purple. ap_head_bubbles_odforum.hipnc
  2. 2 points
    Hey! It is as you say, Houdini's forces don't really interact with collision geometry in that way. I think the easiest way to fix your issue is to make a point group in SOPS of the points you want the wind to affect and then add that group to the "group" parameter of your "popwind" node. Made a quick scene and it seems to be working. Hope that can help you solve your issue!
  3. 2 points
    Some more introductory courses: Computer Graphics: https://www.youtube.com/watch?v=W6yEALqsD7k&list=PL9_jI1bdZmz2emSh0UQ5iOdT2xRHFHL7E http://15462.courses.cs.cmu.edu/spring2021/ Discrete Differential Geometry: https://www.youtube.com/watch?v=mas-PUA3OvA&list=PL9_jI1bdZmz0hIrNCMQW1YmZysAiIYSSS https://brickisland.net/DDGSpring2021/
  4. 1 point
    Just found a documentation page on the underlying intrinsic UVs: https://www.sidefx.com/docs/houdini/model/primitive_spaces.html
  5. 1 point
    Points to Voxel Y or ? HM transformCnf.hipnc
  6. 1 point
    That does sound like a more accurate way to do it, but as you mentioned, probably more difficult to control. I'm actually quite happy with the result from the grouping method so will probably stick to that for now. Thanks again for help and different ideas!! lifesaver
  7. 1 point
    Glad I could help! As for this, I can think of one way to do it "more" physically accurate but I'd say it's just not worth the extra effort since you'd probably lose more control and it would be a lot more work, but if you want to try it here is my thought: You could add the collision object as a collider in a pyro sim and simulate smoke blowing and colliding with the object, then export the velocity field from that simulation and bring that into the vellum simulation using the "popadvectbyvolumes" node. That way you'd get a "wind" that first has to "snake around" the collision object before touching the curtain. This is probably going to be somewhat difficult to control, at least compared to just making a group and having full control inside the "popwind" node, but then again, experimenting with stuff like this can be a lot of fun so why not!
  8. 1 point
    Thank you for such a quick response! I've just tried that and seems to be working well, thanks! I've always struggled to get that effect in Marvelous Designer so happy to have it working in Houdini. I still wonder though if there's a more physically accurate way to do it... Anyways, thank you for the help again!
  9. 1 point
    Hey magicians, I'm trying to do this kind of shape, it was originally made with Gravity in VR so I assume it started as splines and then connected. My first approaches were remesh > poly reduce to get some triangle silohuette and then extruding > vdb But I cant get the defined lines, here are some of my tests: Any tips will be super helpful Thanks!
  10. 1 point
    Hi everyone, I was struggling to make this project works in H18.5, so I remade it, it should work now Vortex_cloud.hiplc
  11. 1 point
    A technical video series on ray tracing: TU Wien Rendering / Ray Tracing Course Comes with an examplary ray tracer, as well: https://github.com/8BitRick/smallpaint I haven´t fully watched it yet, but it looks well done.
  12. 1 point
    so, it turns out Underscoreus' post was the key: @side was made in a previous node, and so the need to explicitly add the type in a subsequent wrangle. I will just get in the habit of adding the type in front of all user defined attributes. thanks much!
  13. 1 point
    VEX is exactly like C, variables are declared once only. You only need "@" when importing or exporting attributes (in this case point attributes) But if you call an attribute inside VEX, then you need to tell VEX how to interpret its type. hence the v@ or f@ in front for example: vector a,b,c; a= {1,0,0}; b = {0,1,0}; c = a+b; // export c as an attribute named d v@d = c; You should read this: https://www.sidefx.com/docs/houdini/vex/lang.html
  14. 1 point
    Hi! I just released Simple Tree Tools 2.0. This is a huge update! Please enjoy https://gum.co/SimpleTreeTools
  15. 1 point
    I had a go. I'm positive there's an easy way to do this in mops, but I'm a masochist and enjoyed the challenge of doing this from scratch. Definitely look into mops if you want to do more of these kind of things! The vex looks a bit scary, but its mainly a few ramps controlling when and how the chunks get moved: get a horizontal ramp from the bounding box run it through a few channel ramps, each ramp controls a different part of the effect; eg a ramp that tells the noise to start at 0, go to 1, then back to 0, while another ramp determines when the pieces morph from word A to word B, while others control scale add time to the ramped values, clamp it, so that it slides through the words modify the transform of each chunk. make chunks from word A start with a scale of 1, then scale to 0, while word B does the opposite word A chunks start with no rotation, then gradually start to rotate while they scale down, word B does the opposite finally blend (lerp) the positions from word A to word B, adding some animated noise in the middle bit as they move. The cross-fading of scales hides the transition between word A and word B. voronoi_morph_v03.hip
  16. 1 point
    Hey, you can setup a python callback script which dynamically reference the parameters from your hda to the wrangle. Here's a quick example : listparm_hda = kwargs["node"].parm("list") list_hda = listparm_hda.multiParmInstances() children = kwargs["node"].children() for child in children: if "wrangle" in children: wrangle = children else: continue listparm_wrangle = wrangle.parm("list") list_wrangle = listparm_hda.multiParmInstances() i = 0 for parm in list_hda: p1 = parm p2 = list_wrangle[i] p2.set(p1) p2.expression() i += 1 Cheers,
  17. 1 point
    introduce the upward force (stronger than gravity) only for points that are part of closed balloon then they will automatically fall down as soon as it's broken if you posted the file with everything set up just reversed gravity as you mentioned, you could have already modified working scene file back, most people usually don't have time to constantly build example files from scratch even though it's common too
  18. 1 point
    Another one is in the Graph Editor, you can press 'Y' and get the Box Handles for key frames.
  19. 1 point
    You can visualize it by setting orthographic camera in a special way. Since Houdini's NDC is in 0..1 range (instead of -1..1), camera should have ortho width of 1.0 (instead of 2.0) and translated positive 0.5 units by X and Y (instead of looking at the center). Finally, it should account for aspect ratio controlled by "resolution" and "aspect" multiplier parameters in Houdini cameras. Then you can see the nature of such transformation in 3D viewport: You look through "camera window" and see the point at the center. It will have (x=0.5, y=0.5, z=depth) coordinates in screen space. X and Y are 2D coordinates in range 0..1, and scene depth is stored as Z. It doesn't respect camera's near and far bounds to map depth into 0..1 range, and uses real-world scale units instead. By setting Z to the same value you will flatten the object on the plane of such distance from the camera. ndc_demo.hipnc
  20. 1 point
    Filament like structure, combination of Smoke Solver, VDB Advect Points + Volume Rasterize Particles. smokesolver_v3.hipnc
  21. 1 point
    check group_by_color_h16.hipnc
  22. 1 point
    Second constraint must be a constant vector like @up. They define static reference frame for the changing @aim vector. // Point wrangle. #define PI 3.1415926535897932384 float angle = acos(dot(v@up, v@aim)); int first_half = sign(dot(v@z, cross(v@up, v@aim))) >= 0; angle = first_half ? angle : 2*PI - angle; @angle = degrees(angle); circle_angle.hipnc
  23. 1 point
    - basic environment light, - material gallery glass, - adding area-light, - liquid object with glass material, - enabling SSS in glass material for liquid, - creating a caustic light and low-intensity spot-light as a caustic light mask, - changing Phong to GGX for light reflections. Finally, rendering caustics in a separate pass with glass set as matte and putting it together: experiment_with_glass.hipnc.tar.gz