Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About BenWall

  • Rank

Personal Information

  • Name
    Ben Wall
  • Location
  1. Volume Slice to Texture

    Not sure if this is the best way to do this, but you can use volumesample() to get attributes on a plane. It should be easier to bake this than a volume slice, as you'll have uv. The plane's rows / columns number will set your texture resolution (1 face = 1 pixel) volumesample.hip
  2. Seems to work like a charm with nearpoint(), thanks. Double checking by trying to get sample density on a point near the side which is not supposed to have any density, the data seem correct. I think vicvvsh is right: it's a volume visualizer error.
  3. Narrowing it down to avoid vex errors with a distance check, I still get the error float dist = distance(@P, point(1, 'P', 0)); float d; if(dist < chf('max_dist')){ d = fit(dist, 0, chf('max_dist'), 1, 0); d = clamp(d, 0, 1); d = chramp('gamma', d); f@density = d; }else{ f@density = 0; }
  4. Not sure I understand your question. I used fit() in order to use chf("max_dist") and invert the values at the same time. Is there a better way to do this?
  5. Hey there, After spending a fair amount of time on SOP and VEX, I'm now learning basic volumes handling. I found a behavior I don't really understand and can't find any ressources on the subject. I created a simple setup to change the density of a scalar volume with the distance to a point. Everything works as expected, but when I move the point to a bound of the volume, the density from on side seems to be "reflected" on the other side of this volume. Looking at the screenshot, we should only get yellow values on the left (where the point is), the right side should be blue. Seems to me there are three possibilities here: - My volume wrangle might be wrong, - There is something I didn't understand about volumes, - There is something wrong with the way I setuped the volume visualization. Can someone explain what I didn't get right? Thanks strange_density.hip
  6. Handling array in Vex

    Too bad! Anyway, I recently learned recently we can do this, which is easier to read to me: if( find(a2, i) >= 0 ){ append(a3, i); } if( find(a2, i) >= 0 ) append(a3, i); Thanks for your answer.
  7. Handling array in Vex

    Hi, In Python, we can create a "quick array" with conditions in a single line: a1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a2 = [0, 2, 4, 6, 8] a3 = [i for i in a1 if i not in a2] >>>> a3 == [1, 3, 5, 7, 9] In vex, I know how to do it the long way: int a1[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; int a2[] = [0, 2, 4, 6, 8]; int a3; foreach( int i; a1 ){ if( find(a2, i) >= 0 ){ append(a3, i); } } >>>> a3 == [1, 3, 5, 7, 9] Is there a faster way to do this kind of things, maybe like in Python? Thanks!
  8. Hi, I'm sure this question has been asked many time, but I can't find a clear and concise answer, and SideFX tutorials either have dead url or do not respond to the question. What I'm trying to achieve: I want to set $JOB, $HIP and $HOUDINIHOME variables once and for all. - Setting up $JOB and $HIP should allow me to save a lot of time every time I need to save something, as Houdini explorer will use those path as default. - (I'm really not sure about this one) Setting up $HOUDINIHOME should allow me to have a secure place where all my preferences, hda etc are stored. I should be able to copy them easily between computers. Where I'm stuck: I read there are different solutions to setup those variable: changing the OS Environment Variables, with python... I just want to modify houdini.env, as it seems less intrusive. On windows, houdini.env should be here: C:\Users\*USERNAME*\Documents\houdini*VERSION*\houdini.env I typed those variables: But while Houdini successfully changed $JOB, default $HIP is still the same. Can anyone explain to me exactly how to setup those variables with houdini.env?
  9. POP - Several questions about Impulse Activation

    I understood how to control POP with "All Points" source (Impulse Activation = (($FF+ ch("../frequency") + ch("../frame_start"))% ch("../frequency") -1) *-1 ), but "Points" seems totaly ranom to me Setup with an animated source containing 10 points, I want to create 10 points per frame (10*25 per second at 25fps): New particles don't create over the array of my original points, they seem to chose completly randomly where they will be placed. It seems some particles are created on top of each other. I will use "All points" for this project, but if you have any idea how to make the "Points" setup less random, I'd love to hear it!
  10. POP - Several questions about Impulse Activation

    Great idea there, but to get the source @ptnum I would need to connect a Wrangle or VOP with Pop Source as input 0 and Pop Object as Input 1, and Houdini does not seems to let me do that (Connection to input 0 is the wrong type). The Impulse Activation and globally the Birth pannel is completly incomprehensible to me, even after seeing a few tutorials. I think I'm going to do a lot more tutorials before trying to achieve something by myself with POP Solver.
  11. POP - Several questions about Impulse Activation

    Thanks for your answer! 1. Yep! I changed it from "All points" to "Points", now it works. Thanks! 2. I had this problem because I used a modulo 20 on the impulse activation (meaning particles would only birth once every 20f begining on F20). It looks like a pretty sloppy technique to me. What I'm trying to achieve is to birth 1 particule from each point every nth frame. 3. I figured it out earlier with a pointVop inside a solver (if age == 1 on previous frame, I bind export the attributes from the previous frame).
  12. Hi, I'm a beginner in Houdini learning alone with tutorials, I need some insights about POP. What I'm trying to achieve: I want to reproduce this effect, but slower: Basicaly, I have a polyline forming a shape, I scale each primitive in a foreach loop with x iterations. Each iteration go through a DOP Network with a different seed based on the index of the polyline in the for loop. The DOP Network move points with a curlNoise, I then create a trail. The screenshot shows the effect on a single instance. Questions: 1/ I can't access the Birth Parameters on the POP Source node. From the help, it seems "Impulse Activation" at anything but 0 to be able to access those settings, but it's greyed out. Am I missing something? (It's greyed out even if I input "1" and not an expression.) 2/ To get a lower number of points, I used an Impute Activation of (($F%20)-1)*-1 == 1 point every 20 frames. The problem is that now, the DOP network does not begin before $F=20. Is there any other way to tell POP not to birth points every frames while being able to choose the first birth frame? 3/ I want each point created in DOP to keep as an attribute his original position (when his age was 0), and I want each new point to keep @ptnum of the source point as an attribute. How can I do that in DOP? Thanks!