Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. packed geo confusion

    it's not true for all intrinsics for common ones like bounds, measured(area, perimeter, volume) it's probably true but definitely not for transform, pivot, unexpandedfilename, geometryid, viewportlod, ... and many others that you simply can't just derive from other data, they need to be stored and passed with the prim, like when you have class in programming, some getter functions return member variable values directly, but some will compute the values on the fly from others while you can't compute orientation from just a point, there are also no point intrinsics so it's not like Houdini can either, unless you extract it from transform intrinsics of attached primitive for example if it has it
  3. Today
  4. s@name = "piece_" + itoa(@ptnum); //Randomize Velocity float x,y,z,minX,minY,minZ,maxX,maxY,maxZ,sx,sy,sz,sminX,sminY,sminZ,smaxX,smaxY,smaxZ; //source min max velocity vector min=chv("minVelRandom"); vector max=chv("maxVelRandom"); //randomize min max velocity x = fit01(rand(@ptnum),min.x,max.x); y = fit01(rand(@ptnum*222),min.y,max.y); z = fit01(rand(@ptnum*333),min.z,max.z); //assign the same to force which doesnt work //v@force=set(x,y,z); //assign the random velocity to each bone which worked for me v[]@v_agent; i@myBones= agenttransformcount(0, @ptnum); for(int i;i<=@myBones;i++) { append(@v_agent,@force); } //Initial Spin Random vector smin=chv("minSpinRandom"); vector smax=chv("maxSpinRandom"); sx = fit01(rand(@ptnum*1000),smin.x,smax.x); sy = fit01(rand(@ptnum*1222),smin.y,smax.y); sz = fit01(rand(@ptnum*1333),smin.z,smax.z); //assign Spin Random in Torque v@torque=set(sx,sy,sz); //Oscilation Setup //In the below vex code the only value I have used in the simulation is the v@oscillation's Y component but the code also creates an array which is currently not being used /*vector oMin = chv("oscillationMin"); vector oMax = chv("oscillationMax"); vector oRandom = fit01(random(@ptnum),oMin,oMax); v@oscillation = oRandom; v@zeroOscillation = set(0.0,0.0,0.0); v[]@oscillation_agent; i@myBones= agenttransformcount(0, @ptnum); for(int i;i<=@myBones;i++) { if(i==30||i==32||i==1) { append(@oscillation_agent,v@oscillation); } if(i!=30||i!=32||i==1) { append(@oscillation_agent,v@zeroOscillation); } } */ //Create v_agent array and a vector array for oscillation of certain selected bone numbers The above code will create some custom velocity for the agents in sop level and then later you can use the v[]@v_agent in a sop solver to copy to the particular agents you need to apply it to. So basically what we are are doing here is defining random velocity and torque to a certain number of bones in the crowd agents. You should feel free to bypass the codes that you do not need. I have already bypassed the oscillation bit of the code for you. Cheers, Manishkumar Makhija
  5. How To Grow Mesh Using Point Wrangle

    It's not trivial, as the number of nodes he seems to have used suggests. But play with the carve node, to reveal wireframes and attribute transfer for the "flipping polygons" reveal and if you can work up an approximate low-res prototype that will give you room to ask more specific questions. There's no tutorial for the specific effect that I'm aware of, and this is an effect that took top professionals serious effort (and $$) to make... so you have to take small bites at a time to replicate it. (And you might want to delete the multiple questions asking the same thing, I'm new here but suspect that just will piss people off... ) Cheers.
  6. Baking grass to plane

    Hi Marco, you can build your own planar baking tool inside SOPs and COPs: Scale object to unit size with 1 / max(max($SIZEX, $SIZEY), $SIZEZ) in a transform node. Shoot rays at the mesh from COPs with the intersect() function. Grab the UV coordinates via primuv(). Transfer any kind of texture map values by using colormap(). This also works for geometry attributes such as normals, depth or bounding box info. Here is the minimalist code (to be used in a COP snippet inside a VOPCOP2GEN node): string geo = 'op:/obj/geo1/OUT'; string tex = '/Users/konstantin/maske_rot_Map_Albedo_4K.jpg'; vector pos_img = set(X, Y, 0.0); vector dir_ray = set(0, 0, 1); vector pos_world; vector uvw_prim; int prim_mesh = intersect(geo, pos_img, dir_ray, pos_world, uvw_prim); vector uvw_mesh = primuv(geo, 'uv', prim_mesh, uvw_prim); vector map = colormap(tex, uvw_mesh); vector color = map; R = color.r; G = color.g; B = color.b; A = prim_mesh != -1; baker.hipnc
  7. Yesterday
  8. EmberGen pyro real-time engine

    Looks awesome, this type of technology can't get here fast enough. Sorry to anyone who feels that their jobs are threatened.
  9. packed geo confusion

    Hey thanks thats good to know
  10. EmberGen pyro real-time engine

    No resizing the bounding box?
  11. Emit from a geometry collision

    Okay, i'm gonna try this :)!! Thank you so much for the tips :D!!
  12. Emit from a geometry collision

    Okay, First create your ripple source: you could find the intersection of your boat and the grid (using volumes is easy, i.e. convert boat to SDF volume and find points in grid that are inside that volume). Now that you have the source, I "think" (sorry, don't remember exactly), you need to advect your particles source with either your flip sim or ocean spectrum (in the toolshelf, you could try white water for flip or ocean tool kit, this should give you a quick basic setup)...good luck
  13. Emit from a geometry collision

    Thank for the fast reply! Yep, I tested it however my goal is to make the collision of the boat with the grid a emitter and after, the boat push the particles to the surface of my ocean (it could also sticker), creating the illusion of ripple on a ocean !!. Many thanks:D!
  14. [SOLVED]Python Button Call Def?

    Can you share an example? i'm trying to use the button press as a switch. when pressed val = 1 i have a python node with a button parameter on its interface. and in the pythoncode i want to use that button press to make val=1
  15. The Book of Shaders in Houdini Vex

    This is a great effort, really really nicely put together as well..
  16. Hi there! I'm currently looking at the Houdini Cat Rigging Series, the Rigging Series (SideFx) and the Rigging Seminar (Delano Athias). What I haven't seen so far: A way or THE way to alter the finished rigs in case the geo changes or the quad mesh needs to be fit into a dog with different proportions. With all the dependencies in the rig, parented stuff, etc. this looks like a nightmare, doesn't it? Or is it actually quite simple and I miss something? Would be rather foolish to rebuild the stuff everytime you need it... Wished each series would come with an additional video covering this subject. I imagine a simple wire/curve skeleton would be great as the base for a rig to alter and the bone rig just adapts to it as soon as one is comfortable with the new rig dimensions. Cheers Tom
  17. Emit from a geometry collision

    good have you tried the ripple solver? it should the job, but as the name implies, they are just simple ripples that deform the input mesh
  18. Emit from a geometry collision

    Hi, Simply create artificial ripple around the boat :)!
  19. Hello folks! I'm trying to do some collision geo decomposition using Voronoi fracture (second cut) to generate a Bullet decomposition mesh but unfortunately, Houdini became no response to the infinity. The ram shows I got plenty of space left and the CPU usage turns down from 50% to 8%. Here are the steps: 1. I use a Voronoi fracture to frac hero pieces (a thousand pieces, some of them are not fit into convex hull shape) 2. I fracture them per piece with another Voronoi to decompose a geometry 3. Single-pass preview is fine for me but then when I do it for all then Houdini froze half way round and to clue what does it cause. Here is the network: (I've try both single For-each loop or Compile-For-each loop combo, both fail at the middle) For-each loop stop (Houdini freeze after processing no.199 piece) and I still got plenty ram and computational power Here's the file to help diagnostic. Thanks a lot! VF Problem_HIP.7z VF Problem_HIP.7z
  20. Flip Collision [ Solve ]

    hi, one fast way to have flip collision is use to use volumes, e.g. create a static collision sop (which has two outputs, geo and vdb), import that sop static collision in dop as static collision dop node, make sure you connect the volume sample from sop to dop (I know, this is a very quick description! will try to build an example if time permits). As per particle disappearing after collision, I don't know, maybe it's best if you start with a plain shot and test thing step by step until you find the problem good luck
  21. Emit from a geometry collision

    Hi, I am not sure I understand the question entirely? Do you want to (1) simulate white water, (2) simulate splashes , or (3) simple create artificial ripples? I understand you have a boat sailing, are you using FLIP or ocean toolkit?
  22. I think your starting point is to find a way to detect these anomalies? maybe use measure sop to measure curvature and gradient (e.g. high change gradient or curvature means it's a candidate point) then smooth these areas... BUT most probably that won't work just detecting these anomalies would be difficult (e.g. many other places in the mesh would have high gradient and yet the are correct)...If some one else have ideas it would be nice to know
  23. EmberGen pyro real-time engine

    Yeah control is a big thing that tends to slow things down. Here's another fun one: https://paveldogreat.github.io/WebGL-Fluid-Simulation/
  24. EmberGen pyro real-time engine

    Looks nice, though it'll be a lot slower when you actually want to read it back to do anything with. That's why most realtime demos are just that.
  25. Easiest way is to promote your attribute to detail, set to maximum - set the new name to eg max_layer and don't delete original attribute - then do something like the following in a wrangle: [assuming it's a prim integer attribute called 'layer', set the wrangle to run over prims] if(i@layer == detail(0, "max_layer", 0)) removeprim(0, @primnum, 1);
  26. House fire sourcing Pyro

    In pyro solver node, inside combustion tab, go to smoke tab in it, turn on the create dense smoke, carefull, it creates smoke but the sim may change...
  27. Greetings! I have a system that creates an x amount of layers, I also apply a integer attribute value to each layer. 0-x For example I may have done a 10 layer thing. which will give me 0-9 attribute. My question is; How do I procedurally always delete the last layer with the highest attribute value?
  1. Load more activity
×