Jump to content


Popular Content

Showing most liked content on 11/01/2017 in all areas

  1. 2 points
    I have solved my problem and sharing the hip file so maybe that can help to someone also. I have faked animation with vop , convert character to vdb density and controled it for displacement to the pillow. After displacement the mesh i simulated it to fem as hybrid object and thats it. That became easy and fast for my scene. FEM_Wrinkle.hip
  2. 1 point
    hi, another vex code here. First, fixing the 0-point tangent. Second, to get the real angle in the inside or outside, you need to subtract PI-angle (radians) dot_consecutive_pts_odf_v2.hipnc
  3. 1 point
    Take a look at this dot_consecutive_pts_odf.hipnc
  4. 1 point
    I want functions and conjugate gradient methods that can handle large sparse matrices in VEX I want functions and conjugate gradient methods that can handle large sparse matrices in VEX I want functions and conjugate gradient methods that can handle large sparse matrices in VEX please please please!
  5. 1 point
    Thanks for that sample file, it took me a few hours, but I finally understand the OpenCL SOP and the data I/O between Houdini and the GPU
  6. 1 point
    ok....here...using @dist...(this is from ray, do not confuse with dist from polyextrude) The 'dist' from poly extrude is a multiplier to the @dist from ray. You can change the ray method to Min Distance to get an interesting different look. somewhat related to this thread: ) vu_cropcircles3.hipnc
  7. 1 point
    I found on github a little bit OpenCL. Thank you,Karsten Schmidt,for clear and simple code example. https://github.com/thi-ng/houdini Maybe it will be usefull for someone(for newbies like me i mean ). dejong-opencl.hipnc
  8. 1 point
    Working on a procedural cave generator using input curves for the base shape and cellular automata. The goal is for them to be game engine ready with textures, what do you think?
  9. 1 point
    Great thread, the unpacking method is viable though a bit weird to work with because of the bones and capturing. I recently wrote my own wrangle for normalizing, coloring for visualization, and creating densities per a set of different attributes of an incremental name(basically paint capture weights for a set of attribs). So for example you can display the hda and up stream you can paint in multiple paint nodes overriding the color paint attrib to your own attrib but make sure the names goes like attrib0, attrib1, attrib2, ... attribn. Of course you can make the name anything you want, for my purposes I named it fgroup, simply replace fgroup to your desired prefix, display the wrangle and paint upstream attribs! Happy painting! The multi-parm allows you to vary a density attrib by the amount specified in the channel per painted region, so fgroup0 corresponds to density0 and so on. Just make sure you have as many multiparms as you do painted attribs. Play around with it a bit and let me know if you have any questions, Link to HDA -> https://gum.co/TKCTM
  10. 1 point
    A bit late, but there's a few choices for custom handles, though I'm not sure how to create custom manipulators that would work the same as the built in ones (meaning they would show up in the handles section for the HDAs). The MSS_CustomBrushState sample shows how to create a paint node. The ways Houdini implements handles, is with 'states'(BM/BM_State is a good place to look to learn a bit more). States are event handlers, tied to specific nodes, all nodes have them but most only have a generic implementation. If you register a state(MSS_SingleOpState is the best choice for a SOP, though BM_SingleOpState will work for OBJs and SOPs but is a bit more effort to work with) , and specify the name of the node, the state automatically associates with it (just select the node and hit enter in the viewport), you can create states for custom HDA's and even override states for built in nodes. States can also handle rendering, so by creating a state, rendering a custom handle and defining the interactions and plugging the resulting values into parms you can create a completely customized handle for any type of node. This is basically how Houdini handles are implemented but I think there are a few missing pieces preventing the creation of a proper handle though. You could also create a DM_MouseHook and DM_SceneHook to create and render anything you wanted without it being tied to any particular node type.
  11. 1 point
    Hi, this formula is about offsetting animation of several objects (or points, etc.) over a period of time, in such a way that the interval of time for each object is related to number of objects and the desired period of time. Let's say you have 10 objects, and you want to animate all of them over 3 seconds, with some time offset for each object. With this formula you can change the number of objects, adjust the amount of offset or adjust the period of time, and each object will automatically adjust its start and end time, so all object animation will fit within the specified period of time. I came up with this formula when I was working on AfterEffects. I was always looking for a procedural way to offset animation of several layers. this is the formula: n = numLayers - .. offset 0 --> 1 progress 0 --> 100 Start: 100 * (index - 1) * offset / n End: 100 - (100 * (n - index) * offset) / n ease(progress, start, end, 0, 100) Recently, I started learning Houdini and VEX. I was curious to see the application of this formula inside Houdini. then I found this thread: http://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ in the example of Twisting Box, matt uses "smooth" function. this is what I was looking for: smooth() function in Houdini is the equivalent to ease() function in AfterEffects. The attached hip file contains 2 applications of the formula, one based on the number of objects to be stamped (using @ptnum); the second based on the position of points (@P.z) offsetAnimation.hipnc
  12. 1 point
    Guys, in case anyone else need this, I managed to do it easily with the primitive sop (suggested by @Skybar) @stickyblue, check this one out, there's no vex but it works pretty fine (Scene file is attached) Control Animation of Individual Pieces.rar
  13. 1 point
    I have tried another method with the help of my friend using sdf geometry and attribute vop. you can have a look at the file. test_Sphere.hip
  14. 1 point
    Hi, I'm also curious if there is a way to control parameters per instance. For now, in the attached file, I used copy stamping. I also just learned that you can stamp even from outside the network! (I stamped the spare parameter "up" that you created at geometry level) Houdini Indie 15.5.607 OD-F_instances-animCTRL_v2.hipnc
  15. 1 point
    with all this VEX/Wrangle epidemy don't forget that you can use: Group SOP in Point mode uncheck Enable in Number tab check Enable and Unshared edges in Edges tab that will give you group of border points which you can either use in wrangle as if (!i@group_border) ... or directly run your Wrangle only on !border group (e.g. not border points) however for pure VEX solution to detect border points you can do: int isBorderPoint(int geo, ptnum) { int hedge = pointhedge(geo, ptnum); int starthedge = hedge; do { if (hedge_equivcount(geo, hedge) == 1) return 1; hedge = pointhedgenext(geo, hedge); } while (starthedge != hedge && hedge != -1); return 0; }
  16. 1 point
    That same set up with VOPs is definitely a little trickier, as far as I know you can't return an array of neighbor points, so you would have to create a loop, which again can be kinda tricky. I actually did this once with VOPs, mostly to see if I could, it wasn't fun and making it iterate was nearly impossible. You could achieve the same functionality using a point cloud but it will smooth non connected vertices as well. However using a point wrangle node, this is very easy. My Vex is pretty rusty but this still only took me about five minutes int neigbors = neighbourcount(0, @ptnum); vector totalPos = {0,0,0}; for (int x = 0; x < neigbors; x++) { int neighPtnum = neighbour(0, @ptnum, x); totalPos += point(0, "P", neighPtnum); } @P = totalPos/neigbors; If you want to pin borders I would try something like testing if a point only has two connected vertices and not smoothing the point. Houdini's smooth node uses a frequency based smoothing approach, if i remember correctly. http://graphics.stanford.edu/courses/cs468-12-spring/LectureSlides/06_smoothing.pdf I had a better link at one point, but that covers most every smoothing technique. Your node set up, and this Vex code uses Laplacian smoothing.