Jump to content

Search the Community

Showing results for tags 'vex'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Lounge/General chat
    • Education
    • Jobs
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
    • Tools (HDA's etc.)
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 403 results

  1. I'm new to vex and was wondering if there is a splat operator to unpack arrays into function arguments? (like javascript's ... or rubys *) The reason I'm asking is I have a wrangle that I want to take an unknown number of points and put their position into the cspline function. In the docs we have vector cspline(float t, vector val1, ...) If it was Javascript I'd do something like cspline(t, ...array_of_parameters) to unpack my array into that list of parameters, is it possible to do something similar in vex? If it's not possible how can you get an unknown number of parameters into a function that takes an unknown number of parameters? Cheers Ben
  2. EDIT: Problem was an error in logic on my part.. Solution at end. Hello, On some frames I want to remove a point from a piece of geometry that has just one primitive. I can do this with a point wrangle and there are no problems. However as the project grew it made more sense to do this with a primitive wrangle instead. I rewrote the vex to serve primitives instead of points but now there is a problem: it seems like not all points are being considered in the frame after a point is removed. Points are created at one end of a line and move a little bit each frame towards the end of the line, then they're deleted once they've traveled the length of the line. Each point's @P attrib is set each frame with the same wrangle that might delete it if it reaches the end. When I use the prim wrangle (or a detail wrangle) instead of a point wrangle there's a noticeable stutter due to the lack of movement the frame after points are removed. The point that had just been created (which happens to be the same frame another point was removed) moves as much as it should, but the others do not. I have checked that there remains to be only one primitive. I'm at a loss.. Thanks for taking a look!! FYI I'm still pretty new to Houdini. Project file is attached and there are point and prim wrangles in the solver for comparison. SOLVED: I have another attrib @amt_cycle informing @P. When transferring to a prim wrangle instead of a point wrangle, I only removed the '@' symbol of @amt_cycle to turn the attrib into a regular variable in the code but I didn't recognize that the attribute was also being updated on that same line. To fix I just added a line for 'setpointattrib' to update the attrib. ptprimwrangles.hipnc
  3. 60% Off VexGuide Tool

    Today Only: 60% Off VexGuide Tool Discount link : https://gum.co/GFKLc/56wn7jx
  4. Hello, Can I get a little help please? I have an RBD simulation where a bridge's rope breaks. The first part is a glue contraints then it turns into soft constraints then I remove the primitives to break the soft contraints. But I have a part of the rope I don't want to break. So I put it into a group. How can I add that group into my primitive wrangle inside my sop solver as an exception. I mean I would like to break all the constraints ( primitives) except the ones in the group. Thank you.
  5. Hey guys, How can I change the path in mantra Output file from: P:/projectname/shotname/fx/work/houdini/hip to: V:/projectname/shotname/fx/geo can`t figure out how to run strreplace twice. this doesn`t work: `strreplace($HIP, P:, V:)` `strreplace($HIP, work/houdini/hip, geo)` $HIP is P:/projectname/shotname/fx/work/houdini/hip also + is to add to the path, how can i subtract from the path? Cheers Janis
  6. World Space Position?

    Hi everyone, I've got a problem that has me stumped. In my setup, I'm flying with a camera through a volume that has its density modulated via a couple of noises in the mat context. But whatever I do, I'm unable to make the noises stick to their position, it seems like the P attribute from the globals node is always in camera space. I must be missing something obvious since a lengthy internet search didn't give me any meaningful results. I've attached my file, to observe the problem just render a frame and then jump to another frame, the camera will have moved but the noise pattern is in exactly the same place. Thanks in advance Paul world_space_noise.hip
  7. Looping rain drips on windows

    Hi there, I've been following this excellent tutorial on creating streaks of rain across windows: https://www.youtube.com/watch?v=AwsYhKy1K5g It's working well and i've made a few adjustments to fit with the rest of my scene, but there are a few things I was hoping someone might be kind enough to help me with: 1. The tutorial author uses an expression to offset a resample node to create the animation of the drops falling - how would I adapt this expression so that I can create a seamless loop? 2. More simple: the drops created by this method are fully sphereical, I need them to be flat on the edge that touches the window - how do I use a vdb volume to cut the whole thing so the window facing side is flat? 3. Just trying to get the static drops to be a bit more random in size and guessing at the expression, currently @pscale = (rand(@ptnum)*(0.15)+2.2) -1.20; - i'm just trying to pick a random float between 0.1 and 1.2 I've attached my scene file, any help is very appreciated. window4.mp4 raindrops_001.hip

    In gumroad : gumroad.com/l/GFKLc Here if you want to support me and see lots of technical artistic stuff. Tool post in pateron patreon.com/posts/26416411 one of my oldest tool , always I can't remember some dops sops vex attributes and functions so I was thinking if i can collecting it in one tool with some description of each attributes and function easily and not only that I can save my own presets on there it was fun and good reminder houdini vex
  9. VEX Function Source Code

    Is there a way to find the source code for a specific built-in VEX function?
  10. Brick wall tool works when moving the spline in x and z direction but when moved upwards the rotation of some of the bricks is rotated in a strange way. BrickWall.hipnc

    TD - TREE RIG LIBRARY Beta Version Some Feature * procedural rig for any tree model * tree model library and ease to use ui * live connect to speed tree * fast instancing features * redshift compatibility and mantra Pateron PAGE : https://www.patreon.com/standingmanfx FB : https://www.facebook.com/standingmanfx/
  12. Hey guys, I never got how does a foreach works in vex (at all!), can someone please explain me this? It does the same thing as the For-Each Loop node?
  13. hello, i have a curve in 3d space with an organic shape and i want to resample it so it becomes jagged but maintaining its features. So i was thinking i should compare the tangent value of each point with its next one and if the difference is big it means the curve is changing direction so i keep that point. If there is no big change in direction i remove points. But i have no idea how to implement this in Vop or Vex, i am new to Houdini. Any ideas?
  14. Hi, I was shaping a hex nut with VEX when two geometry questions arose: How can I mathematically define the offset from a circle to an n-gon? Currently I am multiplying by a magic number: sin(u_mod) * 0.12. How can I multiply vectors so they end up on an infinite plane defined by a position and a normal? Kind of what planepointdistance() does, but rather intersecting the plane with the points vector than just returning the closest position on the plane. Also I would not want to shoot rays around but rather set this mathematically. Here is how I deform the tubes outer points at the moment: float u = atan(v@P.z, v@P.x); float u_mod = abs(sin(u * 3)); float u_fit = fit01(u_mod, 0.75, 1.0); vector nml_flat = normalize(v@N * {1, 0, 1}); v@P -= nml_flat * sin(u_mod) * 0.12; v@P.y *= u_fit; Thank you! hex_nut.hiplc
  15. Hi, I wrote a factorial function in vex but the calculations break down after 12!. I am using Houdini 17.0.416 and I thought vex now can calculate up to 64bit. Is this something that needs to be enabled somewhere or am I doing something wrong? I am trying to do this in a detail attribute wrangle. Thanks
  16. I'm running a for-each-connected loop, and need to rotate separate shape such that the largest face is down, for example the one marked L is the largest for the shape in the image. I have a theoretical idea, no clue how to implement it, and not sure if there is a faster or simpler way: (1) get the largest face (no idea how) (2) rotate till the normal of the largest face is facing down Again it's too theoretical, but if you have a way that would turn these flat on they largest face I'll be grateful
  17. Object Fold Unfold

    Hello, Looking to make a similar effect http://www.tokeru.com/cgwiki/?title=Houdini#Unfolding_polys However, currently the effects works on faces (per-face) Is it possible to achieve the same but on islands or name attribute instead of face? Basically, the desired effect would be to unfold based on the color marked islands/groups. any suggestions or help please. Ipad_Cut.hipnc
  18. primpoints hELP

    I have multiple lines, 25 primitives all containing a wide range of points. I want to append each point to a group depending on the primitive number. My initial code looks like this, int poop[] = primpoints(0,0) foreach(int i; poop) { i@group_primnum_0 = 1; } This function grabs all of my points, when I only want specific points for each primitive to create groups out of. How can I make this procedural to loop over all of my primitives and assign each array it's own group id? Thanks! Still new to vex >:{|
  19. Roll-up curve

    Hi there, here is my attempt to solve "Roll-up Curve" in single wrangle node scene file available on Patreon: https://www.patreon.com/mkgrafics RollnRoll_1_1_1.mp4 RollnRoll_3.mp4 parameters.mp4
  20. Orient noise pattern along vectors

    I aligned vector directions towards some curves (ie. outer edges). How would I orient a stretched noise pattern accordingly? oriented_noise.hiplc
  21. For each POINT in each GROUP

    Hello guys I am still quite new in VEX coding and I am all day fighting with set of gravitational rules based on a membership of the points in groups. I am emitting particles, the particles are sorted to groups by 3-6 nearest points. So after couple of frames of emitting particles I have 100 groups and each groups has 3-6 points. Now I need to set some gravitational rules for every group so the points in every group will be attracted to each other just inside the group. I got stuck here. If anyone has any idea how to solve this issue, it would be perfect. Many thanks in advance. ap_ParticleGravitationalAttraction_01.hipnc
  22. Change a curve basis in VEX?

    I'm dealing with curve sampling these days and one thing I would like to is to set curves' basis through vex. But seems such is not possible, if I'm seeing correctly that those prim intrinsics are not editable: I can use indeed the Basis SOP to read the current basis and then edit what I want, I guess I could even pass a detail attribute to this field with a string generated in VEX... But not the most procedural way and doesn't allow specification per primitive. Anyone else been through this? Cheers
  23. Hello guys ! I noticed that in vex, if you modify an attribute and then read it back using the point() function (or prim(), or anything not using the @ nomenclature), it will return the input value, not the modified one. See this code, running over Detail vector thePos = point(0, "P", 0); // Input point's pos is {0,0,0} thePos += {1,2,3}; setpointattrib(0, "P", 0, thePos); thePos = point(0, "P", 0); printf("%d ", thePos); // Prints {0,0,0} instead of {1,2,3} I mean, even this code doesn't work ! No input, running over Detail addpoint(0, {1,2,3}); vector thePos = point(0, "P", 0); printf("%d ", thePos); // Prints {0,0,0} instead of {1,2,3} But interestingly enough, when running over Points (or prim or whatever), this happens //Input is one point, at {0,0,0} @P += {1,2,3}; vector thePos = point(0, "P", 0); printf("Real pos : %d\n", @P); // Prints {1,2,3} printf("Problem pos : %d\n\n", thePos); //Still prints {0,0,0} Not sure what that means, but it can't be applied in my case, as I need to run over Detail. Just wanted to point it out. I need to be able to modify some point attributes (pos and others) and then read them back when running over Detail. How can I do that ? Is it possible ? Thanks in advance ! point_old_value.hip
  24. Add points to a primitive

    Hello ! Plz, anybody help me with this problem: I want add a point to a primitive ,but i dont want add it in world space only! How i can add points on a primitive surface by vex? Thx! P.S. In this image points was added by vex in world space ,but they dont belong to any primitive. sad.