Jump to content
[[Template core/front/profile/profileHeader is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

PixelNinja last won the day on June 16

PixelNinja had the most liked content!

Community Reputation

78 Excellent

1 Follower

About PixelNinja

  • Rank

Personal Information

  • Name
    Matt Tillman
  1. "Trace" around a mess of points in a flat plane

    Here's a couple of approaches. Neither are perfect but should get the job done. Method 1: Triangulate 2d, then delete long edges to hopefully cull the exterior polys from the silhouette. Method 2: Attibute transfer from the flattened points onto a subdivided plane in order to cut out the silhouette. Higher subdivs give a more accurate result. Squab_bool.hipnc
  2. "Trace" around a mess of points in a flat plane

    Posted a couple of approaches below
  3. Passing information in ROP networks

    Yeah it's a bit trickier to setup TOPs renders, but it's definitely worth it if you're doing anything more than just setting renders off. You can mostly set up your renders in ROPs and then in TOPs use a ROP Fetch to set them off. As with most things Houdini check out Matt Estela's write up to get a good foundation on how to get things going. https://www.tokeru.com/cgwiki/index.php?title=HoudiniTops
  4. Apologies, the expression should have been greater than rather than less than. I edited the original response. Note that this doesn't explicitly stop a point appearing on sequential frames, though that is unlikely for small chance values. A value of 0.1 means the point will appear on roughly 1 out of every 10 frames. Just posting this for completeness as a simpler counterpoint to the vex approach.
  5. You could use a switch sop with your point plugged into the first input and a null plugged into the second input. Then an expression in the switch like: rand($F)>0.1 Which will make the point appear on roughly one out of every 10 frames.
  6. Passing information in ROP networks

    Node links in ROP networks are really more about dependencies than data. I would recommend switching to a TOP setup if you want to deal in attributes.
  7. You can build what's called a "Gallery". Once you've made a shader you like select it, right-click and click "Save to Gallery". From then on your shader should show up in the tool palette. Doesn't have to be a shader either; any node or group of nodes can be stored in a gallery.
  8. Leidenfrost effect?

    You could probably get away with a simple particle sim, or even just some points moving around with noise. Vary the initial pscale, have the pscale slowly shrink with age. Then vdb from points, smooth and convert back to a mesh to handle any blobby metaball-like interactions and collisions between the droplets. Add in a smoke sim for the steam.
  9. For anyone working with versioning or extracting and data from filepaths I would recommend looking into regular expressions. import re file_name = hou.hipFile.basename() match = re.search('v(\d+)') return match.group(1) This looks for any string matching a "v" followed by numbers and returns the numbers. eg. "shotname_fx_v001.hip" -> "001" It's is very powerful once you get the hang of it and essential for pipelining tasks.
  10. PolyExpand3D

    I decided to take another look at an old tool I made to increase the functionality of the polyexpand2d sop. Main differences, it's compiled and compilable so it should be faster and more robust. It also generates uvs. Input a curve and a profile curve and you'll get clean, complex geometry that would be impossible with a sweep. The basic gist of how it works is that it's running a PolyExpand2D in a loop for each point in your profile curve. PixelNinja__polyExpand3d__2_0.hdalc
  11. You'll need to bake the texture. There's a bake texture rop, as well as a bake texture sop in the labs tools. I recommend the latter as it's much easier to set up and use.
  12. The only thing I can think of is to copy some geo (like a sphere or a box) onto the points and then export to fbx. That should export all of the transforms, you'd just have to hide the geo though.
  13. I think the simplest way would be to simply join the three paths into one.
  14. I looks like the copy sop is set to rotate the copy by 180 degrees on the y axis. This would make the copied wheel rotate in the wrong direction. Here are three approaches: 1- Transform sop to control the wheel rotation, then mirror sop to create the other wheel. 2- Transform sop to control the wheel rotation then copy sop set to scale -1 in the X axis to create a the other wheel 3- Copy the wheel so that you have two packed copies and then use a mops transform modifier to rotate the packed primitives. I used method 3 for a simple sops based car rig recently and it worked really well. I had a single mops transform handling auto rotation (based on travel distance) for all 4 wheels.