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
    • Marketplace
  • 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 660 results

  1. Hi, So, I following this tutorial and got stuck at the actual web shooting part which happens at 43:00. He did it with vops, is it possible to apply the same principle to achieve it with vex? Maybe by moving it back to rest position? I tried it with a carve node but the transformation isn't as smooth as the one in the video. I have attached the HIP file below for reference. and spider_web.hip
  2. mantra: Could not obtain vex

    Hey I am having a problem while rendering my Ocean Surface. Mantra is not displaying anything in the render view. I can see "mantra: Could not obtain vex from op:_auto_/mat/oceansurface " Any Idea what can be the reason of it, It is keep failing the render!!
  3. I have a scene with a lot of particles that I am trying to optimize. I've already culled the particles outside of the camera, but I want to get rid of the ones that aren't seen by the camera's rays (the shape is blobby, so I can't just use the z position). What I'm trying to do is take into account the pscale and delete the particles that are hidden behind others. I have a basic working solution in sops via a for each, but it's painfully slow. I want to try and do this with vex. The end result would need to work on millions of particles. The basic steps I thought of are: 1- find direction to cam 2- ray particles to cam (rayline) 3- find neighbors along the rayline 4- use pscale to determine if this intersects with neighbors' pscale 5- if it intersects multiple times, remove the original point I've attached a file for what I used in sops. If anyone has any ideas on how to make it faster or a way to get it working with vex it would mean the world to me. I assume it would be with the intersect() function, but I'm not very familiar with it. Thanks particle_intersect.hip
  4. Water Splash

    Hi Everyone, I am trying to create a water splash with separate water trails as shown in the below image. I have created separate sim for splash and main water sim. Using object velocity to emit splashes but unable to get proper shapes of water splash as per reference. Any ideas or suggestions will be of great help.
  5. How to shape the points following a curve

    Hi everyone, I have some points that follow a curve and I want to control the shape of the tip of this stream of points. I want it to be like the tip of an arrow, so the points at the tip converge toward the center (so towards the curve). I guess I should use the @curveu attribute and a ramp, but I'm not sure.
  6. Hi all, after running a guided ocean sim, I have meshed the particles using particle fluid surface, and the resulting surfaces have a “bottom” layer which I would like to delete. Using connectivity SOP and setting the type to Primitive exposes attribute called class, which gives me integer class. Then I used group expression and gave the group name called “kill”. in the Vexpression, I used @class == 10 10 being the class of primitives that comprise the bottom layer that I am trying to delete. Then I put down a blast, and by putting in the group “kill” that I made in the group expression, I am able to delete the bottom layer. so far so good. Only problem is, the class numbers change depending on the frame. So, while class 10 might be the bottom layer that I am trying to delete on frame 1, at frame 2, the class name has changed to something like 12, and my group expression and blast no longer work. How can I use this method when the class changes every frame? If there is a better method to procedurally delete the bottom layer of mesh throughout the frame range (say, 1 to 168), I would love to learn about it. Thank you
  7. Hi There, I am trying to procedurally grab an operator from an array ex. array("*","+","/","-") and use it inside a loop to do a simple calculation. Here is an example: string operators[] = array("*","+"); f@tmp = 1; for(int i=0;i<chi("iter");i++){ f@tmp `operators`= 2; //how do I convert the operators result to something meaningful for vex? } When I use an "i" as an index it doesnt error but it ignores whatever is inside the ``. If I add 0 as an index I am getting an error. I have managed to make it work with an ordered menu by using `chs("orderedMenu")` and that works fine, although is not as flexible. In my case I don't want to use this approach cause I am going to end up with various different ordered menus. I would prefer if I could store the values of the ordered menus in an array and run it in a loop. Probably I don't understand the difference of the result between the ordered menu and the array and I am not even sure whether what I am trying to do is valid. If anyone could help with this would be great! I have attached a simple example in case anyone would like to have a look. Thanks in advance guys, Kostas operators_example_1.hipnc
  8. Set arrays of attribute values

    Hi everyone ! I'm struggling with a little problem. What I have, is a point cloud with an attribute integer "clumpid" (visualized just below). What I want to do, is, for each of the @clumpid values (@clumpid values are from 0 to 5) create an array containing all the points that have the same @clumpid values. For example, for the points that have the @clumpid value at 3, I want to have an array called for instance " i[]@array_3" containing all the points that have the @clumpid value at 3. If possible, I don't want to use the "foreach loop" SOPs. I tried a few things but the closest solution I have is this one: But unfortunately, all the arrays are empty.. Thank you in advance for your replies !!
  9. Soft Boolean

    Soft Boolean technology, which was previously part of Modeler for Houdini addon, is now available as a separate product. Soft Boolean tools allow you to stitch polygonal meshes with boolean operations and adding accurate fillets to the resulting geometry. Houdini node can be used with the classical procedural way as well as with the help of special shelf tools. Also, the node can be used in other programs using Houdini Engine. The package contains a plugin for Houdini and some scripts for Maya. Release video: https://vimeo.com/592734907 Product link: https://alexeyvanzhula.gumroad.com/l/iWQyT
  10. Free video tutorial can be watched at any of these websites: Fendra Fx Vimeo Side Fx Project file can be purchased at Gumroad here: https://gumroad.com/davidtorno?sort=newest
  11. Hi guys/ladies, how can I compute a proper vector field that's tangent to any arbitrary mesh in VEX? I used the polyframe SOP but there are some inconsistencies with the vector directions and plus I'd love to know a VEX approach for creating a proper tangent field on arbitrary mesh. Thanks in advance. (I've provided a file with the mesh I'm currently working on; see attached) compute_tangent_field_HELP_01.hip
  12. I'm currently working on a POP netowork to simulate raindrops on a window, and am trying to isolate the original particles from which the trails (in red) are emitted as per an emit attribute using the POP replicate node, so that I can selecting apply a POP interact force to them. However, I'm really struggling to find a way to isolate those points. I couldnt find any reference to the original points within the POP replicate node, apart from the fact that their ID is added to the sourceptnum attribute. Am I missing an obvious solution? Thanks
  13. Houdinified Acrylic Paintings

    Hey peoples! I recently started a personal project with the main purpose to explore setups that I either couldn't do during real production, curiosity or pure fun. As a base and also source of inspiration I'm taking real acrylic artworks of a good friend of mine. The photographs of the real artworks are prepped in Photoshop to be able to extract certain textures which I then use in Houdini to create my setups with. The concrete room was built out of a couple of individual decals and assets from Quixel. The whole thing is then being rendered with Redshift, comped with Natron and finalized in Davinci Resolve. From time to time it's seriously fun to play around with setups without having somebody behind me telling me what to do creatively like in a professional environment. No pressure, just fun Here's the first couple of clips I created in this series. Hopefully it's as fun to watch for you as it was creating it for me! You can also check it out on Instagram, Behance or Vimeo. Feedback, questions or whatever appreciated! Volume 1: Volume 2: Volume 3: Cheers!
  14. Connect opposite points in vex

    Hey hey. I'm trying to do a very simple thing - connect opposite points within vex... Normalas are given. I've tried with dot product but failed((( Any advices?
  15. Hi all. This should be easy, but it's killing me... I have a control object living outside a DOP network, a simple particle system. I've plugged it into the second input. Inside the DOP I access this control position without issue, in a VOP. However I then want to follow up by killing particles in a POP wrangle, based on distance to the control object... Easy right? Here's my vex: f@dist = distance(@P, v@opinput0_P); if ( @dist <= ch("threshold")) { removepoint(0,@ptnum);} ... simple. But it kills particles around the origin, not the control object, as if v@opinput0_P = {0,0,0} I've tried multiple variants on opinput, explicit path and the point function etc but it always gives me a "kill" radius around the origin, not the control object. Anyone see what I'm missing? Thanks in advance!
  16. Hi there, just a quick one. I have a cloud of points with an attribute that goes from -1 to 1. Now, if a value it's really small and close to zero (ie 0.00001 or 1e-09), how I can round it to zero? And how I can do it based on decimal? Ie, if value is 0.001 or -0.001 I want to keep it as it is; if value is 0.0001 or -0.0001 I want it to be 0. How I can do it in VEX? Thank you so much!!
  17. Hello, I am trying to reduce the curves of a groom object using VEX code in a point wrangle. This is the code I am currently using which is run over 'roots' to locate the nearest other root points and then to reduce curves that those points are in. float searchRadius = ch('searchRadius'); int nearpnts[] = nearpoints(0, @P, searchRadius); foreach (int pnt; nearpnts){ if(pnt < @ptnum){ int primcon[] = pointprims(0,pnt); removeprim(0,primcon[0],1); } } This way does reduce the number of curves but it doesn't do it in a uniform fashion. Is there a way to uniformly find the densest points within a threshold so that the curve can be deleted? Thanks.
  18. Hello everyone, this is my first post on this forum so thank you for welcoming me and please be indulgent if I'm not posting on the correct channel. I've been trying to wrap my head around an issue that I'm facing with VEX for a couple of days but I'm really stuck. My goal was to iterate through each points of a input and to create a Polyline between two points if there are close enough from each other Problem is that if point 1 is close from point 6, it will create a Polyline (so far, so good) but when my VEX script reach point 6, the invert is also true. So VEX will create a second line from point#6 to point#1... I'm trying to add some line in my script to raise a flag if a point has already been "activated" (used if you prefer) to use that as a check before creating anything. From my understanding VEX scripts are running on each points sequentially so I tried to create an attribute called "active" that I can raise to 1 every time this point has been going through my script. When I'm trying to get my attribute "active" from my foreach loop, it returns 0 if "active" has been initialized on the same VEX wrangle node but it's returning the right value if it has been set in a previous node. What am I missing here ? Thanks float radius = chf('radius'); int ptArray[] = nearpoints(0,@P,radius, 2); @active = set(1); i[]@array = ptArray; foreach(int pointNum; ptArray) { int activated = point(geoself(),'active',pointNum); printf("activated = {%g}", activated); if(pointNum != @ptnum && activated != 1){ int line = addprim(0,"polyline"); addvertex(0, line, @ptnum); addvertex(0, line, pointNum); setpointattrib(0,"active",pointNum,1,"set"); } }
  19. Free video tutorial can be watched at any of these websites: Fendra Fx Vimeo Side Fx Project file can be purchased at Gumroad here: https://gumroad.com/davidtorno?sort=newest
  20. Hi, So I am thinking about creating the velocity in node geo1 and move the points in node geo2. The problem is, I want to change the velocity each frame so i have a solver node in geo1. let's call it solver1. when i want to move points in geo2, i created another solver node, solver2. I am thinking about simply reading the velocity in solver1 and use it in solver2, like using getattrib. However, I am not sure at each time frame what is the order of execution. How can I ensure that at each time frame solver1 is executed before solver2? Thanks!
  21. Hello. I have an array attribute and I need to figure out min values among all first, second, third, etc elements of arrays. If I were about to know the exact length of array (let's say 3) I would do this... iterate insider forloop "distances" append values to three new arrays and find min values with min function. min(distancesone[0]), min(distancestwo[1]), min(distancesthree[2])...... My problem is that I don't know the exact number of array and min() is useless as long as I can't manually create arrays of specific number elements. So the question is how can I figure put the min value among distances[0] elements, then [1], [2] and so on... Thank you.
  22. Detail VEX Function does not working

    Hi, I have two controller-nulls, with the same parameters. In one of them, parameters are animated. I created an attribute from "Del_Sys_Moving" parameter, and then, I want to switch between static and animated attributes values. Then, I want to use this attribute value in pathdeform node as "curve_posoffset" parameter, by using the "detail function". But, it does not work Also, I have tried to write "details" (not "detail") with backtick, for HScript, but it also not working. What I do wrong? How can I write the value of detail attribute from one node, to parameter of another node? Thank you! And sorry for my English
  23. Hi I have a basic scene in which I have animated the rest length of vellum objects using a SOP solver. I then switch from the wrangle back to the 'dop geometry' at a certain frame. What I would really like to do is switch to the 'dop_geometry' when the restlength reaches a certain length. However I'm not sure how to reference this in an expression on the switch. Any help would be very much appreciated. Thanks Restlength_Switch.hipl
  24. Hi guys/girls, so I built this voronoi scale set-up for a mesh (see attached file) and would like to transfer uvs from the original base mesh to the scales, I've tried several different look-up methods but nothing has worked thus far. I managed to bother Jonah Friedman on linkedIn who did a similar set-up on a chameleon spot for psyop (see video link attached below) and he said that he'd done that in fabric engine and to copy the uvs from the original mesh he did a closest point lookup, but sadly that has not worked thus far for me. The final model will be texture painted in substance painter. Any help from a some uv and texturing wizard would be much appreciated! OH, AND I THINK I HAD SET THE VIEWPORT STATE TO MANUAL REFRESH, JUST IN CASE SOMEONE DIDN'T REALIZE! TRIPS ME UP SOMETIMES. Psyop scale set-up voronoi_scales_RnD_06_odforce.hip
  25. Free video tutorial can be watched at any of these websites: Fendra Fx Vimeo Side Fx Project file can be purchased at Gumroad here: https://gumroad.com/davidtorno?sort=newest