Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


markingleukc last won the day on March 14

markingleukc had the most liked content!

Community Reputation

18 Good

1 Follower

About markingleukc

  • Rank
  • Birthday 06/17/1993

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    New York

Recent Profile Visitors

1,079 profile views
  1. Whitewater spray- pop replicate on velocity

    Something like the file attached? You can do 'emit from attribute' in the point replicate. So all you would need is to define a 0 to 1 float attribute to drive that dop. I called that attribute 'birth_chance'. Your speed would be calculated by taking the length of you velocity vector: length(@v) And you can refit that speed value to isolate the faster points for replication: f@birth_chance = fit(@speed, 1, 6, 0, 1) You can also multiply this by a refit of the spray attribute to narrow it down further to just spray particles within a certain threshold. f@birth_chance = fit(@speed, 1, 6, 0, 1) * fit(@spray, .3, .5, 0, 1); I also isolated these new replicated spray particles in a pop group, so that they can be ignored by the pop replicate - otherwise you have cloned points creating cloned points which gets messy quick. If you need additional help, upload your .hip workfile so we can get a better sense of how you're working flip_whitewater_from_v.hipnc
  2. affect all except a group

    preface it with a '!' !group1
  3. Smoke Target Force

    I've attached a cleaner and updated (for H17.0+) version of this hip file. In the original file, the rubber toy was in there for initial tests. It serves no purpose. Load your alembic geo in as houdini geo or delayed load primitives. Put down an unpack sop, and a convert sop to manipulate it in Houdini. If you're in need of more help, upload your file and your alembic caches so I or anyone else can set you in the right direction. run_smoke_v003.hipnc
  4. You can try using a pointdeform sop instead of the transform, using the animated rings as the deformation lattice. curtain_fix2.hipnc
  5. I believe you need to add animation to the curtain for the pinned points to connect to. Even if you add animation to the whole geo and plug it into the vellum solver, the solver only takes the first frame of the geo - unless the points are in a pin group. curtain_fix.hipnc
  6. Move pivot to center of other node?

    Ah okay, then I would use expressions such as below to calculate that point without having to do a merge. Add these to the pivot translate of the 'rotate' xform node. And vice versa for 'rotate1', just edit the path of the second centroid function. (centroid(opinputpath(".", 0), D_X) + centroid("../rotate1/", D_X)) / 2 (centroid(opinputpath(".", 0), D_Y) + centroid("../rotate1/", D_Y)) / 2 (centroid(opinputpath(".", 0), D_Z) + centroid("../rotate1/", D_Z)) / 2
  7. Move pivot to center of other node?

    Looks like a dependency loop. In the 'rotate' xform node you're referencing the centroid of 'transformall' - which is downstream. edit: Looking at your original file, $CEX $CEY $CEZ in the pivot translate of 'transformall' seems to work fine for giving you a pivot between the two boxes. They only seem to evaluate to 0 using the old dollar sign variable syntax. Use the following expressions in the pivot translate of 'transformall' to get the equivalent in hscript which evaluates correctly. Then use the 'transformall' rotation controls to rotate the two boxes together. centroid(opinputpath(".", 0), D_X) centroid(opinputpath(".", 0), D_Y) centroid(opinputpath(".", 0), D_Z)
  8. Yep, you got it Although instead of using three separate attributes, you can use '@id+123', '@id+456', '@id+789' for the x, y and z random seeds (or any other values you see fit). The rand() function just uses the seed you give it to generate a value from 0 to 1.
  9. Creating a primitive out of a stream of particles

    Add an attribute to your source points to identify where each particle has come from. Your first popnet will by default give you an 'id' attribute already, so use add an 'attribute rename' sop to change this to something like 'parent_id' (otherwise your new popnet will overwrite it). Then after the second popnet, use the parent_id attribute in the add sop to connect up those groups of points. Check the attached hip file To make it a tube, add a polywire sop at the end. pop_lines.hip
  10. I made this HDA to streamline the process of versioning caches. It will automatically produce a file path and file name for your cache, and load it back in once it is exported. You can flip through different versions easily by using the version slider, or using the 'Create File Node for This Version' button and wiring the file nodes up to a switch node. You can write detail attribute strings to store notes about the cache such as simulation parameters - very useful when referring back to old sim caches. At the moment this is a non-commercial HDA. Download link down this page beneath the video. Get at me with thoughts, comments, questions etc. SOP_MI_version_filecache.hda
  11. I wonder why the cloud preset uses 'clouddensity' instead of just 'density'... My bad Thanks for the help StepbyStep, your file works nicely! Using the instance obj is a lot easier to understand than having to deal with material stylesheets
  12. Can I possibly do it with material stylesheets..? http://www.sidefx.com/docs/houdini/shade/stylesheets.html
  13. Thanks! But I'm trying this method and the geometry doesn't get instanced when I use a material SOP. Even though the same shader is selected, the geo is only instanced when it's selected on the geo node at obj level. It seems like this should work though, am I missing anything obvious?? clouds_v002.hipnc
  14. I'm attempting to make a cloudscape time lapse and need to find a way to efficiently create the cloud volumes. My solution so far has been to build the clouds themselves from spherical 'puffs' and to instance those puffs onto points at render time. My issue with this method at the moment is I can't find any way to have control over per-instance variations (beyond transforms, mostly looking for varying density). I have attached a file that shows a basic setup. Cache the frame to your local drive and make sure the instancefile attribute path is set to the cached file location correctly. One solution to my problem could be to cache multiple cloud puffs at different density values, and use different instancefile paths. But this will get heavy quickly as I need hundreds of frames to make up the time lapse animation. I'm hoping to find a method similar to how you would do regular copy stamping, using pt attributes to drive variations in the instanced geo. But obviously copy stamping is too heavy for my purposes. Any ideas/thoughts would be greatly appreciated! clouds_v001.hipnc
  15. I have 2 sets of points: 'parent' and 'child'. Both have the same number of points. I need each parent point to have a unique child assigned to it - no duplicates. I need to be able to animate in an active value for the parent points, so that they all become active in 3-4 frames. When a parent point becomes 'active', it needs to search for its nearest available animated point and set that animated point's id number as 'child_id'. An animated point is only 'available' if it doesn't already have a parent point, or in other words: if the child_id is currently unused. My issue comes from the VOP I've set up within a SOP solver. If there is more than one parent point becoming active on a single frame, I get multiple parent points assigned with the same child point. I need to be able to write to 'child_id' and read from it on the same frame, to make sure that I am not getting multiple parent points with the same child points (leaving some very lonely, parent-less child points ). Please take a look at my attached file. I've highlighted the important nodes, and the Find Attribute Value VOP in red is where the issue is originating. find_unique_child.hip