Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


toadstorm last won the day on September 18

toadstorm had the most liked content!

Community Reputation

195 Excellent

About toadstorm

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    San Jose, CA

Recent Profile Visitors

4,606 profile views
  1. Can you post your code, or at least relevant snippets of it? Out of context it's hard to tell exactly what could be going wrong.
  2. copy/stamp, alternative ways?

    There's no need for any kind of copy stamping or for/each loops for this kind of thing, since the only difference between any of those copied boxes is the transformation matrix. You can pass template point attributes into the Copy SOP that describe the scale of each instance, and Copy does the rest. You can assign the color attribute after the fact; Mantra and Redshift (and probably most other renderers) can read the color attribute from the points and use this to drive the albedo of each instance. In the Mantra shaders this would be done just by enabling "Use Packed Color". instances_no_stamping_toadstorm.hip
  3. visualising attribs on packed geo points

    The reason for this is a bit arcane if you're new to Houdini. The Assemble SOP creates a kind of packed geometry called "packed fragments," which means that rather than a typical packed primitive that is a reference to a single file or SOP data, it's a reference to a FRAGMENT of that data. This is more memory efficient when you have a single object that's been shattered into a bunch of pieces, rather than lots of copies of a few identical objects. The side effect of this is that the viewport shader that can tint packed primitives when you assign a color attribute to them won't work on packed fragments. If you wanted to tint these things individually in the viewport, you'd have to either tint them BEFORE you pack, or you'd have to make regular packed geometry instead of fragments. I'm attaching a file where I just cracked open that Assemble SOP and toggled the "Create Packed Fragments" option on the Pack SOP near the end of the chain. packedgeoattributes_nofragments.hiplc
  4. MOPs Instances NON intersecting?

    Sorry about the late reply, didn't see this thread. You can send me MOPs questions directly, or ask on the MOPs forum. Relaxation is based on a simple spherical object radius, so if your objects aren't roughly sphere shaped you might get some overlaps. I'm not sure what exactly "didn't work" means in this context, but if you can provide a more detailed description, or better yet a HIP file, I could help you out. As MOPS instances are just packed primitives, the other thing you could try is to run them through a quick RBD simulation. Give the instances the point attribute `i@found_overlap=1` and then run them through a rigid body simulation, and they should separate.
  5. Honestly, it doesn't make much sense to use pyro for a simple candle flame. Just make the shape procedurally out of polygons or whatever, use procedural noise / bending / etc to wobble the shape, then render it as a volume. You can always do a secondary pyro sim for smoke if you need smoke. It'll be a bazillion times faster to iterate on this way.
  6. render volume in mantra in short time

    If you're willing to use depth map shadows for all your lights, you could use the Micropolygon renderer. It's obviously much less fully-featured than PBR or Raytrace, but it can absolutely tear through volumes.
  7. MOPs: Motion Graphics Operators for Houdini

    Hey friends! It's been another long while since the last Stable release, but I finally have a new one available. The changelist is pretty big so I'll only link to it here, but there are a few new toys to play with, many modifications to existing ones, and a TON of bugfixes and reliability improvements. I hope you'll spend the time to take a look! https://github.com/toadstorm/MOPS/releases/tag/v0.1.52 As always, any questions, comments, feature requests, or donations are immensely appreciated.
  8. Ah I misspoke about qLib, I forgot that they use the nonstandard otls/base, otls/experimental subdirectories. You'd still have to manually define HOUDINI_OTLSCAN_PATH to find these.
  9. animate normal like sea ​​urchin

    you just need to add the scaled curl noise vector to your N, then normalize afterwards. Normal_Animate_toadstorm.hip
  10. You shouldn't need to redefine QLIB or specifically define HOUDINI_OTLSCAN_PATH using this method; because the base $QLIB path includes the /otls, /gallery, /scripts path internally, all you need is the HOUDINI_PATH definition that includes $QLIB and you should be good to go.
  11. Rather than define the individual HOUDINI_OTLSCAN_PATH, HOUDINI_GALLERY_PATH, etc, if your individual plug-ins all have the default internal directory structure separating /otls, /gallery, /toolbar, etc., then you should only have to append these things to HOUDINI_PATH for everything to work together. You're defining HOUDINI_PATH at least three times, without actually appending anything to the path each time (by including the existing $HOUDINI_PATH in those later definitions). You just want one HOUDINI_PATH that includes everything. You can do it with multiple definitions if you like, you just have to remember to append rather than redefine. For example: MOPS="C:/Users/Terence/Documents/Houdini_MOPS/MOPS-0.1.36" AELIB="C:/Users/Terence/Documents/houdini17.5/Aelib-master" QLIB="C:/Users/Terence/Documents/houdini17.0/qLib-dev" MEGA="F:/MEGASCANS/support/plugins/houdini/3.0/MSLiveLink" Then, construct your HOUDINI_PATH by appending all these paths to your existing HOUDINI_PATH: HOUDINI_PATH=$HOUDINI_PATH;$MOPS;$AELIB;$QLIB;$MEGA;C:/ProgramData/Redshift/Plugins/Houdini/17.5.173;& This way you don't need any of those other definitions at all, except of course the PATH variable for including Redshift plugins. By the way, that "&" at the end is a shortcut meaning "Houdini's default search path". It's recommended to include this at the end of your HOUDINI_PATH definition, but only include it once! If you're going to define HOUDINI_PATH multiple times using the append method, make sure only your last definition includes the "&".
  12. Geometry Fracture Pattern from Texture

    Maybe something like this? It's not 100% precise, but I'm eroding your image slightly in COPs, then tracing it, unrolling, fusing, then extruding the resulting edges and using them for a boolean fracture. fracture_from_image.hip
  13. Vellum Pin to Target

    what's up bb this is kind of annoying to do because the vellum constraints sop doesn't allow for many options when using pin to target constraints... at least not in my current build. i'm creating the constraint and then using a sop solver in the simulation to modify the ConstraintGeometry so that any primitives named "pin" or "pinorient" have their stiffness attribute set to zero based on an animation inside the solver. check it out: disable_pins_toadstorm.hip
  14. MOPs Move Along Spline will do what you're looking for. If you're looking for a built-in method besides Attribute Interpolate or doing it yourself with primuv() etc in VEX, I think you're out of luck.
  15. copy to points with rotation of rbd

    I'm attaching a hip file to help explain. There's two things you can do: one is manually extract the transform using VEX as I described earlier... there's a catch in that the Copy SOP also recognizes the "pivot" attribute exported from the RBD simulation, so your boxes won't be in the right place unless you zero that out. The other method is to use the Transform Pieces SOP to copy the transforms over, as long as the boxes have the same "name" attribute as the original simulated primitives. transform_rbds.hiplc