Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About sasbom

  • Rank

Personal Information

  • Name
    Womba Abmow
  • Location
    A swamp somwhere in the netherlands
  1. Vellum and Bullet

    maybe, just maybe you could do it with a vellum cloth -> tetrahedral constraints setup, or even just struts, where you'd increase the struts/tetrahedral constraints stiffness beyond the limits of the universe. Will have to try that. EDIT: was wishful thinking tested it with ol' pig ears and he started flopping his ears even with stiffness set to bagillion worst case, the constraints don't even know what to do anymore at sky high numbers
  2. Houdini 17 Wishlist

    Nice! Allright, that explains why I couldn't find it. What a coincedence! I hope you'll be able to survive yet another brooding, hot summer :| blegh
  3. Houdini 17 Wishlist

    holy guacamoly thanks a million. This is great! Now, and sorry for being a ultra-noob here,where can I see this console? I've tried looking for something like that but I can't find it :c
  4. vops

    Sorry for being late, but have you ever tried pressing F1 in houdini? You'll get a help thing, and it just so happens when you look up the sensor panorama cone or any of the other sensor VOPs, you'll get a example file! I suggest taking a look at that first.
  5. Houdini 17 Wishlist

    I'm not smart or advanced enough to make good suggestions, but I'd really like for there to be a print function for wranglers, in a little error bar I'm used to doing a lot of smoke testing in this way, and I don't like having to make a special parameter dedicated to smoke testing. Also, just having a function to make a simple message pop up would be great. It's the little things ::))
  6. transforming a Vex-built PolyLine

    Hello to all. I solved the math problem, ended up using the qrotate function together with quaternion in vectoraxis mode. I botched it a bit using the normal as the axis, multiplying it slightly, and then correcting the angle based on wether the dot product of the Normal and the up vector was positive or negative. I'm stoked this even works. I love houdini for its "multiple ways to rome" capabilities. I still don't understand nothing about quaternions but this at least gives me a vague ideo on how to use them. Thanks again for the help. I've included what I have now, to share with everybody. -- I did it even more properly now, using the dihedral function. This is WAY less hassle than before. I knew this function existed, but I never saw the use for it until now. the basic structure goes like this: //define original vector (our line "grows" on the Y axis) vector known_vector = set(0,1,0); //compute what kind of rotation it would take to rotate points from the first vector (in our case {0,1,0} since the built line goes up), to the normal vector. vector4 rot_quaternion = dihedral(known_vector,@N); //rotate point position into place position = qrotate(rot_quaternion,position); so easy. so perfect. Math is amazing. I've implemented it and uploaded the file, so take a look if you want. sgamhar_3.hip
  7. transforming a Vex-built PolyLine

    Ah, I finally get what you've been trying to tell me. That part would've gone in the actual "hair grower" part of the algorithm, but the thing is that I can't use that because I have a twirl thing based on some simple goniometric mathematics. I'll be doing more experiments and trying things out. I'll probably end up making every hair a new primitive, and using a primitve wrangle after that to wrangle them in the correct spot.
  8. transforming a Vex-built PolyLine

    Could you explain a little bit more? I don't quite get it... Does the displace by normal take care of origin-based rotation? I guess it'll have to be multiplication then. I'll try it out, at least what I can make of your advice!
  9. Hello to all! I am currently writing a wrangle-thing in which I'm hoping to generate a random "hair" on every point and make it face the normal of said point. The way I planned it is as follows: 1. create the hair w/ random params on 0,0,0 2. rotate the hair to Normal of the point that it's "generated on" w/ rotate(matrix,angle,vertex) function 3. Move the hair to @P I'm not a hero with vector math, otherwise I'd generate the whole hair thing along a normal. I wonder if I somehow can construct a identity matrix, like one would do with the ident() function, and use that to transform the prim. Is there a way to simply rotate a primitive using something simpler than extreme vector math? sgamhar.hip
  10. Thank you so very much. This is a great help! Have a nice day/night/whatever!
  11. Hey! I was going through some tutorials on growth solvers, and I noticed that a lot of them are driven by the "food" group looking to get "infected" if you know what I mean. I wanted to try and make a growth solver that workes differently, looking instead at the points that are already infected and infecting more from their perspective. A very simple summation of what I'm trying to achieve: 1. List the points around me 2. If they are food, they are candidates 3. Infect only 1 of the found candidates rinse and repeat I've put the code underneath in a point wrangle in a solver, but it doesn't work well. I tried running the command on the seperate food and infected groups but that doesn't seem to improve either. What happens when it doesn't go well: 1. nothing 2. Almost every point gets put into the infected group in 1 framespan and then the solver doesn't do anything anymore. //initialiation of radius to search for, and random seed; float radius = 0.2; float seed = 8008135; //stalking prey (finding a list of points to infect); int neighbours[] = nearpoints(0,@P,radius,5); //hopefully grabbing a random one out of the stack of many; float array_length= len(neighbours); //random number between 0 and the length of the list of neighbours; int targetp = rint( rand(seed) * array_length); //looking up point ID in list of neighbours; int point_to_infect = neighbours[targetp]; //actually infect the point, if it is food; if (point(0,"infection",point_to_infect) == 0){ setpointattrib(0,"infection",point_to_infect,1); }; I haven't any clue what's going on, I got no errors other than a little green line under the local variable "targetp" when it gets created. I've attached my .hip! It might be something else I'm doing wrong. I hope you can help me, thanks in advance, Sasbom active infection.hip
  12. Hate to bump into my own thread, but I ended up searching for the "attribute from volume" node. Appearantly, VDB only has a "outer" shell of particles most of the time, so I was looking for a Isooffset instead of a VDB. http://www.entagma.com/quicktip-signed-distance-outlines/ I'm glad entagma made a tutorial on it. Just leaving the message for people having the same problem.
  13. Hey everyone, I'm starting my houdini journey because the company I'm going to intern at in the summer does a lot of houdini stuff. I don't want to be left in the dark, so I'm studying on my own for now. When I was at the company in question, last time, someone showed me a way to use a volume from a mesh (he used the test_rubbertoy geo) to get a intersection plane without using boolean. I remember he used some wranglers, and ended up with a grid with color data which he used to delete the unnessecary parts outside the colored intersection area. Then he somehow turned the mesh into a isosurface, to smooth it out. I've been trying this for some time now and I can't for the life of me figure out how he did it. I've had two nearly succesful attempts, one where I used the Intersection Analysis to get the intersection between a grid and the (rubbertoy -> vdb -> vdb to poly (to fuse seperate meshes together)), then filled the edges I got from that, and then remeshed, which admittedly gets me at least a flat intersection plane. One major problem is that this approach makes the normals of the resulting mesh flip upside down randomly everytime I move the intersecting mesh, which is a pain if you'd want to use it for particles or something. I tried using a wrangle to copy the point normals of the nearest points to the points of the remesh, but I haven't had much luck with that. The other thing is that since the Intersection Analysis only returns edges, the shape of the surface is not taken into account, above method only returns planes and distorted planes on surfaces. The other one I used a attribute transfer with a (mesh -> vdb fog -> wrangle to fit density to 1 everywhere -> scatter -> color {1,0,0}) to project red points from the point cloud to a grid surface, which works, but VERY slowly. one bonus with this technique is that you can blur the resulting "intersection" but its way too slow. So, what I've been thinking is this: A VBD is basically a point cloud, so there needs to be a way to compare mesh points to the points in the volume, and assign a color to those points that are close to points on the geo. I remember said someone doing something like that with a pcopen, but I don't really understand how. I think I get the method, but if someone knows something better, please say so. I've been struggling with this for a couple of weeks now. I strive to be more than a shelf tool user, at the least. Thanks in advance, sasbom