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


Forums

  • 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 461 results

  1. Hello, So I'm working on the good old 'flight paths around the globe' project that the entagma guys made a while back, to add a bit of context. On each of the polylines I've store the start and destination codes, what I'd like to do in remove polyline that have the same route: So for example one poly line has: startCode (LDN) destCode (JFK) Another polyline has startCode (JFK) destCode (LDN) How would I go about running over all of the points/prims so I can remove one of each, so I don't have the same lines (just reversed). One thought of mine was to store them all in an array and go from there, but anyone has any suggestions they would be greatly appreciated. Thanks in advance! Danny
  2. Hi folks, How would you go about adding points in a propagating manner in VEX. Here's what I mean: - Start with several incoming base points, each with an up vector. - For each one, add a new point somewhere along its up vector. - Calculate a new up vector by subtracting base positions from new point positions and setting the new point up vector to the result - Add the next new point somewhere along the previous point's up vector So, I called it propagating, because every next point in part defines the following. I think I'm on the right track here, but my gut's telling me I'm missing something. I'm stuck. Here's what I got: vector up = point(0, "up", @ptnum); vector currentPos = point(0, "P", @ptnum); vector newPos = {0,0,0}; int pts[]; for(int i=0; i<@numelem; i++) { append(pts,i); } int iteration = chi("iteration"); for(int j=0; j<=iteration-1; j++){ newPos = currentPos+up; int newPoint = addpoint(0, newPos); setpointattrib(0, "up", len(pts)+j, normalize(newPos), "set"); currentPos = point(0, "P", len(pts)+j); up = normalize(newPos-currentPos); currentPos = newPos; } Where do you think I'm wrong here. What would you do? Cheers!
  3. Hi all, I've been practicing and experimenting with VEX in Houdini and I challenged myself to see how far I can go with only VEX and VOP. I did successfully manage to create this simple effect without any use of dynamic simulation (DOP). https://vimeo.com/375250070 Basic Summary: A particle system that computes at frame-basis. I can jump from frame 1 to 700 without waiting for simulation. Instead of the traditional age/life computation, this system uses travel speed to compute. Trajectory generated with polar coordinate + Flow Noise on sphere section. The graph mainly consist of VEXs. There's still room to be improved definitely, if anyone is building more upon this, please share it, would love to see it. I think at the end of the day, this kind of system is probably not entirely practical tbh, but it's a great practice and study on coding with VEX. (SHOUTOUT to a best friend of mine who's studying mechanical engineering, helped me to find a way to calculate the spiral length.) HIP file here: FX_Rasengan_v01.hipnc Happy Coding!
  4. Happy rendering with VEX

    source (maybe 30-vex shader ) http://houdini.co.kr/index.php/blog/categories/happy-rendering-with-vex create new asset vex type surface shader operator (copy-paste code save )
  5. With 5 scattered points in group A, and 5 scattered points in group B, what is the furthest point in group B from group A, not as an average, but the individually furthest point? Sounded like an easy problem but I'm spinning wheels here. I would really appreciate some help/teachings.
  6. Hi. How could I convert primitive group name to a string attribute? I have few groups - group _01/02/03/.... and I just want to get numbers to use them as integers in vex, just to apply random color. int group_number = opdigits(@name); @Cd = set(rand(group_number), rand(group_number*1502), rand(group_number/1560)); Doing it with the name SOP, but what is the way of doing that in vex? Thank you Cheers Janis
  7. Hi all I'm currently using VEX to do some scripting, I was just wondering what the difference between these two functions 'npoints()' & 'point()' were?
  8. Poly Carve SOP

    http://www.patreon.com/posts/31506335 Carves out polygons using a point attribute with the ability to define the carve values per primitive using primitive attributes. Pure VEX implementation, 10x faster than the default Carve SOP (compiled). It preserves all available attributes. It supports both open and closed polygons.
  9. Hi, I am specialized in Houdini FX, Simulations (flip, pyro, RBD Bullet), VEX and Python scripting also a good experience in lighting and compositing. Currently based in Shenzhen, China. you can checkout my vimeo for my work and contact me on LinkedIn. Available for freelance Houdini FX work (Remote work) and Houdini pipeline development (Remote work) Thanks, Mahesh MS. vimeo: https://vimeo.com/maxcolor/ LinkedIn: https://www.linkedin.com/in/maxcolor/ email: msmahesh@live.com
  10. offset grid randomly edges with vex

    I'd like to move (with vex )randomly edges of single row grid any idea ? thanks hdni_offset_edges.hiplc
  11. Hello guys; I want to read value of a parameter of a SOP node, inside a wrangle. Is it possible? Thanks.
  12. Hello everyone! I'm trying to make kind of greeble tool, but i want cuts to be strict horizontaly. It's looks fine when i do one pass [], but with more then one iteration it gets really weird[]. And i assume why it does that - because it doesn't know where to make correct verticies, so that points can connect, but i don't really know how to solve. Anyone have an idead ? UPD: I figured it out, but i would still love to hear your ideas
  13. normalize in vex and vop

    Hi, sorry about the silly question, I'm a beginner. NORMALIZE in vops, what it is used for, I saw many times in tutorials people using, but, nobody explaining about it... what it differs from the clamp node?
  14. Hello guys, I try to implement the thin sheet feature (from this paper : http://www.cs.kent.edu/~zwang/schedule/zy11.pdf) but I'm stuck on this : How can I implement this, or translate this into vex ? I'm not sure if it's working with the grids and I should try to code it in a volume wrangle but I really don't know how I have to implement it. I tried this in a point wrangle (in a sop solver) : int pts[]; float kernel_result[]; pts = pcfind(0, "P", @P, ch("search_radius"), chi("search_count")); for(int i = 1; i < len(pts); i++){ vector pos1 = point(0, "P", pts[0]); vector pos2 = point(0, "P", pts[i]); float radius_mult = ch("radius_multiplier"); float radius = @pscale * radius_mult; float sum = (1 - pow(length(pos2 - pos1), 2) / pow(radius, 2)); if(0 <= length(sum) <= radius){ float result = sum; } else{ float result = 0; } append(kernel_result, result); } I'm sure it's not good and it's why I'm asking help ! If anyone here can help it would be much appreciated !! Cheers,
  15. Hi, Probably easy question, but what would be the way to make this vex code shorter and work for more @id`s, so I don`t have to copy the same line of code multiple times? if(@fid == 0) i@group_fid0 = 1; if(@fid == 1) i@group_fid1 = 1; if(@fid == 2) i@group_fid2 = 1; if(@fid == 3) i@group_fid3 = 1; I basically want to make a group for all primitives with same id. I`m guessing it can be done using arrays, but I`m not too good with them. Thanks Janis
  16. I need to fill 5 Edged Closed Primitive. But HOW???
  17. Rotation matrix pivot point

    The rotation of each point occurs around the origin: matrix3 matrx = ident(); vector axis = {1, 0, 0}; float angle = 256; rotate ( matrx, angle, axis); @P *= matrx; How to define coordinates for rotation different from the origin?
  18. if in list (vex)

    Hello how can I query if an element is in a list or not? in python is " if element in list: " thanks you.
  19. step function from glsl

    Hi everyone! In GLSL they use this function called "step" that generates a step function by comparing two values. Is there any alternatives in vex ?
  20. Hello, I'm trying to access a microsolver in the Dopnet. I would like to get e.g the disturbance parameter of the disturbance node, which has the parameter name: "dist_scale". With a Gasfieldwrangle node I can access e.g @vel, @density.. basically attributes.. which is working fine if I am changing them. But if I want to access the parameter and try to change it, nothing happens. I tried it with @dist_scale or relative/absolute channel reference. Thanks!
  21. Fractal Flame

    Trying to recreate Scott Draves' algorithm in Houdini with VEX:
  22. Curl Noise functions in voplib.h

    Ahoy there!!! A quick question... I'm writing VEX noise functions but is a bit confused with Curl Noise functions. It's not like that I didnt get it. Of course I get it but is stuck in this weird functions in voplib.h. Here's what I'm stuck with.... Down below is the Code. why is xDiffNoise yDiffNoise and zDiffNoise there anyways. I couldnt find a function that's making use of it. Maybe I'm missing some. But please somebody explain it to me. Just to say... I'm writing a Curl Vex Function with all the Noise options. Thanks. noisevec = onoise(pos*freq - offset, turb, rough, atten) * amp; xDiffNoise = onoise(xDiff*freq - offset, turb, rough, atten) * amp; yDiffNoise = onoise(yDiff*freq - offset, turb, rough, atten) * amp; zDiffNoise = onoise(zDiff*freq - offset, turb, rough, atten) * amp;
  23. Hi guys! I have a problem that's been bothering me for a couple of days and I can't seem to wrap my head around to solve: I have a grid, with scattered points. And I have 3 objects hovering above the grid. With a colour shift on the grid (attribute transfer with an animated ball for now), I "activate" the points in a pop network, and I start adding forces on them, choreographing them, until they reach a certain age and start to move to the 3 objects above, like an attraction (point count is the same in both inputs for simplicity - also I have colour grouped which particles belong to which object for visualisation purposes). So far so good. The problem is that in theory, each $id should correspond in each point on the objects above - but alas, they seem to shift groups! So, instead of clean motion / attraction on each of the objects after a specific time, I get more of a random mass of particles moving back and forth the objects until the end where they stick on the objects. There sure is something wrong with my vex, but I cannot understand what! It should be easy: green goes to green, blue to blue and red to red.. Attached are some images to help understand the problem. the viewport describing the problem: the pop hierarchy: the wrangle to move the points to position after a certain amount of time in the "time_in_release": If anybody has any idea as to why this is happening, please, feel free to share! I would be more than grateful to hear your thoughts! Thank you so much for your time, G.
  24. I'm probably doing something really simple and stupid here, but I can't for the life of me figure it out. I'm just trying to test out reading/writing attributes in vex, but it seems like I can't read a value out in the same node that I write it, which seems insane. Here is the test code I'm using: i@test_value = 1; int check_success = 0; i@get_value = primattrib(0, "test_value", @primnum, check_success); i@success = check_success; After this code runs, here are the values: @test_value = 1 @get_value = 0; @success = 0; So... even though I have literally just written the value into the 'test_value' attribute, I can't read it out. I noticed however that if I move the last three lines of code to another wrangle, then it works. For this tiny example, that would be fine, but for the larger piece of code I'm working with, I need to be able to write a value to an attribute in one part of the code, and then check what that value is in another part. What's going on here? Is this a bug, or a limitation of VEX?
  25. Finding the Min/Max values in a field?

    I am trying to figure out how to get the converse of a field, mathematically. I am attempting to blur a Cd field in using a Gas Blur microsolver. I have some mixed results, but I want to get some finer control over the radius, namely that I want it to blur more as it slows down. I have used the gas analysis microsolver to get the speed field by taking the length of the velocity, but I can't figure out how to get larger values to be in the lower speed areas. Obviously I would love to use a fit to invert the values, but I am struggling with an elegant way to get the minimum and maximum values for a given field. I could easily just do a loop in a wrangle and get the min/max values that way, but that is going to be extremely slow as this is a very large, dense simulation. Is there a simple way I can get the min/max values in a field so I can use fit(@speed, min, max, max, min) in a Gas Field Wrangle node to get the converse of my field?
×