Jump to content


  • Content count

  • Joined

  • Last visited

Everything posted by jamesr

  1. workflow for flip fluid sim/mesh/render

    Yup! They've got some example scene files you can download, too.
  2. Ramping into a group in POPS

    Try using a fit() function to remap the age, then scale the force itself by that. Should be possible in the VEXPression section of your POP Force. You don't even need to put the particles in a group (unless you want to). float newage = fit(@age, 1.5, 3, 0,10); force *= newage; This will ramp the force from 0 - 10 as the particle goes from age 1.5 - 3. Before that, the force is 0. Same can be done with "amp" in the noise section.
  3. You could copy/paste it into an empty houdini scene, then open that and copy/paste. Or simpler you just make the shop into an HDA and save it someplace and load it in.
  4. Ash and Disintegrate in Houdini

    I haven't watched it, but check out Peter Quint's peeling tutorial. It looks like a similar effect for the ashy part. You could probably get similar motion if you emit smoke from your object (sphere or what have you), shape the look with some initial velocity/forces, and advect the points through the volume. Search "advect points through volume" to get some info on that. Also, look into voronoi fracturing to get a pattern for the pieces to break into, VOPs and various types of noise to break up straight edges and for shading (need to know vops for everything!), and maybe the wire solver (or maybe springs) to give the pieces some organic feel. If you're getting started, check out Matt Estela's page http://www.tokeru.com/cgwiki/?title=Houdini It's an amazing wiki with a lot of the best info and links for learning houdini. Good Luck!
  5. workflow for flip fluid sim/mesh/render

    That looks correct. You can leave "load from disk on" even if there's nothing on disk. It will error at first bc there's nothing there, then it will write and load from that location.
  6. workflow for flip fluid sim/mesh/render

    That's the standard workflow using the shelf tools, which should be just fine. If you want to go straight from sim --> rendered frames overnight, you can set up a dependency of fetch nodes inside a ropnet. A "Fetch" ROP simply looks for a "ROP Output Driver" to render. If you have multiple fetch nodes piped into a "merge" ROP, it will render them in order left to right. I would suggest: Make 2 Fetch ROPs and 1 Mantra ROP, and a Merge. Name them something useful (ie: "fetch_flip_particles", "fetch_surface", etc) In the first Fetch, click the dropdown and navigate to the filecache node that write the flip particles. Inside that, there's an Output Driver called "render". Select that one. In the second Fetch, do the same, but for the flip surface cache. Configure your desired mantra render settings in the Mantra ROP From left to right, wire the nodes particles, surface, render. Order counts! On the merge node, hit the Render flag button on the right. Important! There's an option that says "Frame by Frame". You will want to change this to "node by node", so that each node is dependent upon the one to the left of it to finish before it can start. Grab a beer, have a nap, and return in a few hours to comp your frames! You can do this with any cache that depends on another to be finished in order to produce desired results. I hope this helps.
  7. Hey I know you were hoping for a scene file earlier, so here is one I made for you. I hope this helps/is what you're after. sourcevolume_collisions_for_tagosaku.hiplc
  8. @tagosaku You say it's like it's not colliding at all right? But you can see collision geo when you enable the guide on the FLIP Object? Is your sourcevolume DOP wired into "sourcing"? If so, try switching it to the third input, "Volume Velocity". I'm unable to send a scene atm.
  9. If using a VDB surface with the Source Volume DOP for collisions, you need to switch the "Source Volume" Parameter from 1 to -1
  10. Advecting Pyro with Object (Help)

    Have you tried doing a Trail SOP on the skull, converting to VDB w/velocity and sourcing in DOPs with a 'Source Volume" set to collision?
  11. Animate pScale of flip overtime?

    *= is a shorter way of saying @pscale = @pscale * 0.99; The wrangle evaluates at every timestep, so each time it does, it makes pscale be only 99% of what it was on the previous time step. That will make it get closer and closer to zero.
  12. Try: npoints(opinputpath(".", 0))
  13. Solver SOP and substeps

    should be on that last line @Cd.x *= decay_val * @TimeInc;
  14. pop gravity node

    I'm not sure I fully understand your intent, but you could try grouping whatever spray particles you have, and adding a POP Force on just that group, or set a rule in the VEXPression section of a POP Force to single out the particles acting as spray by some attribute or another.
  15. Solver SOP and substeps

    You need to multiply decal_val * @TimeInc to make sure that substeps are being taken into account, or else it will evaluate that every timestep and will decay much faster the more substeps you add.
  16. Have you tried plugging the .sim frame into the dopnet's initial state parameter?
  17. Hey! This can be done by hooking up a Pop Force into the "Particle velocity" input of the FLIP Solver. Let's assume the left part of your fluid is on the Z+ side and the right part is on the Z- side. Inside the Pop Force, you can check the box that under force that says "Use VEXpressions" and enter something like this: if(@P.z<0){ force.y = -9.8; } else { force.y = 9.8; } This will cause all the points on the right side to fall, while the left half rises up. Hope this helps!
  18. move pivot to specific point

    Hi! If I have a polygon sphere, and I want to put the pivot of my transform sop to point number 30 on my sphere, I would write like so point("../sphere1", 30, "P", 0) point("../sphere1", 30, "P", 1) point("../sphere1", 30, "P", 2) You're trying to do "P.x". The function is looking for an attribute, so you just need put "P" for position. Since position is a vector, it has 3 components which are what the last number in the function refer to. 0 for x, 1 for y, and 2 for z. Hope this helps!
  19. Flip with multiple layers of liquids

    If you're trying to mix something around like blood/water, coffee/cream, oil, etc, you can try using the density+viscosity parameters in the FLIP solver and see if you get desired results. You could do a "points from volume" and source that in as a particle field in the flipfluid object, and create an attribute on the points in SOPs called f@density Then turn on "density by attribute" in the FLIP solver. EDIT: After re-reading your post, I don't think I really answered your question as I don't think density by itself will cause the two viscous fluids to rub against each other...
  20. Hi Lior, Before your solver, you should set an "id" attribute after the scatter. In a pointwrangle, you can do i@id = @ptnum; Each little "seed" point will have an id, then every copy he leaves behind in the solver will have that same id. So you can use that attribute to connect them! Then, before you do your polywire, you need to put an "add" sop down, go to the "Polygons" tab, select "By Group", and change the "Add" Parameter to "By Attribute". The attribute name will just be id Then do your polywire, and you're all set!
  21. Transformation with popKill

    hmm, I'm sorry to hear that! I guess if it's possible, try to do your simulations around the origin, with your object transforms all zeroed out. Then parent it to a null and animate the null around. This could make it a lot easier to work. If you're working on something that has already been cached out and animated, you can try stabilizing the geo, then reapplying the transform later. If it's just something that has been animated at object level already, maybe you could try transferring the same animation to a null, do your particle sim at the origin, then parent it to the animated null. I'm not sure what's going on in your exact scene, but there's a couple suggestions. Good luck!
  22. Transformation with popKill

    Hi! Inside your popnet, you can go to the "source_first_input" node, and under the "Source" section, change from "Use First Context Geo" to "Use Parameter Values". Set it to the source (scatter1), and check the box "use object transform". Hope this helps
  23. Scaling force influence based on particle age

    Also, that's not to say you can't do similar things with POP Wrangles. You could write one, but you'd need to affect something like force or velocity . For instance: @force += set(0,@age*chf("mult"),0); Would add to the force each frame the age of the particle * some multiplier value. Keep in mind @force is read automatically in DOPs by the popsolver and integrated into the sim, but if you wanted to do a similar effect in SOPs using a solver SOP, you'd need to do something like accumulate your custom force to the velocity (@v) and finally apply to the point's position (@P) (Look into Euler Integration if you're interested in that).
  24. Scaling force influence based on particle age

    Depending on the type of force you're after, you can make a "pop force", and affect the different parameters in there using VEXpressions if you'd like! for instance, to apply an upward force that increases as the particles get older... force.y = @age * 0.1; make sure you check the correct "VEXpressions" checkbox though. There's two in there, one for the direction and another for the noise parameters.
  25. motion vector pass

    Hi! To make a motion vector pass in mantra, you'll need to make the image plane yourself by extracting the data from the geometry inside your shader. It's pretty straightforward. Drop down a materialbuilder node, or dive into whatever shader is attached to the geo. You need 2 "getblur P' nodes, one set to 0 (pblur0) and the other set to 1 (pblur1). Subtract pblur0 from pblur1. Next, pipe that into a vectortofloat, and connect that to a floattovector. The reason is because for it do work properly in nuke, the X and Y data need to be flipped (Z stays the same!), so make sure to hook it up that way. Lastly, bind that out as a vector "mv". In Mantra, add a custom image plane. VEX Type should be "vector", channel name "mv" (or whatever you named your attribute), Sample Filter set to "Closest Surface" with the pixel filter set to "Object with most coverage (min z value). Finally, make sure you DO have "allow motion blur" checked on! This will force mantra to calculate the motion blur, but at the bottom where it says "Allow image Motion Blur" turn it off, so that the actual output image remains unblurred. I can't upload a hipfile at the moment, but hopefully this explanation makes sense! Also, if you're looking for a more up-to-date quickstart guide on rendering in mantra, check out Adam Swaab's Lighting and Rendering in Mantra videos!